inochi 0.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +13 -0
- data/Rakefile +6 -0
- data/bin/inochi +413 -0
- data/doc/README +6 -0
- data/doc/api/Inochi.html +2337 -0
- data/doc/api/all-methods.html +92 -0
- data/doc/api/all-namespaces.html +22 -0
- data/doc/api/app.js +18 -0
- data/doc/api/index.html +18 -0
- data/doc/api/jquery.js +11 -0
- data/doc/api/readme.html +35 -0
- data/doc/api/style.css +68 -0
- data/doc/api/syntax_highlight.css +21 -0
- data/doc/history.erb +9 -0
- data/doc/index.erb +6 -0
- data/doc/index.xhtml +1830 -0
- data/doc/inochi.png +0 -0
- data/doc/inochi.svg +405 -0
- data/doc/intro.erb +103 -0
- data/doc/setup.erb +51 -0
- data/doc/theory.erb +3 -0
- data/doc/usage.erb +367 -0
- data/lib/inochi.rb +16 -0
- data/lib/inochi/inochi.rb +1000 -0
- metadata +150 -0
@@ -0,0 +1,92 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
|
6
|
+
<link rel="stylesheet" href="style.css" type="text/css" charset="utf-8" />
|
7
|
+
<link rel="stylesheet" href="syntax_highlight.css" type="text/css" charset="utf-8" />
|
8
|
+
|
9
|
+
<title>All Modules / Classes</title>
|
10
|
+
<base target="main" />
|
11
|
+
</head>
|
12
|
+
<body>
|
13
|
+
<div id="nav" class="methods">
|
14
|
+
<h1>Method List</h1>
|
15
|
+
<ul>
|
16
|
+
|
17
|
+
|
18
|
+
<li nowrap>
|
19
|
+
<a title="book" href="Inochi.html#book-class_method">book</a>
|
20
|
+
|
21
|
+
<em>(module Inochi)</em>
|
22
|
+
|
23
|
+
</li>
|
24
|
+
|
25
|
+
|
26
|
+
<li nowrap>
|
27
|
+
<a title="calc_program_name" href="Inochi.html#calc_program_name-class_method">calc_program_name</a>
|
28
|
+
|
29
|
+
<em>(module Inochi)</em>
|
30
|
+
|
31
|
+
</li>
|
32
|
+
|
33
|
+
|
34
|
+
<li nowrap>
|
35
|
+
<a title="calc_project_symbol" href="Inochi.html#calc_project_symbol-class_method">calc_project_symbol</a>
|
36
|
+
|
37
|
+
<em>(module Inochi)</em>
|
38
|
+
|
39
|
+
</li>
|
40
|
+
|
41
|
+
|
42
|
+
<li nowrap>
|
43
|
+
<a title="camel_to_snake_case" href="Inochi.html#camel_to_snake_case-class_method">camel_to_snake_case</a>
|
44
|
+
|
45
|
+
<em>(module Inochi)</em>
|
46
|
+
|
47
|
+
</li>
|
48
|
+
|
49
|
+
|
50
|
+
<li nowrap>
|
51
|
+
<a title="fetch_project_module" href="Inochi.html#fetch_project_module-class_method">fetch_project_module</a>
|
52
|
+
|
53
|
+
<em>(module Inochi)</em>
|
54
|
+
|
55
|
+
</li>
|
56
|
+
|
57
|
+
|
58
|
+
<li nowrap>
|
59
|
+
<a title="first_caller_file" href="Inochi.html#first_caller_file-class_method">first_caller_file</a>
|
60
|
+
|
61
|
+
<em>(module Inochi)</em>
|
62
|
+
|
63
|
+
</li>
|
64
|
+
|
65
|
+
|
66
|
+
<li nowrap>
|
67
|
+
<a title="init" href="Inochi.html#init-class_method">init</a>
|
68
|
+
|
69
|
+
<em>(module Inochi)</em>
|
70
|
+
|
71
|
+
</li>
|
72
|
+
|
73
|
+
|
74
|
+
<li nowrap>
|
75
|
+
<a title="main" href="Inochi.html#main-class_method">main</a>
|
76
|
+
|
77
|
+
<em>(module Inochi)</em>
|
78
|
+
|
79
|
+
</li>
|
80
|
+
|
81
|
+
|
82
|
+
<li nowrap>
|
83
|
+
<a title="rake" href="Inochi.html#rake-class_method">rake</a>
|
84
|
+
|
85
|
+
<em>(module Inochi)</em>
|
86
|
+
|
87
|
+
</li>
|
88
|
+
|
89
|
+
</ul>
|
90
|
+
</div>
|
91
|
+
</body>
|
92
|
+
</html>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
|
6
|
+
<link rel="stylesheet" href="style.css" type="text/css" charset="utf-8" />
|
7
|
+
<link rel="stylesheet" href="syntax_highlight.css" type="text/css" charset="utf-8" />
|
8
|
+
|
9
|
+
<title>All Modules / Classes</title>
|
10
|
+
<base target="main" />
|
11
|
+
</head>
|
12
|
+
<body>
|
13
|
+
<div id="nav" class="namespaces">
|
14
|
+
<h1>All Modules / Classes</h1>
|
15
|
+
<ul>
|
16
|
+
|
17
|
+
<li><a title="Inochi" href="Inochi.html">Inochi</a> <em>(module)</em></li>
|
18
|
+
|
19
|
+
</ul>
|
20
|
+
</div>
|
21
|
+
</body>
|
22
|
+
</html>
|
data/doc/api/app.js
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
$(document).ready(function() {
|
2
|
+
// Set the title of this page as the index title
|
3
|
+
if (parent && parent.document) {
|
4
|
+
$('html head title', parent.document).text($('html head title').text());
|
5
|
+
}
|
6
|
+
|
7
|
+
// Setup the view source links
|
8
|
+
$(".section.source a.source_link").toggle(
|
9
|
+
function() {
|
10
|
+
$(this).text('Hide source');
|
11
|
+
$(this).parent().next().show();
|
12
|
+
},
|
13
|
+
function() {
|
14
|
+
$(this).text('View source');
|
15
|
+
$(this).parent().next().hide();
|
16
|
+
}
|
17
|
+
);
|
18
|
+
});
|
data/doc/api/index.html
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
|
6
|
+
<title>YARD Documentation</title>
|
7
|
+
</head>
|
8
|
+
<frameset cols="20%,*">
|
9
|
+
<frameset rows="50%,50%">
|
10
|
+
<frame src="all-namespaces.html" />
|
11
|
+
<frame src="all-methods.html" />
|
12
|
+
</frameset>
|
13
|
+
<frame name="main" src="readme.html" />
|
14
|
+
<noframes>
|
15
|
+
<p><a href="readme.html">Click here to go to the title page</a>.</p>
|
16
|
+
</noframes>
|
17
|
+
</frameset>
|
18
|
+
</html>
|
data/doc/api/jquery.js
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
/*
|
2
|
+
* jQuery 1.2.6 - New Wave Javascript
|
3
|
+
*
|
4
|
+
* Copyright (c) 2008 John Resig (jquery.com)
|
5
|
+
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
6
|
+
* and GPL (GPL-LICENSE.txt) licenses.
|
7
|
+
*
|
8
|
+
* $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $
|
9
|
+
* $Rev: 5685 $
|
10
|
+
*/
|
11
|
+
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(H(){J w=1b.4M,3m$=1b.$;J D=1b.4M=1b.$=H(a,b){I 2B D.17.5j(a,b)};J u=/^[^<]*(<(.|\\s)+>)[^>]*$|^#(\\w+)$/,62=/^.[^:#\\[\\.]*$/,12;D.17=D.44={5j:H(d,b){d=d||S;G(d.16){7[0]=d;7.K=1;I 7}G(1j d=="23"){J c=u.2D(d);G(c&&(c[1]||!b)){G(c[1])d=D.4h([c[1]],b);N{J a=S.61(c[3]);G(a){G(a.2v!=c[3])I D().2q(d);I D(a)}d=[]}}N I D(b).2q(d)}N G(D.1D(d))I D(S)[D.17.27?"27":"43"](d);I 7.6Y(D.2d(d))},5w:"1.2.6",8G:H(){I 7.K},K:0,3p:H(a){I a==12?D.2d(7):7[a]},2I:H(b){J a=D(b);a.5n=7;I a},6Y:H(a){7.K=0;2p.44.1p.1w(7,a);I 7},P:H(a,b){I D.P(7,a,b)},5i:H(b){J a=-1;I D.2L(b&&b.5w?b[0]:b,7)},1K:H(c,a,b){J d=c;G(c.1q==56)G(a===12)I 7[0]&&D[b||"1K"](7[0],c);N{d={};d[c]=a}I 7.P(H(i){R(c 1n d)D.1K(b?7.V:7,c,D.1i(7,d[c],b,i,c))})},1g:H(b,a){G((b==\'2h\'||b==\'1Z\')&&3d(a)<0)a=12;I 7.1K(b,a,"2a")},1r:H(b){G(1j b!="49"&&b!=U)I 7.4E().3v((7[0]&&7[0].2z||S).5F(b));J a="";D.P(b||7,H(){D.P(7.3t,H(){G(7.16!=8)a+=7.16!=1?7.76:D.17.1r([7])})});I a},5z:H(b){G(7[0])D(b,7[0].2z).5y().39(7[0]).2l(H(){J a=7;1B(a.1x)a=a.1x;I a}).3v(7);I 7},8Y:H(a){I 7.P(H(){D(7).6Q().5z(a)})},8R:H(a){I 7.P(H(){D(7).5z(a)})},3v:H(){I 7.3W(19,M,Q,H(a){G(7.16==1)7.3U(a)})},6F:H(){I 7.3W(19,M,M,H(a){G(7.16==1)7.39(a,7.1x)})},6E:H(){I 7.3W(19,Q,Q,H(a){7.1d.39(a,7)})},5q:H(){I 7.3W(19,Q,M,H(a){7.1d.39(a,7.2H)})},3l:H(){I 7.5n||D([])},2q:H(b){J c=D.2l(7,H(a){I D.2q(b,a)});I 7.2I(/[^+>] [^+>]/.11(b)||b.1h("..")>-1?D.4r(c):c)},5y:H(e){J f=7.2l(H(){G(D.14.1f&&!D.4n(7)){J a=7.6o(M),5h=S.3h("1v");5h.3U(a);I D.4h([5h.4H])[0]}N I 7.6o(M)});J d=f.2q("*").5c().P(H(){G(7[E]!=12)7[E]=U});G(e===M)7.2q("*").5c().P(H(i){G(7.16==3)I;J c=D.L(7,"3w");R(J a 1n c)R(J b 1n c[a])D.W.1e(d[i],a,c[a][b],c[a][b].L)});I f},1E:H(b){I 7.2I(D.1D(b)&&D.3C(7,H(a,i){I b.1k(a,i)})||D.3g(b,7))},4Y:H(b){G(b.1q==56)G(62.11(b))I 7.2I(D.3g(b,7,M));N b=D.3g(b,7);J a=b.K&&b[b.K-1]!==12&&!b.16;I 7.1E(H(){I a?D.2L(7,b)<0:7!=b})},1e:H(a){I 7.2I(D.4r(D.2R(7.3p(),1j a==\'23\'?D(a):D.2d(a))))},3F:H(a){I!!a&&D.3g(a,7).K>0},7T:H(a){I 7.3F("."+a)},6e:H(b){G(b==12){G(7.K){J c=7[0];G(D.Y(c,"2A")){J e=c.64,63=[],15=c.15,2V=c.O=="2A-2V";G(e<0)I U;R(J i=2V?e:0,2f=2V?e+1:15.K;i<2f;i++){J d=15[i];G(d.2W){b=D.14.1f&&!d.at.2x.an?d.1r:d.2x;G(2V)I b;63.1p(b)}}I 63}N I(7[0].2x||"").1o(/\\r/g,"")}I 12}G(b.1q==4L)b+=\'\';I 7.P(H(){G(7.16!=1)I;G(b.1q==2p&&/5O|5L/.11(7.O))7.4J=(D.2L(7.2x,b)>=0||D.2L(7.34,b)>=0);N G(D.Y(7,"2A")){J a=D.2d(b);D("9R",7).P(H(){7.2W=(D.2L(7.2x,a)>=0||D.2L(7.1r,a)>=0)});G(!a.K)7.64=-1}N 7.2x=b})},2K:H(a){I a==12?(7[0]?7[0].4H:U):7.4E().3v(a)},7b:H(a){I 7.5q(a).21()},79:H(i){I 7.3s(i,i+1)},3s:H(){I 7.2I(2p.44.3s.1w(7,19))},2l:H(b){I 7.2I(D.2l(7,H(a,i){I b.1k(a,i,a)}))},5c:H(){I 7.1e(7.5n)},L:H(d,b){J a=d.1R(".");a[1]=a[1]?"."+a[1]:"";G(b===12){J c=7.5C("9z"+a[1]+"!",[a[0]]);G(c===12&&7.K)c=D.L(7[0],d);I c===12&&a[1]?7.L(a[0]):c}N I 7.1P("9u"+a[1]+"!",[a[0],b]).P(H(){D.L(7,d,b)})},3b:H(a){I 7.P(H(){D.3b(7,a)})},3W:H(g,f,h,d){J e=7.K>1,3x;I 7.P(H(){G(!3x){3x=D.4h(g,7.2z);G(h)3x.9o()}J b=7;G(f&&D.Y(7,"1T")&&D.Y(3x[0],"4F"))b=7.3H("22")[0]||7.3U(7.2z.3h("22"));J c=D([]);D.P(3x,H(){J a=e?D(7).5y(M)[0]:7;G(D.Y(a,"1m"))c=c.1e(a);N{G(a.16==1)c=c.1e(D("1m",a).21());d.1k(b,a)}});c.P(6T)})}};D.17.5j.44=D.17;H 6T(i,a){G(a.4d)D.3Y({1a:a.4d,31:Q,1O:"1m"});N D.5u(a.1r||a.6O||a.4H||"");G(a.1d)a.1d.37(a)}H 1z(){I+2B 8J}D.1l=D.17.1l=H(){J b=19[0]||{},i=1,K=19.K,4x=Q,15;G(b.1q==8I){4x=b;b=19[1]||{};i=2}G(1j b!="49"&&1j b!="H")b={};G(K==i){b=7;--i}R(;i<K;i++)G((15=19[i])!=U)R(J c 1n 15){J a=b[c],2w=15[c];G(b===2w)6M;G(4x&&2w&&1j 2w=="49"&&!2w.16)b[c]=D.1l(4x,a||(2w.K!=U?[]:{}),2w);N G(2w!==12)b[c]=2w}I b};J E="4M"+1z(),6K=0,5r={},6G=/z-?5i|8B-?8A|1y|6B|8v-?1Z/i,3P=S.3P||{};D.1l({8u:H(a){1b.$=3m$;G(a)1b.4M=w;I D},1D:H(a){I!!a&&1j a!="23"&&!a.Y&&a.1q!=2p&&/^[\\s[]?H/.11(a+"")},4n:H(a){I a.1C&&!a.1c||a.2j&&a.2z&&!a.2z.1c},5u:H(a){a=D.3k(a);G(a){J b=S.3H("6w")[0]||S.1C,1m=S.3h("1m");1m.O="1r/4t";G(D.14.1f)1m.1r=a;N 1m.3U(S.5F(a));b.39(1m,b.1x);b.37(1m)}},Y:H(b,a){I b.Y&&b.Y.2r()==a.2r()},1Y:{},L:H(c,d,b){c=c==1b?5r:c;J a=c[E];G(!a)a=c[E]=++6K;G(d&&!D.1Y[a])D.1Y[a]={};G(b!==12)D.1Y[a][d]=b;I d?D.1Y[a][d]:a},3b:H(c,b){c=c==1b?5r:c;J a=c[E];G(b){G(D.1Y[a]){2U D.1Y[a][b];b="";R(b 1n D.1Y[a])1X;G(!b)D.3b(c)}}N{1U{2U c[E]}1V(e){G(c.5l)c.5l(E)}2U D.1Y[a]}},P:H(d,a,c){J e,i=0,K=d.K;G(c){G(K==12){R(e 1n d)G(a.1w(d[e],c)===Q)1X}N R(;i<K;)G(a.1w(d[i++],c)===Q)1X}N{G(K==12){R(e 1n d)G(a.1k(d[e],e,d[e])===Q)1X}N R(J b=d[0];i<K&&a.1k(b,i,b)!==Q;b=d[++i]){}}I d},1i:H(b,a,c,i,d){G(D.1D(a))a=a.1k(b,i);I a&&a.1q==4L&&c=="2a"&&!6G.11(d)?a+"2X":a},1F:{1e:H(c,b){D.P((b||"").1R(/\\s+/),H(i,a){G(c.16==1&&!D.1F.3T(c.1F,a))c.1F+=(c.1F?" ":"")+a})},21:H(c,b){G(c.16==1)c.1F=b!=12?D.3C(c.1F.1R(/\\s+/),H(a){I!D.1F.3T(b,a)}).6s(" "):""},3T:H(b,a){I D.2L(a,(b.1F||b).6r().1R(/\\s+/))>-1}},6q:H(b,c,a){J e={};R(J d 1n c){e[d]=b.V[d];b.V[d]=c[d]}a.1k(b);R(J d 1n c)b.V[d]=e[d]},1g:H(d,e,c){G(e=="2h"||e=="1Z"){J b,3X={30:"5x",5g:"1G",18:"3I"},35=e=="2h"?["5e","6k"]:["5G","6i"];H 5b(){b=e=="2h"?d.8f:d.8c;J a=0,2C=0;D.P(35,H(){a+=3d(D.2a(d,"57"+7,M))||0;2C+=3d(D.2a(d,"2C"+7+"4b",M))||0});b-=29.83(a+2C)}G(D(d).3F(":4j"))5b();N D.6q(d,3X,5b);I 29.2f(0,b)}I D.2a(d,e,c)},2a:H(f,l,k){J e,V=f.V;H 3E(b){G(!D.14.2k)I Q;J a=3P.54(b,U);I!a||a.52("3E")==""}G(l=="1y"&&D.14.1f){e=D.1K(V,"1y");I e==""?"1":e}G(D.14.2G&&l=="18"){J d=V.50;V.50="0 7Y 7W";V.50=d}G(l.1I(/4i/i))l=y;G(!k&&V&&V[l])e=V[l];N G(3P.54){G(l.1I(/4i/i))l="4i";l=l.1o(/([A-Z])/g,"-$1").3y();J c=3P.54(f,U);G(c&&!3E(f))e=c.52(l);N{J g=[],2E=[],a=f,i=0;R(;a&&3E(a);a=a.1d)2E.6h(a);R(;i<2E.K;i++)G(3E(2E[i])){g[i]=2E[i].V.18;2E[i].V.18="3I"}e=l=="18"&&g[2E.K-1]!=U?"2F":(c&&c.52(l))||"";R(i=0;i<g.K;i++)G(g[i]!=U)2E[i].V.18=g[i]}G(l=="1y"&&e=="")e="1"}N G(f.4g){J h=l.1o(/\\-(\\w)/g,H(a,b){I b.2r()});e=f.4g[l]||f.4g[h];G(!/^\\d+(2X)?$/i.11(e)&&/^\\d/.11(e)){J j=V.1A,66=f.65.1A;f.65.1A=f.4g.1A;V.1A=e||0;e=V.aM+"2X";V.1A=j;f.65.1A=66}}I e},4h:H(l,h){J k=[];h=h||S;G(1j h.3h==\'12\')h=h.2z||h[0]&&h[0].2z||S;D.P(l,H(i,d){G(!d)I;G(d.1q==4L)d+=\'\';G(1j d=="23"){d=d.1o(/(<(\\w+)[^>]*?)\\/>/g,H(b,a,c){I c.1I(/^(aK|4f|7E|aG|4T|7A|aB|3n|az|ay|av)$/i)?b:a+"></"+c+">"});J f=D.3k(d).3y(),1v=h.3h("1v");J e=!f.1h("<au")&&[1,"<2A 7w=\'7w\'>","</2A>"]||!f.1h("<ar")&&[1,"<7v>","</7v>"]||f.1I(/^<(aq|22|am|ak|ai)/)&&[1,"<1T>","</1T>"]||!f.1h("<4F")&&[2,"<1T><22>","</22></1T>"]||(!f.1h("<af")||!f.1h("<ad"))&&[3,"<1T><22><4F>","</4F></22></1T>"]||!f.1h("<7E")&&[2,"<1T><22></22><7q>","</7q></1T>"]||D.14.1f&&[1,"1v<1v>","</1v>"]||[0,"",""];1v.4H=e[1]+d+e[2];1B(e[0]--)1v=1v.5T;G(D.14.1f){J g=!f.1h("<1T")&&f.1h("<22")<0?1v.1x&&1v.1x.3t:e[1]=="<1T>"&&f.1h("<22")<0?1v.3t:[];R(J j=g.K-1;j>=0;--j)G(D.Y(g[j],"22")&&!g[j].3t.K)g[j].1d.37(g[j]);G(/^\\s/.11(d))1v.39(h.5F(d.1I(/^\\s*/)[0]),1v.1x)}d=D.2d(1v.3t)}G(d.K===0&&(!D.Y(d,"3V")&&!D.Y(d,"2A")))I;G(d[0]==12||D.Y(d,"3V")||d.15)k.1p(d);N k=D.2R(k,d)});I k},1K:H(d,f,c){G(!d||d.16==3||d.16==8)I 12;J e=!D.4n(d),40=c!==12,1f=D.14.1f;f=e&&D.3X[f]||f;G(d.2j){J g=/5Q|4d|V/.11(f);G(f=="2W"&&D.14.2k)d.1d.64;G(f 1n d&&e&&!g){G(40){G(f=="O"&&D.Y(d,"4T")&&d.1d)7p"O a3 a1\'t 9V 9U";d[f]=c}G(D.Y(d,"3V")&&d.7i(f))I d.7i(f).76;I d[f]}G(1f&&e&&f=="V")I D.1K(d.V,"9T",c);G(40)d.9Q(f,""+c);J h=1f&&e&&g?d.4G(f,2):d.4G(f);I h===U?12:h}G(1f&&f=="1y"){G(40){d.6B=1;d.1E=(d.1E||"").1o(/7f\\([^)]*\\)/,"")+(3r(c)+\'\'=="9L"?"":"7f(1y="+c*7a+")")}I d.1E&&d.1E.1h("1y=")>=0?(3d(d.1E.1I(/1y=([^)]*)/)[1])/7a)+\'\':""}f=f.1o(/-([a-z])/9H,H(a,b){I b.2r()});G(40)d[f]=c;I d[f]},3k:H(a){I(a||"").1o(/^\\s+|\\s+$/g,"")},2d:H(b){J a=[];G(b!=U){J i=b.K;G(i==U||b.1R||b.4I||b.1k)a[0]=b;N 1B(i)a[--i]=b[i]}I a},2L:H(b,a){R(J i=0,K=a.K;i<K;i++)G(a[i]===b)I i;I-1},2R:H(a,b){J i=0,T,2S=a.K;G(D.14.1f){1B(T=b[i++])G(T.16!=8)a[2S++]=T}N 1B(T=b[i++])a[2S++]=T;I a},4r:H(a){J c=[],2o={};1U{R(J i=0,K=a.K;i<K;i++){J b=D.L(a[i]);G(!2o[b]){2o[b]=M;c.1p(a[i])}}}1V(e){c=a}I c},3C:H(c,a,d){J b=[];R(J i=0,K=c.K;i<K;i++)G(!d!=!a(c[i],i))b.1p(c[i]);I b},2l:H(d,a){J c=[];R(J i=0,K=d.K;i<K;i++){J b=a(d[i],i);G(b!=U)c[c.K]=b}I c.7d.1w([],c)}});J v=9B.9A.3y();D.14={5B:(v.1I(/.+(?:9y|9x|9w|9v)[\\/: ]([\\d.]+)/)||[])[1],2k:/75/.11(v),2G:/2G/.11(v),1f:/1f/.11(v)&&!/2G/.11(v),42:/42/.11(v)&&!/(9s|75)/.11(v)};J y=D.14.1f?"7o":"72";D.1l({71:!D.14.1f||S.70=="6Z",3X:{"R":"9n","9k":"1F","4i":y,72:y,7o:y,9h:"9f",9e:"9d",9b:"99"}});D.P({6W:H(a){I a.1d},97:H(a){I D.4S(a,"1d")},95:H(a){I D.3a(a,2,"2H")},91:H(a){I D.3a(a,2,"4l")},8Z:H(a){I D.4S(a,"2H")},8X:H(a){I D.4S(a,"4l")},8W:H(a){I D.5v(a.1d.1x,a)},8V:H(a){I D.5v(a.1x)},6Q:H(a){I D.Y(a,"8U")?a.8T||a.8S.S:D.2d(a.3t)}},H(c,d){D.17[c]=H(b){J a=D.2l(7,d);G(b&&1j b=="23")a=D.3g(b,a);I 7.2I(D.4r(a))}});D.P({6P:"3v",8Q:"6F",39:"6E",8P:"5q",8O:"7b"},H(c,b){D.17[c]=H(){J a=19;I 7.P(H(){R(J i=0,K=a.K;i<K;i++)D(a[i])[b](7)})}});D.P({8N:H(a){D.1K(7,a,"");G(7.16==1)7.5l(a)},8M:H(a){D.1F.1e(7,a)},8L:H(a){D.1F.21(7,a)},8K:H(a){D.1F[D.1F.3T(7,a)?"21":"1e"](7,a)},21:H(a){G(!a||D.1E(a,[7]).r.K){D("*",7).1e(7).P(H(){D.W.21(7);D.3b(7)});G(7.1d)7.1d.37(7)}},4E:H(){D(">*",7).21();1B(7.1x)7.37(7.1x)}},H(a,b){D.17[a]=H(){I 7.P(b,19)}});D.P(["6N","4b"],H(i,c){J b=c.3y();D.17[b]=H(a){I 7[0]==1b?D.14.2G&&S.1c["5t"+c]||D.14.2k&&1b["5s"+c]||S.70=="6Z"&&S.1C["5t"+c]||S.1c["5t"+c]:7[0]==S?29.2f(29.2f(S.1c["4y"+c],S.1C["4y"+c]),29.2f(S.1c["2i"+c],S.1C["2i"+c])):a==12?(7.K?D.1g(7[0],b):U):7.1g(b,a.1q==56?a:a+"2X")}});H 25(a,b){I a[0]&&3r(D.2a(a[0],b,M),10)||0}J C=D.14.2k&&3r(D.14.5B)<8H?"(?:[\\\\w*3m-]|\\\\\\\\.)":"(?:[\\\\w\\8F-\\8E*3m-]|\\\\\\\\.)",6L=2B 4v("^>\\\\s*("+C+"+)"),6J=2B 4v("^("+C+"+)(#)("+C+"+)"),6I=2B 4v("^([#.]?)("+C+"*)");D.1l({6H:{"":H(a,i,m){I m[2]=="*"||D.Y(a,m[2])},"#":H(a,i,m){I a.4G("2v")==m[2]},":":{8D:H(a,i,m){I i<m[3]-0},8C:H(a,i,m){I i>m[3]-0},3a:H(a,i,m){I m[3]-0==i},79:H(a,i,m){I m[3]-0==i},3o:H(a,i){I i==0},3S:H(a,i,m,r){I i==r.K-1},6D:H(a,i){I i%2==0},6C:H(a,i){I i%2},"3o-4u":H(a){I a.1d.3H("*")[0]==a},"3S-4u":H(a){I D.3a(a.1d.5T,1,"4l")==a},"8z-4u":H(a){I!D.3a(a.1d.5T,2,"4l")},6W:H(a){I a.1x},4E:H(a){I!a.1x},8y:H(a,i,m){I(a.6O||a.8x||D(a).1r()||"").1h(m[3])>=0},4j:H(a){I"1G"!=a.O&&D.1g(a,"18")!="2F"&&D.1g(a,"5g")!="1G"},1G:H(a){I"1G"==a.O||D.1g(a,"18")=="2F"||D.1g(a,"5g")=="1G"},8w:H(a){I!a.3R},3R:H(a){I a.3R},4J:H(a){I a.4J},2W:H(a){I a.2W||D.1K(a,"2W")},1r:H(a){I"1r"==a.O},5O:H(a){I"5O"==a.O},5L:H(a){I"5L"==a.O},5p:H(a){I"5p"==a.O},3Q:H(a){I"3Q"==a.O},5o:H(a){I"5o"==a.O},6A:H(a){I"6A"==a.O},6z:H(a){I"6z"==a.O},2s:H(a){I"2s"==a.O||D.Y(a,"2s")},4T:H(a){I/4T|2A|6y|2s/i.11(a.Y)},3T:H(a,i,m){I D.2q(m[3],a).K},8t:H(a){I/h\\d/i.11(a.Y)},8s:H(a){I D.3C(D.3O,H(b){I a==b.T}).K}}},6x:[/^(\\[) *@?([\\w-]+) *([!*$^~=]*) *(\'?"?)(.*?)\\4 *\\]/,/^(:)([\\w-]+)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/,2B 4v("^([:.#]*)("+C+"+)")],3g:H(a,c,b){J d,1t=[];1B(a&&a!=d){d=a;J f=D.1E(a,c,b);a=f.t.1o(/^\\s*,\\s*/,"");1t=b?c=f.r:D.2R(1t,f.r)}I 1t},2q:H(t,o){G(1j t!="23")I[t];G(o&&o.16!=1&&o.16!=9)I[];o=o||S;J d=[o],2o=[],3S,Y;1B(t&&3S!=t){J r=[];3S=t;t=D.3k(t);J l=Q,3j=6L,m=3j.2D(t);G(m){Y=m[1].2r();R(J i=0;d[i];i++)R(J c=d[i].1x;c;c=c.2H)G(c.16==1&&(Y=="*"||c.Y.2r()==Y))r.1p(c);d=r;t=t.1o(3j,"");G(t.1h(" ")==0)6M;l=M}N{3j=/^([>+~])\\s*(\\w*)/i;G((m=3j.2D(t))!=U){r=[];J k={};Y=m[2].2r();m=m[1];R(J j=0,3i=d.K;j<3i;j++){J n=m=="~"||m=="+"?d[j].2H:d[j].1x;R(;n;n=n.2H)G(n.16==1){J g=D.L(n);G(m=="~"&&k[g])1X;G(!Y||n.Y.2r()==Y){G(m=="~")k[g]=M;r.1p(n)}G(m=="+")1X}}d=r;t=D.3k(t.1o(3j,""));l=M}}G(t&&!l){G(!t.1h(",")){G(o==d[0])d.4s();2o=D.2R(2o,d);r=d=[o];t=" "+t.6v(1,t.K)}N{J h=6J;J m=h.2D(t);G(m){m=[0,m[2],m[3],m[1]]}N{h=6I;m=h.2D(t)}m[2]=m[2].1o(/\\\\/g,"");J f=d[d.K-1];G(m[1]=="#"&&f&&f.61&&!D.4n(f)){J p=f.61(m[2]);G((D.14.1f||D.14.2G)&&p&&1j p.2v=="23"&&p.2v!=m[2])p=D(\'[@2v="\'+m[2]+\'"]\',f)[0];d=r=p&&(!m[3]||D.Y(p,m[3]))?[p]:[]}N{R(J i=0;d[i];i++){J a=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];G(a=="*"&&d[i].Y.3y()=="49")a="3n";r=D.2R(r,d[i].3H(a))}G(m[1]==".")r=D.5m(r,m[2]);G(m[1]=="#"){J e=[];R(J i=0;r[i];i++)G(r[i].4G("2v")==m[2]){e=[r[i]];1X}r=e}d=r}t=t.1o(h,"")}}G(t){J b=D.1E(t,r);d=r=b.r;t=D.3k(b.t)}}G(t)d=[];G(d&&o==d[0])d.4s();2o=D.2R(2o,d);I 2o},5m:H(r,m,a){m=" "+m+" ";J c=[];R(J i=0;r[i];i++){J b=(" "+r[i].1F+" ").1h(m)>=0;G(!a&&b||a&&!b)c.1p(r[i])}I c},1E:H(t,r,h){J d;1B(t&&t!=d){d=t;J p=D.6x,m;R(J i=0;p[i];i++){m=p[i].2D(t);G(m){t=t.8r(m[0].K);m[2]=m[2].1o(/\\\\/g,"");1X}}G(!m)1X;G(m[1]==":"&&m[2]=="4Y")r=62.11(m[3])?D.1E(m[3],r,M).r:D(r).4Y(m[3]);N G(m[1]==".")r=D.5m(r,m[2],h);N G(m[1]=="["){J g=[],O=m[3];R(J i=0,3i=r.K;i<3i;i++){J a=r[i],z=a[D.3X[m[2]]||m[2]];G(z==U||/5Q|4d|2W/.11(m[2]))z=D.1K(a,m[2])||\'\';G((O==""&&!!z||O=="="&&z==m[5]||O=="!="&&z!=m[5]||O=="^="&&z&&!z.1h(m[5])||O=="$="&&z.6v(z.K-m[5].K)==m[5]||(O=="*="||O=="~=")&&z.1h(m[5])>=0)^h)g.1p(a)}r=g}N G(m[1]==":"&&m[2]=="3a-4u"){J e={},g=[],11=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.2D(m[3]=="6D"&&"2n"||m[3]=="6C"&&"2n+1"||!/\\D/.11(m[3])&&"8q+"+m[3]||m[3]),3o=(11[1]+(11[2]||1))-0,d=11[3]-0;R(J i=0,3i=r.K;i<3i;i++){J j=r[i],1d=j.1d,2v=D.L(1d);G(!e[2v]){J c=1;R(J n=1d.1x;n;n=n.2H)G(n.16==1)n.4q=c++;e[2v]=M}J b=Q;G(3o==0){G(j.4q==d)b=M}N G((j.4q-d)%3o==0&&(j.4q-d)/3o>=0)b=M;G(b^h)g.1p(j)}r=g}N{J f=D.6H[m[1]];G(1j f=="49")f=f[m[2]];G(1j f=="23")f=6u("Q||H(a,i){I "+f+";}");r=D.3C(r,H(a,i){I f(a,i,m,r)},h)}}I{r:r,t:t}},4S:H(b,c){J a=[],1t=b[c];1B(1t&&1t!=S){G(1t.16==1)a.1p(1t);1t=1t[c]}I a},3a:H(a,e,c,b){e=e||1;J d=0;R(;a;a=a[c])G(a.16==1&&++d==e)1X;I a},5v:H(n,a){J r=[];R(;n;n=n.2H){G(n.16==1&&n!=a)r.1p(n)}I r}});D.W={1e:H(f,i,g,e){G(f.16==3||f.16==8)I;G(D.14.1f&&f.4I)f=1b;G(!g.24)g.24=7.24++;G(e!=12){J h=g;g=7.3M(h,H(){I h.1w(7,19)});g.L=e}J j=D.L(f,"3w")||D.L(f,"3w",{}),1H=D.L(f,"1H")||D.L(f,"1H",H(){G(1j D!="12"&&!D.W.5k)I D.W.1H.1w(19.3L.T,19)});1H.T=f;D.P(i.1R(/\\s+/),H(c,b){J a=b.1R(".");b=a[0];g.O=a[1];J d=j[b];G(!d){d=j[b]={};G(!D.W.2t[b]||D.W.2t[b].4p.1k(f)===Q){G(f.3K)f.3K(b,1H,Q);N G(f.6t)f.6t("4o"+b,1H)}}d[g.24]=g;D.W.26[b]=M});f=U},24:1,26:{},21:H(e,h,f){G(e.16==3||e.16==8)I;J i=D.L(e,"3w"),1L,5i;G(i){G(h==12||(1j h=="23"&&h.8p(0)=="."))R(J g 1n i)7.21(e,g+(h||""));N{G(h.O){f=h.2y;h=h.O}D.P(h.1R(/\\s+/),H(b,a){J c=a.1R(".");a=c[0];G(i[a]){G(f)2U i[a][f.24];N R(f 1n i[a])G(!c[1]||i[a][f].O==c[1])2U i[a][f];R(1L 1n i[a])1X;G(!1L){G(!D.W.2t[a]||D.W.2t[a].4A.1k(e)===Q){G(e.6p)e.6p(a,D.L(e,"1H"),Q);N G(e.6n)e.6n("4o"+a,D.L(e,"1H"))}1L=U;2U i[a]}}})}R(1L 1n i)1X;G(!1L){J d=D.L(e,"1H");G(d)d.T=U;D.3b(e,"3w");D.3b(e,"1H")}}},1P:H(h,c,f,g,i){c=D.2d(c);G(h.1h("!")>=0){h=h.3s(0,-1);J a=M}G(!f){G(7.26[h])D("*").1e([1b,S]).1P(h,c)}N{G(f.16==3||f.16==8)I 12;J b,1L,17=D.1D(f[h]||U),W=!c[0]||!c[0].32;G(W){c.6h({O:h,2J:f,32:H(){},3J:H(){},4C:1z()});c[0][E]=M}c[0].O=h;G(a)c[0].6m=M;J d=D.L(f,"1H");G(d)b=d.1w(f,c);G((!17||(D.Y(f,\'a\')&&h=="4V"))&&f["4o"+h]&&f["4o"+h].1w(f,c)===Q)b=Q;G(W)c.4s();G(i&&D.1D(i)){1L=i.1w(f,b==U?c:c.7d(b));G(1L!==12)b=1L}G(17&&g!==Q&&b!==Q&&!(D.Y(f,\'a\')&&h=="4V")){7.5k=M;1U{f[h]()}1V(e){}}7.5k=Q}I b},1H:H(b){J a,1L,38,5f,4m;b=19[0]=D.W.6l(b||1b.W);38=b.O.1R(".");b.O=38[0];38=38[1];5f=!38&&!b.6m;4m=(D.L(7,"3w")||{})[b.O];R(J j 1n 4m){J c=4m[j];G(5f||c.O==38){b.2y=c;b.L=c.L;1L=c.1w(7,19);G(a!==Q)a=1L;G(1L===Q){b.32();b.3J()}}}I a},6l:H(b){G(b[E]==M)I b;J d=b;b={8o:d};J c="8n 8m 8l 8k 2s 8j 47 5d 6j 5E 8i L 8h 8g 4K 2y 5a 59 8e 8b 58 6f 8a 88 4k 87 86 84 6d 2J 4C 6c O 82 81 35".1R(" ");R(J i=c.K;i;i--)b[c[i]]=d[c[i]];b[E]=M;b.32=H(){G(d.32)d.32();d.80=Q};b.3J=H(){G(d.3J)d.3J();d.7Z=M};b.4C=b.4C||1z();G(!b.2J)b.2J=b.6d||S;G(b.2J.16==3)b.2J=b.2J.1d;G(!b.4k&&b.4K)b.4k=b.4K==b.2J?b.6c:b.4K;G(b.58==U&&b.5d!=U){J a=S.1C,1c=S.1c;b.58=b.5d+(a&&a.2e||1c&&1c.2e||0)-(a.6b||0);b.6f=b.6j+(a&&a.2c||1c&&1c.2c||0)-(a.6a||0)}G(!b.35&&((b.47||b.47===0)?b.47:b.5a))b.35=b.47||b.5a;G(!b.59&&b.5E)b.59=b.5E;G(!b.35&&b.2s)b.35=(b.2s&1?1:(b.2s&2?3:(b.2s&4?2:0)));I b},3M:H(a,b){b.24=a.24=a.24||b.24||7.24++;I b},2t:{27:{4p:H(){55();I},4A:H(){I}},3D:{4p:H(){G(D.14.1f)I Q;D(7).2O("53",D.W.2t.3D.2y);I M},4A:H(){G(D.14.1f)I Q;D(7).4e("53",D.W.2t.3D.2y);I M},2y:H(a){G(F(a,7))I M;a.O="3D";I D.W.1H.1w(7,19)}},3N:{4p:H(){G(D.14.1f)I Q;D(7).2O("51",D.W.2t.3N.2y);I M},4A:H(){G(D.14.1f)I Q;D(7).4e("51",D.W.2t.3N.2y);I M},2y:H(a){G(F(a,7))I M;a.O="3N";I D.W.1H.1w(7,19)}}}};D.17.1l({2O:H(c,a,b){I c=="4X"?7.2V(c,a,b):7.P(H(){D.W.1e(7,c,b||a,b&&a)})},2V:H(d,b,c){J e=D.W.3M(c||b,H(a){D(7).4e(a,e);I(c||b).1w(7,19)});I 7.P(H(){D.W.1e(7,d,e,c&&b)})},4e:H(a,b){I 7.P(H(){D.W.21(7,a,b)})},1P:H(c,a,b){I 7.P(H(){D.W.1P(c,a,7,M,b)})},5C:H(c,a,b){I 7[0]&&D.W.1P(c,a,7[0],Q,b)},2m:H(b){J c=19,i=1;1B(i<c.K)D.W.3M(b,c[i++]);I 7.4V(D.W.3M(b,H(a){7.4Z=(7.4Z||0)%i;a.32();I c[7.4Z++].1w(7,19)||Q}))},7X:H(a,b){I 7.2O(\'3D\',a).2O(\'3N\',b)},27:H(a){55();G(D.2Q)a.1k(S,D);N D.3A.1p(H(){I a.1k(7,D)});I 7}});D.1l({2Q:Q,3A:[],27:H(){G(!D.2Q){D.2Q=M;G(D.3A){D.P(D.3A,H(){7.1k(S)});D.3A=U}D(S).5C("27")}}});J x=Q;H 55(){G(x)I;x=M;G(S.3K&&!D.14.2G)S.3K("69",D.27,Q);G(D.14.1f&&1b==1S)(H(){G(D.2Q)I;1U{S.1C.7V("1A")}1V(3e){3B(19.3L,0);I}D.27()})();G(D.14.2G)S.3K("69",H(){G(D.2Q)I;R(J i=0;i<S.4W.K;i++)G(S.4W[i].3R){3B(19.3L,0);I}D.27()},Q);G(D.14.2k){J a;(H(){G(D.2Q)I;G(S.3f!="68"&&S.3f!="1J"){3B(19.3L,0);I}G(a===12)a=D("V, 7A[7U=7S]").K;G(S.4W.K!=a){3B(19.3L,0);I}D.27()})()}D.W.1e(1b,"43",D.27)}D.P(("7R,7Q,43,85,4y,4X,4V,7P,"+"7O,7N,89,53,51,7M,2A,"+"5o,7L,7K,8d,3e").1R(","),H(i,b){D.17[b]=H(a){I a?7.2O(b,a):7.1P(b)}});J F=H(a,c){J b=a.4k;1B(b&&b!=c)1U{b=b.1d}1V(3e){b=c}I b==c};D(1b).2O("4X",H(){D("*").1e(S).4e()});D.17.1l({67:D.17.43,43:H(g,d,c){G(1j g!=\'23\')I 7.67(g);J e=g.1h(" ");G(e>=0){J i=g.3s(e,g.K);g=g.3s(0,e)}c=c||H(){};J f="2P";G(d)G(D.1D(d)){c=d;d=U}N{d=D.3n(d);f="6g"}J h=7;D.3Y({1a:g,O:f,1O:"2K",L:d,1J:H(a,b){G(b=="1W"||b=="7J")h.2K(i?D("<1v/>").3v(a.4U.1o(/<1m(.|\\s)*?\\/1m>/g,"")).2q(i):a.4U);h.P(c,[a.4U,b,a])}});I 7},aL:H(){I D.3n(7.7I())},7I:H(){I 7.2l(H(){I D.Y(7,"3V")?D.2d(7.aH):7}).1E(H(){I 7.34&&!7.3R&&(7.4J||/2A|6y/i.11(7.Y)||/1r|1G|3Q/i.11(7.O))}).2l(H(i,c){J b=D(7).6e();I b==U?U:b.1q==2p?D.2l(b,H(a,i){I{34:c.34,2x:a}}):{34:c.34,2x:b}}).3p()}});D.P("7H,7G,7F,7D,7C,7B".1R(","),H(i,o){D.17[o]=H(f){I 7.2O(o,f)}});J B=1z();D.1l({3p:H(d,b,a,c){G(D.1D(b)){a=b;b=U}I D.3Y({O:"2P",1a:d,L:b,1W:a,1O:c})},aE:H(b,a){I D.3p(b,U,a,"1m")},aD:H(c,b,a){I D.3p(c,b,a,"3z")},aC:H(d,b,a,c){G(D.1D(b)){a=b;b={}}I D.3Y({O:"6g",1a:d,L:b,1W:a,1O:c})},aA:H(a){D.1l(D.60,a)},60:{1a:5Z.5Q,26:M,O:"2P",2T:0,7z:"4R/x-ax-3V-aw",7x:M,31:M,L:U,5Y:U,3Q:U,4Q:{2N:"4R/2N, 1r/2N",2K:"1r/2K",1m:"1r/4t, 4R/4t",3z:"4R/3z, 1r/4t",1r:"1r/as",4w:"*/*"}},4z:{},3Y:H(s){s=D.1l(M,s,D.1l(M,{},D.60,s));J g,2Z=/=\\?(&|$)/g,1u,L,O=s.O.2r();G(s.L&&s.7x&&1j s.L!="23")s.L=D.3n(s.L);G(s.1O=="4P"){G(O=="2P"){G(!s.1a.1I(2Z))s.1a+=(s.1a.1I(/\\?/)?"&":"?")+(s.4P||"7u")+"=?"}N G(!s.L||!s.L.1I(2Z))s.L=(s.L?s.L+"&":"")+(s.4P||"7u")+"=?";s.1O="3z"}G(s.1O=="3z"&&(s.L&&s.L.1I(2Z)||s.1a.1I(2Z))){g="4P"+B++;G(s.L)s.L=(s.L+"").1o(2Z,"="+g+"$1");s.1a=s.1a.1o(2Z,"="+g+"$1");s.1O="1m";1b[g]=H(a){L=a;1W();1J();1b[g]=12;1U{2U 1b[g]}1V(e){}G(i)i.37(h)}}G(s.1O=="1m"&&s.1Y==U)s.1Y=Q;G(s.1Y===Q&&O=="2P"){J j=1z();J k=s.1a.1o(/(\\?|&)3m=.*?(&|$)/,"$ap="+j+"$2");s.1a=k+((k==s.1a)?(s.1a.1I(/\\?/)?"&":"?")+"3m="+j:"")}G(s.L&&O=="2P"){s.1a+=(s.1a.1I(/\\?/)?"&":"?")+s.L;s.L=U}G(s.26&&!D.4O++)D.W.1P("7H");J n=/^(?:\\w+:)?\\/\\/([^\\/?#]+)/;G(s.1O=="1m"&&O=="2P"&&n.11(s.1a)&&n.2D(s.1a)[1]!=5Z.al){J i=S.3H("6w")[0];J h=S.3h("1m");h.4d=s.1a;G(s.7t)h.aj=s.7t;G(!g){J l=Q;h.ah=h.ag=H(){G(!l&&(!7.3f||7.3f=="68"||7.3f=="1J")){l=M;1W();1J();i.37(h)}}}i.3U(h);I 12}J m=Q;J c=1b.7s?2B 7s("ae.ac"):2B 7r();G(s.5Y)c.6R(O,s.1a,s.31,s.5Y,s.3Q);N c.6R(O,s.1a,s.31);1U{G(s.L)c.4B("ab-aa",s.7z);G(s.5S)c.4B("a9-5R-a8",D.4z[s.1a]||"a7, a6 a5 a4 5N:5N:5N a2");c.4B("X-9Z-9Y","7r");c.4B("9W",s.1O&&s.4Q[s.1O]?s.4Q[s.1O]+", */*":s.4Q.4w)}1V(e){}G(s.7m&&s.7m(c,s)===Q){s.26&&D.4O--;c.7l();I Q}G(s.26)D.W.1P("7B",[c,s]);J d=H(a){G(!m&&c&&(c.3f==4||a=="2T")){m=M;G(f){7k(f);f=U}1u=a=="2T"&&"2T"||!D.7j(c)&&"3e"||s.5S&&D.7h(c,s.1a)&&"7J"||"1W";G(1u=="1W"){1U{L=D.6X(c,s.1O,s.9S)}1V(e){1u="5J"}}G(1u=="1W"){J b;1U{b=c.5I("7g-5R")}1V(e){}G(s.5S&&b)D.4z[s.1a]=b;G(!g)1W()}N D.5H(s,c,1u);1J();G(s.31)c=U}};G(s.31){J f=4I(d,13);G(s.2T>0)3B(H(){G(c){c.7l();G(!m)d("2T")}},s.2T)}1U{c.9P(s.L)}1V(e){D.5H(s,c,U,e)}G(!s.31)d();H 1W(){G(s.1W)s.1W(L,1u);G(s.26)D.W.1P("7C",[c,s])}H 1J(){G(s.1J)s.1J(c,1u);G(s.26)D.W.1P("7F",[c,s]);G(s.26&&!--D.4O)D.W.1P("7G")}I c},5H:H(s,a,b,e){G(s.3e)s.3e(a,b,e);G(s.26)D.W.1P("7D",[a,s,e])},4O:0,7j:H(a){1U{I!a.1u&&5Z.9O=="5p:"||(a.1u>=7e&&a.1u<9N)||a.1u==7c||a.1u==9K||D.14.2k&&a.1u==12}1V(e){}I Q},7h:H(a,c){1U{J b=a.5I("7g-5R");I a.1u==7c||b==D.4z[c]||D.14.2k&&a.1u==12}1V(e){}I Q},6X:H(a,c,b){J d=a.5I("9J-O"),2N=c=="2N"||!c&&d&&d.1h("2N")>=0,L=2N?a.9I:a.4U;G(2N&&L.1C.2j=="5J")7p"5J";G(b)L=b(L,c);G(c=="1m")D.5u(L);G(c=="3z")L=6u("("+L+")");I L},3n:H(a){J s=[];G(a.1q==2p||a.5w)D.P(a,H(){s.1p(3u(7.34)+"="+3u(7.2x))});N R(J j 1n a)G(a[j]&&a[j].1q==2p)D.P(a[j],H(){s.1p(3u(j)+"="+3u(7))});N s.1p(3u(j)+"="+3u(D.1D(a[j])?a[j]():a[j]));I s.6s("&").1o(/%20/g,"+")}});D.17.1l({1N:H(c,b){I c?7.2g({1Z:"1N",2h:"1N",1y:"1N"},c,b):7.1E(":1G").P(H(){7.V.18=7.5D||"";G(D.1g(7,"18")=="2F"){J a=D("<"+7.2j+" />").6P("1c");7.V.18=a.1g("18");G(7.V.18=="2F")7.V.18="3I";a.21()}}).3l()},1M:H(b,a){I b?7.2g({1Z:"1M",2h:"1M",1y:"1M"},b,a):7.1E(":4j").P(H(){7.5D=7.5D||D.1g(7,"18");7.V.18="2F"}).3l()},78:D.17.2m,2m:H(a,b){I D.1D(a)&&D.1D(b)?7.78.1w(7,19):a?7.2g({1Z:"2m",2h:"2m",1y:"2m"},a,b):7.P(H(){D(7)[D(7).3F(":1G")?"1N":"1M"]()})},9G:H(b,a){I 7.2g({1Z:"1N"},b,a)},9F:H(b,a){I 7.2g({1Z:"1M"},b,a)},9E:H(b,a){I 7.2g({1Z:"2m"},b,a)},9D:H(b,a){I 7.2g({1y:"1N"},b,a)},9M:H(b,a){I 7.2g({1y:"1M"},b,a)},9C:H(c,a,b){I 7.2g({1y:a},c,b)},2g:H(k,j,i,g){J h=D.77(j,i,g);I 7[h.36===Q?"P":"36"](H(){G(7.16!=1)I Q;J f=D.1l({},h),p,1G=D(7).3F(":1G"),46=7;R(p 1n k){G(k[p]=="1M"&&1G||k[p]=="1N"&&!1G)I f.1J.1k(7);G(p=="1Z"||p=="2h"){f.18=D.1g(7,"18");f.33=7.V.33}}G(f.33!=U)7.V.33="1G";f.45=D.1l({},k);D.P(k,H(c,a){J e=2B D.28(46,f,c);G(/2m|1N|1M/.11(a))e[a=="2m"?1G?"1N":"1M":a](k);N{J b=a.6r().1I(/^([+-]=)?([\\d+-.]+)(.*)$/),2b=e.1t(M)||0;G(b){J d=3d(b[2]),2M=b[3]||"2X";G(2M!="2X"){46.V[c]=(d||1)+2M;2b=((d||1)/e.1t(M))*2b;46.V[c]=2b+2M}G(b[1])d=((b[1]=="-="?-1:1)*d)+2b;e.3G(2b,d,2M)}N e.3G(2b,a,"")}});I M})},36:H(a,b){G(D.1D(a)||(a&&a.1q==2p)){b=a;a="28"}G(!a||(1j a=="23"&&!b))I A(7[0],a);I 7.P(H(){G(b.1q==2p)A(7,a,b);N{A(7,a).1p(b);G(A(7,a).K==1)b.1k(7)}})},9X:H(b,c){J a=D.3O;G(b)7.36([]);7.P(H(){R(J i=a.K-1;i>=0;i--)G(a[i].T==7){G(c)a[i](M);a.7n(i,1)}});G(!c)7.5A();I 7}});J A=H(b,c,a){G(b){c=c||"28";J q=D.L(b,c+"36");G(!q||a)q=D.L(b,c+"36",D.2d(a))}I q};D.17.5A=H(a){a=a||"28";I 7.P(H(){J q=A(7,a);q.4s();G(q.K)q[0].1k(7)})};D.1l({77:H(b,a,c){J d=b&&b.1q==a0?b:{1J:c||!c&&a||D.1D(b)&&b,2u:b,41:c&&a||a&&a.1q!=9t&&a};d.2u=(d.2u&&d.2u.1q==4L?d.2u:D.28.5K[d.2u])||D.28.5K.74;d.5M=d.1J;d.1J=H(){G(d.36!==Q)D(7).5A();G(D.1D(d.5M))d.5M.1k(7)};I d},41:{73:H(p,n,b,a){I b+a*p},5P:H(p,n,b,a){I((-29.9r(p*29.9q)/2)+0.5)*a+b}},3O:[],48:U,28:H(b,c,a){7.15=c;7.T=b;7.1i=a;G(!c.3Z)c.3Z={}}});D.28.44={4D:H(){G(7.15.2Y)7.15.2Y.1k(7.T,7.1z,7);(D.28.2Y[7.1i]||D.28.2Y.4w)(7);G(7.1i=="1Z"||7.1i=="2h")7.T.V.18="3I"},1t:H(a){G(7.T[7.1i]!=U&&7.T.V[7.1i]==U)I 7.T[7.1i];J r=3d(D.1g(7.T,7.1i,a));I r&&r>-9p?r:3d(D.2a(7.T,7.1i))||0},3G:H(c,b,d){7.5V=1z();7.2b=c;7.3l=b;7.2M=d||7.2M||"2X";7.1z=7.2b;7.2S=7.4N=0;7.4D();J e=7;H t(a){I e.2Y(a)}t.T=7.T;D.3O.1p(t);G(D.48==U){D.48=4I(H(){J a=D.3O;R(J i=0;i<a.K;i++)G(!a[i]())a.7n(i--,1);G(!a.K){7k(D.48);D.48=U}},13)}},1N:H(){7.15.3Z[7.1i]=D.1K(7.T.V,7.1i);7.15.1N=M;7.3G(0,7.1t());G(7.1i=="2h"||7.1i=="1Z")7.T.V[7.1i]="9m";D(7.T).1N()},1M:H(){7.15.3Z[7.1i]=D.1K(7.T.V,7.1i);7.15.1M=M;7.3G(7.1t(),0)},2Y:H(a){J t=1z();G(a||t>7.15.2u+7.5V){7.1z=7.3l;7.2S=7.4N=1;7.4D();7.15.45[7.1i]=M;J b=M;R(J i 1n 7.15.45)G(7.15.45[i]!==M)b=Q;G(b){G(7.15.18!=U){7.T.V.33=7.15.33;7.T.V.18=7.15.18;G(D.1g(7.T,"18")=="2F")7.T.V.18="3I"}G(7.15.1M)7.T.V.18="2F";G(7.15.1M||7.15.1N)R(J p 1n 7.15.45)D.1K(7.T.V,p,7.15.3Z[p])}G(b)7.15.1J.1k(7.T);I Q}N{J n=t-7.5V;7.4N=n/7.15.2u;7.2S=D.41[7.15.41||(D.41.5P?"5P":"73")](7.4N,n,0,1,7.15.2u);7.1z=7.2b+((7.3l-7.2b)*7.2S);7.4D()}I M}};D.1l(D.28,{5K:{9l:9j,9i:7e,74:9g},2Y:{2e:H(a){a.T.2e=a.1z},2c:H(a){a.T.2c=a.1z},1y:H(a){D.1K(a.T.V,"1y",a.1z)},4w:H(a){a.T.V[a.1i]=a.1z+a.2M}}});D.17.2i=H(){J b=0,1S=0,T=7[0],3q;G(T)ao(D.14){J d=T.1d,4a=T,1s=T.1s,1Q=T.2z,5U=2k&&3r(5B)<9c&&!/9a/i.11(v),1g=D.2a,3c=1g(T,"30")=="3c";G(T.7y){J c=T.7y();1e(c.1A+29.2f(1Q.1C.2e,1Q.1c.2e),c.1S+29.2f(1Q.1C.2c,1Q.1c.2c));1e(-1Q.1C.6b,-1Q.1C.6a)}N{1e(T.5X,T.5W);1B(1s){1e(1s.5X,1s.5W);G(42&&!/^t(98|d|h)$/i.11(1s.2j)||2k&&!5U)2C(1s);G(!3c&&1g(1s,"30")=="3c")3c=M;4a=/^1c$/i.11(1s.2j)?4a:1s;1s=1s.1s}1B(d&&d.2j&&!/^1c|2K$/i.11(d.2j)){G(!/^96|1T.*$/i.11(1g(d,"18")))1e(-d.2e,-d.2c);G(42&&1g(d,"33")!="4j")2C(d);d=d.1d}G((5U&&(3c||1g(4a,"30")=="5x"))||(42&&1g(4a,"30")!="5x"))1e(-1Q.1c.5X,-1Q.1c.5W);G(3c)1e(29.2f(1Q.1C.2e,1Q.1c.2e),29.2f(1Q.1C.2c,1Q.1c.2c))}3q={1S:1S,1A:b}}H 2C(a){1e(D.2a(a,"6V",M),D.2a(a,"6U",M))}H 1e(l,t){b+=3r(l,10)||0;1S+=3r(t,10)||0}I 3q};D.17.1l({30:H(){J a=0,1S=0,3q;G(7[0]){J b=7.1s(),2i=7.2i(),4c=/^1c|2K$/i.11(b[0].2j)?{1S:0,1A:0}:b.2i();2i.1S-=25(7,\'94\');2i.1A-=25(7,\'aF\');4c.1S+=25(b,\'6U\');4c.1A+=25(b,\'6V\');3q={1S:2i.1S-4c.1S,1A:2i.1A-4c.1A}}I 3q},1s:H(){J a=7[0].1s;1B(a&&(!/^1c|2K$/i.11(a.2j)&&D.1g(a,\'30\')==\'93\'))a=a.1s;I D(a)}});D.P([\'5e\',\'5G\'],H(i,b){J c=\'4y\'+b;D.17[c]=H(a){G(!7[0])I;I a!=12?7.P(H(){7==1b||7==S?1b.92(!i?a:D(1b).2e(),i?a:D(1b).2c()):7[c]=a}):7[0]==1b||7[0]==S?46[i?\'aI\':\'aJ\']||D.71&&S.1C[c]||S.1c[c]:7[0][c]}});D.P(["6N","4b"],H(i,b){J c=i?"5e":"5G",4f=i?"6k":"6i";D.17["5s"+b]=H(){I 7[b.3y()]()+25(7,"57"+c)+25(7,"57"+4f)};D.17["90"+b]=H(a){I 7["5s"+b]()+25(7,"2C"+c+"4b")+25(7,"2C"+4f+"4b")+(a?25(7,"6S"+c)+25(7,"6S"+4f):0)}})})();',62,669,'|||||||this|||||||||||||||||||||||||||||||||||if|function|return|var|length|data|true|else|type|each|false|for|document|elem|null|style|event||nodeName|||test|undefined||browser|options|nodeType|fn|display|arguments|url|window|body|parentNode|add|msie|css|indexOf|prop|typeof|call|extend|script|in|replace|push|constructor|text|offsetParent|cur|status|div|apply|firstChild|opacity|now|left|while|documentElement|isFunction|filter|className|hidden|handle|match|complete|attr|ret|hide|show|dataType|trigger|doc|split|top|table|try|catch|success|break|cache|height||remove|tbody|string|guid|num|global|ready|fx|Math|curCSS|start|scrollTop|makeArray|scrollLeft|max|animate|width|offset|tagName|safari|map|toggle||done|Array|find|toUpperCase|button|special|duration|id|copy|value|handler|ownerDocument|select|new|border|exec|stack|none|opera|nextSibling|pushStack|target|html|inArray|unit|xml|bind|GET|isReady|merge|pos|timeout|delete|one|selected|px|step|jsre|position|async|preventDefault|overflow|name|which|queue|removeChild|namespace|insertBefore|nth|removeData|fixed|parseFloat|error|readyState|multiFilter|createElement|rl|re|trim|end|_|param|first|get|results|parseInt|slice|childNodes|encodeURIComponent|append|events|elems|toLowerCase|json|readyList|setTimeout|grep|mouseenter|color|is|custom|getElementsByTagName|block|stopPropagation|addEventListener|callee|proxy|mouseleave|timers|defaultView|password|disabled|last|has|appendChild|form|domManip|props|ajax|orig|set|easing|mozilla|load|prototype|curAnim|self|charCode|timerId|object|offsetChild|Width|parentOffset|src|unbind|br|currentStyle|clean|float|visible|relatedTarget|previousSibling|handlers|isXMLDoc|on|setup|nodeIndex|unique|shift|javascript|child|RegExp|_default|deep|scroll|lastModified|teardown|setRequestHeader|timeStamp|update|empty|tr|getAttribute|innerHTML|setInterval|checked|fromElement|Number|jQuery|state|active|jsonp|accepts|application|dir|input|responseText|click|styleSheets|unload|not|lastToggle|outline|mouseout|getPropertyValue|mouseover|getComputedStyle|bindReady|String|padding|pageX|metaKey|keyCode|getWH|andSelf|clientX|Left|all|visibility|container|index|init|triggered|removeAttribute|classFilter|prevObject|submit|file|after|windowData|inner|client|globalEval|sibling|jquery|absolute|clone|wrapAll|dequeue|version|triggerHandler|oldblock|ctrlKey|createTextNode|Top|handleError|getResponseHeader|parsererror|speeds|checkbox|old|00|radio|swing|href|Modified|ifModified|lastChild|safari2|startTime|offsetTop|offsetLeft|username|location|ajaxSettings|getElementById|isSimple|values|selectedIndex|runtimeStyle|rsLeft|_load|loaded|DOMContentLoaded|clientTop|clientLeft|toElement|srcElement|val|pageY|POST|unshift|Bottom|clientY|Right|fix|exclusive|detachEvent|cloneNode|removeEventListener|swap|toString|join|attachEvent|eval|substr|head|parse|textarea|reset|image|zoom|odd|even|before|prepend|exclude|expr|quickClass|quickID|uuid|quickChild|continue|Height|textContent|appendTo|contents|open|margin|evalScript|borderTopWidth|borderLeftWidth|parent|httpData|setArray|CSS1Compat|compatMode|boxModel|cssFloat|linear|def|webkit|nodeValue|speed|_toggle|eq|100|replaceWith|304|concat|200|alpha|Last|httpNotModified|getAttributeNode|httpSuccess|clearInterval|abort|beforeSend|splice|styleFloat|throw|colgroup|XMLHttpRequest|ActiveXObject|scriptCharset|callback|fieldset|multiple|processData|getBoundingClientRect|contentType|link|ajaxSend|ajaxSuccess|ajaxError|col|ajaxComplete|ajaxStop|ajaxStart|serializeArray|notmodified|keypress|keydown|change|mouseup|mousedown|dblclick|focus|blur|stylesheet|hasClass|rel|doScroll|black|hover|solid|cancelBubble|returnValue|wheelDelta|view|round|shiftKey|resize|screenY|screenX|relatedNode|mousemove|prevValue|originalTarget|offsetHeight|keyup|newValue|offsetWidth|eventPhase|detail|currentTarget|cancelable|bubbles|attrName|attrChange|altKey|originalEvent|charAt|0n|substring|animated|header|noConflict|line|enabled|innerText|contains|only|weight|font|gt|lt|uFFFF|u0128|size|417|Boolean|Date|toggleClass|removeClass|addClass|removeAttr|replaceAll|insertAfter|prependTo|wrap|contentWindow|contentDocument|iframe|children|siblings|prevAll|wrapInner|nextAll|outer|prev|scrollTo|static|marginTop|next|inline|parents|able|cellSpacing|adobeair|cellspacing|522|maxLength|maxlength|readOnly|400|readonly|fast|600|class|slow|1px|htmlFor|reverse|10000|PI|cos|compatible|Function|setData|ie|ra|it|rv|getData|userAgent|navigator|fadeTo|fadeIn|slideToggle|slideUp|slideDown|ig|responseXML|content|1223|NaN|fadeOut|300|protocol|send|setAttribute|option|dataFilter|cssText|changed|be|Accept|stop|With|Requested|Object|can|GMT|property|1970|Jan|01|Thu|Since|If|Type|Content|XMLHTTP|th|Microsoft|td|onreadystatechange|onload|cap|charset|colg|host|tfoot|specified|with|1_|thead|leg|plain|attributes|opt|embed|urlencoded|www|area|hr|ajaxSetup|meta|post|getJSON|getScript|marginLeft|img|elements|pageYOffset|pageXOffset|abbr|serialize|pixelLeft'.split('|'),0,{}))
|
data/doc/api/readme.html
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
|
6
|
+
<link rel="stylesheet" href="style.css" type="text/css" charset="utf-8" />
|
7
|
+
<link rel="stylesheet" href="syntax_highlight.css" type="text/css" charset="utf-8" />
|
8
|
+
|
9
|
+
<title>README</title>
|
10
|
+
</head>
|
11
|
+
<body>
|
12
|
+
<div id="content">
|
13
|
+
<div class="section docstring readme">
|
14
|
+
<p>
|
15
|
+
Copyright 2008 Suraj N. Kurapati <sunaku@gmail.com>
|
16
|
+
</p>
|
17
|
+
<p>
|
18
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
19
|
+
purpose with or without fee is hereby granted, provided that the above
|
20
|
+
copyright notice and this permission notice appear in all copies.
|
21
|
+
</p>
|
22
|
+
<p>
|
23
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
|
24
|
+
WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
25
|
+
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
26
|
+
SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
27
|
+
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
28
|
+
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
29
|
+
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
30
|
+
</p>
|
31
|
+
|
32
|
+
</div>
|
33
|
+
</div>
|
34
|
+
</body>
|
35
|
+
</html>
|
data/doc/api/style.css
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
body { font-family: Myriad, Helvetica, Arial, Verdana, sans-serif; font-size: 10pt; }
|
2
|
+
#nav ul { list-style: none; padding: 0; margin: 0; }
|
3
|
+
#nav ul li { white-space: nowrap; }
|
4
|
+
#nav li em { font-size: 0.9em; color: #999; }
|
5
|
+
#nav h1 { font-size: 1.2em; }
|
6
|
+
h1 { font-size: 1.5em; background: #eee; color: #000; padding: 3px; text-decoration: none; }
|
7
|
+
h2 { font-size: 1.2em; background: #eef; color: #000; padding: 3px; text-decoration: none; }
|
8
|
+
h3 { font-size: 1.0em; }
|
9
|
+
.clear { clear: both; }
|
10
|
+
.section.module h1.title, .section.class h1.title, .section.readme h1 { color: #000; background: #ddd; border: 1px solid #ccc; padding: 7px; margin: 0; margin-bottom: 7px; }
|
11
|
+
.section.class h1.title { border-bottom: 0; margin-bottom: 0; }
|
12
|
+
.section.class > .section.docstring, .section.module > .section.docstring { padding: 0; }
|
13
|
+
#initialize-instance_method .methodsignature .return_types { display: none; }
|
14
|
+
.methodsignature .visibility { display: none; }
|
15
|
+
.methodsignature .name { font-weight: bold; }
|
16
|
+
.methoddetails .method_header h3 { display: none; }
|
17
|
+
.section.method { background: #eee; margin-bottom: 0.8em; }
|
18
|
+
.section.tags,.section.docstring,.section.source { padding: 5px 12px; }
|
19
|
+
.section.method .details_title { font-size: 1.1em; background: #dde; padding: 7px; }
|
20
|
+
.section.method .details_title p.aliases { padding: 0; margin: 0; font-style: italic; font-size: 0.9em; }
|
21
|
+
.section.method .details_title p.aliases tt { font-weight: bold; font-style: normal; font-size: 1.1em; }
|
22
|
+
.section.constants dl { font-family: monospace; }
|
23
|
+
.section.constants dt { font-weight: bold; font-size: 1.1em; }
|
24
|
+
.section.constants dt:after { content: " = "; }
|
25
|
+
.section.constants dd { margin-bottom: 1em; }
|
26
|
+
.section.source .source_link { font-size: 0.9em; }
|
27
|
+
.section.source .source_code { display: none; }
|
28
|
+
/*.section.source .source_code pre { float: left; }*/
|
29
|
+
.section.attributes table { padding: 0; width: 100%; }
|
30
|
+
.section.attributes .readwrite { width: 5%; }
|
31
|
+
.section.attributes .name { font-weight: bold; width: 10%; }
|
32
|
+
.section.attributes .visibility { font-style: italic; color: #666; width: 5%; }
|
33
|
+
.section.attributes td, .section.attributes th { vertical-align: top; padding: 5px; }
|
34
|
+
.section.attributes th { padding-left: 0; text-align: left; }
|
35
|
+
.section.attributes .docstring p.returns { color: #555; font-style: italic; }
|
36
|
+
.section.attributes .docstring .return_types { font-style: normal; }
|
37
|
+
.section.attributes .docstring { width: 80%; }
|
38
|
+
.section.attributes .docstring * { display: inline; }
|
39
|
+
.section.inheritance { background: #ddd; padding: 5px; border: 1px solid #ccc; border-top: 0; }
|
40
|
+
.section.inheritance ul { list-style: none; padding-left: 2.2em; margin: 0; }
|
41
|
+
.section.inheritance ul li { line-height: 1.2em; }
|
42
|
+
.section.inheritance ul li:before { content: "↳ "; }
|
43
|
+
.section.inheritance > ul { padding-left: 5px; }
|
44
|
+
.section.inheritance > ul > li:before { content: ""; }
|
45
|
+
.section.inheritance > ul > ul { padding-left: 1em; }
|
46
|
+
.section.methodsummary table { width: 100%; }
|
47
|
+
.section.methodsummary td, .section.methodsummary th { background: #eee; vertical-align: top; padding: 5px; }
|
48
|
+
.section.methodsummary th { background: #dde; text-align: left; white-space: nowrap; padding-right: 12px; }
|
49
|
+
.section.methodsummary .signature { font-family: monospace; font-weight: normal; }
|
50
|
+
.section.methodsummary .signature .name { font-weight: bold; }
|
51
|
+
.section.methodsummary .signature .alias { display: block; }
|
52
|
+
.section.methodsummary .docstring { width: 80%; }
|
53
|
+
.section.methodsummary .docstring * { display: inline; }
|
54
|
+
.section.methodsummary .docstring p.returns { color: #555; font-style: italic; }
|
55
|
+
.section.methodsummary .docstring .return_types { font-style: normal; }
|
56
|
+
.section.tags div { clear: both; }
|
57
|
+
.section.tags h2 { display: none; }
|
58
|
+
.section.tags h3 { font-size: 1.0em; margin-top: 3px; }
|
59
|
+
.section.tags dl { margin-left: 2em; }
|
60
|
+
.section.tags .option table { width: 100%; border: 0; padding: 0; }
|
61
|
+
.section.tags .option th { text-align: left; background: #e5e5e5; padding: 3px; }
|
62
|
+
.section.tags .option td.name { font-family: monospace; }
|
63
|
+
.section.methodmissing p.note { font-style: italic; }
|
64
|
+
.section.constructor p.inherited_msg { font-style: italic; }
|
65
|
+
.included h1, .inherited h1 { font-size: 1em !important; border: 0; margin: 0; padding: 5px; border-bottom: 1px solid #ccc; }
|
66
|
+
.included div, .inherited div { color: #444; margin: 1.5em 0; width: 47%; border: 1px solid #ccc; float: left; margin-right: 12px; }
|
67
|
+
.included p .name, .inherited p .name { font-family: monospace; }
|
68
|
+
.included p, .inherited p { margin: 5px; }
|
@@ -0,0 +1,21 @@
|
|
1
|
+
/* Canvas */
|
2
|
+
.source_code pre.lines { margin-right: 20px; text-align: right; color: #888; }
|
3
|
+
.docstring pre { padding: 12px; padding-left: 0; }
|
4
|
+
.docstring pre, .source_code { background: #222; padding: 12px; margin-top: 8px; border: 1px dashed #ccc; font-size: 0.9em; overflow-x: auto; }
|
5
|
+
|
6
|
+
/* Token colours. Borrowed from pastie.org's "Blackboard" theme */
|
7
|
+
pre.code, pre.lines { font-family: Monaco, Courier, monospace; }
|
8
|
+
pre.code { color: #fff; }
|
9
|
+
pre.code .info.file { color: #888; }
|
10
|
+
pre.code .val { color: #61CE3C; }
|
11
|
+
pre.code .dstring { color: #61DE3C; }
|
12
|
+
pre.code .fid, pre.code .id.new, pre.code .id.to_s,
|
13
|
+
pre.code .id.to_sym, pre.code .id.to_f,
|
14
|
+
pre.code .dot + pre.code .id,
|
15
|
+
pre.code .id.to_i pre.code .id.each { color: #FF6400; }
|
16
|
+
pre.code .comment { color: #AEAEAE; }
|
17
|
+
pre.code .constant, pre.code .symbol { color: #D8FA3C; }
|
18
|
+
pre.code .kw { color: #FBDE2D; }
|
19
|
+
pre.code .ivar { color: #AACEFB; }
|
20
|
+
pre.code .gvar, pre.code .id.nth_ref { color: #BADEFF; }
|
21
|
+
pre.code .regexp, .dregexp { color: #EA5EFB; }
|
data/doc/history.erb
ADDED
data/doc/index.erb
ADDED
data/doc/index.xhtml
ADDED
@@ -0,0 +1,1830 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
3
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" [
|
4
|
+
<!ENTITY icon_caution "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAiESURBVGiB7ZpdbBzVFcd/Z2Znd2d3vbtm/RWvsbEdfyauSWzq2MZWEFVD5AqBaBpRVyaKoaakEBMEBRRVBaukKiqhQF+iioRU9MVUah+ChCIeEiXEIcRECShxxJflOqmxk8gmXq/Xu3v7sB84ju049oYUqUe6ujM7d+75/e+ZO/fMzIpSiu+zaTcbYKn2fwE32773Aiw3pFcR2QsvCWxSYAj8yw6/2qBUKNWuboiAv8FffIWFm8qam03Rdb744IOf/+fMmWzgJ6n2lfJL6E2RaqvL9VDVvfeak0ePEnj/fcruvttudbvX7hZZl2p/KRdghddKm5vN4MmTBM+cIdTfT+D4cSoaG50avI6IpNJfSgW8KXKn3eer9RUXy+XDh5O/Bz76CI/fjzszc9lu+FkqfaZUgAFvlDU1OQI9PajQt/NVhcOM9/RQWl/vssDOF0RSNvdSJuAtkRbnsmXLPbm5BHp7AdBXr8ZSXw/AxKef4vR4SPf73bfBI6nymxoBIqLBa+XNzc7Lhw6hIhHQNMwXX8SxYwcYBijF5SNHKK6rcwq8tEvEkQrXKRGwBx5MLyjIdrrdTJw6BYDR0oKlvBwtLw/bgw8CMPnZZ9hEyCwstFnhqVT4XrKAXSKGwCslzc3OywcPglKg65idnQCICPYtWxBHbMAv9/RQVFtraiK/+btI+lL9L1mABX6ZXVKSZtM0gn19AFg3bEArKEjeMbWMDOwPPQTA1OAg+vg4/pISyxT8dqn+lyRgl4jDItK1vKnJ8c2BAwCIzYb98cevuN2LCPaODsTjAWD8ww/Jr662aZrWsVfEvxSGJQmwwZP+FStMPRAg9NVXAFhbW9FzcpJtklHweDA7OgAIj4yghocpqKiwAH9YCsOiBewR8Wq6/mxhQ4P9m4MHY7BOJ+ZjjyXbJOATtX3TJrTMTAACvb3kVlYaumE8sFek9DsXoMP2/Ntvt6rhYabOnQPAtnkzkp4+KzyA5nDgeOIJACJjY4QHBritosKmwauL5ZDFPBPvEcmxGMbndz78sGO0u5vwyAji9eI5cABxuRAR3nvvPc7FheXm5rJ+/fqYw0iEi2vXEhkYQDNN0tav58N3350IBoPNm5X66HpZFhUBDV4qqq01wv39hEdGAGKTNA4P0N3dTVdXF11dXbzzzjsxeBGwWHBs2wZAdGKC0OefU1xZabfC64tkuT7bLVKk2+0bc1etMhIJm5aVha2t7YrLJi0tLXmOa5owAPP++7GUlQEQPH0an98vhtNZtVvkRzdcgAX+tHzNGluor4/I6CgA9i1b0EwzCQ/gdDqvEJAwEQFNw/XMMwCoUIjJs2cprqx0WhYRhesSsFfkB4bL9eOcykp9/MiRWAe33oo9nipMH+WZEUgcTxT7unUYq1YBsRTD4/Nher35u0V+esMEaPDnkvp6M3jyJNFAAABz61awWK5auKaPelpaWhJ8ulD3888DoCIRgmfOUFRe7tDh1etJtxcs4C2RRtstt/wwo7hYxo8dA0AvKcF2331XwcOVl830OTC9tjY0YGtqAiDU34/L4cDt86XfBptTLkDgjdL6esfE8eOoyUkAzG3bEF2/Cn62CMw8nqjdzz0Xa6QUwdOnKSwtdQjs6BYxUyZgr8h6Z1ZWiTc3l8DHHwNgqarCds89SZCZcNPngNPpnBUewLpqFWZLCwBT589jF+GW7GwzCFtTIyDm6fWyxkbn+NGjqHAYAMfTT18BMhNuoREQEdzPPgvxSAb7+sgvLjaVyPY9It4lC9gDG715eTkur5eJTz4BwKirw2hqmhMeoKioiPb2dtrb2yksLJwTHsBaWopzwwYAwhcuYASDZC1bZtFh+7X45k0lXhCxFMLAHRs35kRPnEjm+57ubow77pgTPlEPDAwAUFBQMCd8oo4MDnJ+zRpUKITudmOsXMnxnp6gFo0W/UKp83MxzhuBfHgko7jYbTcMgmfPAmC9664Fwb/88ss0NDTQ2NjIzp0754UXESx5ebja2mJixsaQ0VFy/X49CjvmY5wzAt0iZlBksK61NT10+DCTX34JInj37cNSWTkvvIhQU1PD0NAQADk5OfT29s4Jn6gjIyMM1tSgAgE008RaXU3vsWPBUCRS1a7UZ7NxzhmBCXgyp7zctExOxuABW0vLguABamtrk31VV1dfEx7AkpmJ59FHgViip0ZGyPP7DSu8MhfnrBHYJeIxNe3f9W1trsD+/UwNDoKuk75/P3pR0TVBRIQLFy7w9ttvA9Da2kpWVtY1zxERomNjDKxeTfTSJcRqxVZdzYkTJ4KRqamGNqU+nsk6awTssD2vqsqQixdj8ID9gQcWDA+QkZFBZ2cnnZ2dC4YH0D0evFtjS4AKhYgODZHv99u0ORK9qwT8VSRbdP2xgtpa2+V4wiZWK47OzgXBTy8LETpbW29HB3p2NhB7i+FLTxfdZlu9R2TtvAJExKrgd/kVFUZ0aIjw8HBsVMrKkg/q1wOyWKFit2PW1QGxRC88NMStOTmmBn+U6YsP0z5wiIgdcBmwLnvlSmPi0KFko/CpUwwXFc0U/51Z+Ouv8a5Ygervr/aCR0RGVXzyagAiogN2wBGFaGRyEt3nQwzjpkEnTdPQnE7CU1MAwakYZzLRS0RAj29bzsE/+w4f/nVlc7PNV1MDmhZ7WasURKOoaDS5jVKx/dm2E22i0W+3Z2s/89gsfoKTk3zR3z9xEf4xHmNNpsCilEJiDxBuIA1I+z08lQP3aeBFBNHmWbBT/aV/Wn8qvh+F0Uuw73noCsEocEkpFUwKABARJ+CKFwexMFmBqURf37Fpcf9hIAgEgHFgDBhLzIHkJFZKjYuIAiJACJiIH79ZAhKXdSTOECQGPj690VUrcfw2ZYuXhICbYRZiUUhEYFLNkjYs6s3c/5J97/9q8F/RUcwR4xicOQAAAABJRU5ErkJggg==">
|
5
|
+
<!ENTITY icon_tip "data:image/png;base64,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">
|
6
|
+
<!ENTITY icon_important "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAk1SURBVGiBvVlpbBxnGX6+uda76/uO10fsxs5BjNOLtE3S5iAp2bSoiIqCFBSQoEgV3R8IQUUjfiAFCfhRugKqCohaobZAUyCIrtIoCW3Cmauxc9Zx4vhIfK9313vNzsz38mO9zux6du1dOzzSaGbe73qe732/Y75hRITlgNfNJACPM4bHFAFtDrvS5ix1NimKXByPRicikfhANKZf1zh6ARzx+OjmcrTLliLA62Y2AHuK7eLXXC1NO9esaxVr62tlUbEBxECaBnADJEoQRAEAhxabocH+Ie1m30BgeHj6DVWntzw+6vm/CvC6mcAY9tbXVbyy+fGHSqsaGiTEY8BMEBSeARl69gZlGay4FNxRAogGBnp7E+fP9Z2emI590+Oja/dcgNfNtldVOA9u2fpww4rmFpkmR8FDAaAQTwoChPJKkMOGa5evJLov9B8OzCRe8PhocrFV5CXgtafY/g0PrN7/4KZHbAhMgvsnCyOeCVGAUFkLLiboxPEzwb7+qa0eH3UvpuiiBHjdzGaT2Ds7dj36VEtbq8yH+nOGSaFgigKqKsf5sz3quY8H977oo0MLlllIgNfN7E67dPqZZ3etLS2yi8bo8PL0ejaIAlBdjYFbN7QPT37y8rcOGz/LlV3Ileh1M2aT8O4zX9i2tkSSRGNk6N6SBwCDA2PjaHG55E2PtB3wupk7V/acAmQBB7Ztf3hnaXG5yCdGl5foQpiewX1tLXLX+ob3vG62Nlu2rAK8bubu7Gz9TmtHh2KMDN4bkrlABBaIYuNDHUWtTRUnZ9eceZCsjF43k0qd8q83Pv4ZGx+6lXfYiF1fhlDVMUvEALgBADCu/Bl84pPFV2QYYIEYtm5prxw5dO67AA4sSoDA8PyWzeurKRwD6Vpe5AFAbH4MQtPG+XzunAfyEQCAdILERWHt6vr9Xjf7lcdH02lcMwt43ay4rMT24+aOtQr3j+fLPQk1ZG2PZ7EvACFq4MH7m20lDukn89IyDQz46hOb1jgoGEjOCAWA4kHrhGz2herjgBCJs472+n1eN3OY0+YJUCTsq29plikYKKgxILsAUgsTAACIa1i9qloE8KTZnCbA62Zl1VUlXQKzLWmlXW4PJCu1wemwidXlRd8wmzM9sOfT6xoYj8YKbwiwJmrooESk8DoFEYjE0eCq2DH77ZE0m/MoIrbW11faKBIuvCFYe4CyDew8IMRiaFxRxgC0z9nMGUSGVsXhBGmJpbVkJWAp4ZOqgxOKHQoD0JCypQkgoFGQiwDDWFpDVtOl2QOF7qc4weGQRQCulCltIRNEsY4VVnU6rDwQHgP5b4ASYUBXASYCogwmKoDsAHNWA7LDojJTHRxQbLLAGJosBYiS6ICuLpk/aWGAc0C462AKDYOiU6ZMBqAbID0OqCFQeBSQ7WDOWjBnLcAsupLrYAAkAXUpU1oIaQktSDn3pwtSB8X8oIlroNhUekp0KksZM4EYKDAAPtYDivnnp3MdBidoBuZ2l+l7IaIx4notGMsvTg0VFJ4ARScAQ5sjzJw1d/MsRkAKugqa6gMpxRDKmwGlGADAKIF4PGEAGLYUwIBhPRLsFIlAkHM3wnVQbBqI+a1nmGgBHshEIgw+fgVQnGCCBCYRItEEB3DHUoDOcT0eVXc71BBgq09KSmNhJElH/cltQQ4v6Wd+A2Hs0tw77z+Vv4A5IREQAKGmHsEZlcPkgbRvYq+b7d70QMOhzka7Q789lAwBQUwO/0QEFC/w+GSZwO5bhxNnR0N7XpsqS9kyh+yJS72TYOWVgJEAhW6DAoOg4HCy5wshL9uXSHsWggBWXIqR0cC7aWbzi8dHajyW+EhVNTCHc2nt1Xei6PlTcPwwANtzby9ZiFBagbGxYCKq8rfS7JkZVQNvXu8bj4l1rsykvCBvfRnCys2AqEDs+gqkzueWVB9qXbh0dUwDkDaYrGb9Q2d6Rqa4swzMnntlzAVWtSrnez4QyioR1pkxMOT/kcdHafv8eQI8PjLiGr1w9vxATGpqK7hR/d+/uDtmtCj0cwcLrguuVvzjP7dCOsfPM5Oynsy9/jT7eO+z928QxwbBAwXM4Uj2utj6BIxL7yVnsAIg1rkwLpTrfzlyed+L79PbmelZNw6qgX2HP7gaFZrbCg4lmuqDfva3BZMXSsuhVa2g4yd7u4nwjmWebIU9PurxB+NfP/Zhb0xatQ6QLE9g7hmYrQho6cDfPrgyGYpouzw+61DJuXX79vv0x4Hh4Ks9F2+rcsd6MFm5N2wzwIrsENrX49jJvuj4VHSbx0cWO7skFtx7ahw/OHtx5E9nuu/EpLVdYI7i5WWbSaisAqx9PY5+1Be9OeD/osdHl3PlX/B4nTEmApBe+RxeanWVfG/3jjUOGh2CsdyHvYxBrG+EVl5Lfz1yxd89EHv6p//EBQA6AJ2yEM0qgDEmAJCR3PBJAKTvb8aT6xpsr7u3r3KWFduYMdwPHpy2LJ8PhMoaCK6VuD0a0o+dutH7h279S8dvYjxFfvbSZoUsLGC211PkZfPz7na0fLYN+9say7bs2LSyqEjkMCbGwAN+II+zJCbLEMqrwGpWwD+j8b//qz92cSDy6i9P43chFaqZdMZdM3tjngBTz6cRz3z+/Gp8alsrXmpfWbGma3WNXLuiQmDxKHhwGpSIA4kESEuAdA1MUsAUBZAVsCI7WFklDEnB8JBf7746bnTfDP3+jQs4OBxCKEXSTNhCwNyJs5UAyURWySJk7nq0CS0bXdjWWsF2NjaUutqby6msWJEcDkUosisQZQmaqiEeS1A4muDTIZX3DUxT/53w+cvjOHr0Bv47HsFMBlkr4gnTu5rivZCAeYQtrrl8bRWo2lCPNSU21JQoqK6wo04R4ZhR4ffHMB5OYGoyirFTg7iq6ojn6uVcgoho7uTBSgDLEUJWIWUWLJruIpKfdKnPOgJgAOCzRA1kDNAs90xxKhHNHZvPW16JiBhjWkbDqTvNEuCzBFICdBNpEcn1RUD6N6m5vGG6p0SknjVYzD5W5IEF1oHZ2UgxETVfKbKpZ8GCfObhDrfohGxeMUzk40RkeVy4qB/dqcUMyVDJDJNM4mbymQIyvWgWYhZhYHbQZiOelwCTEJhIpuI+JYCZyKe2KNkEWIlIxTrPDJNc+B/DI2njy1uQ2wAAAABJRU5ErkJggg==">
|
7
|
+
<!ENTITY icon_note "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAmCSURBVGiB1ZltbJXlGcd/9/N+Tlssh1JahNEJaK2UFxFptqC2wGCSTWdM3DSQzWVDEzVxy4xfjNkHQ8xMnEEXviwZ62Rj6siWTcVBZeJA5yBQpOWlKNZSaEvpyyk95zwv970Pp+fY5/S0tFBkXsmTc67neu77+f/u6349Ryil+Cqbdq0FXKldEuClp+3nfvVz/eJLT9vPXQv/igFc13tqw4/ujLqu99S18C9lRr6br7zyyi2WZb2eSqUqpVSUlE5BSmW8/PLL6sv2bdtuTiaT9z/++ONN486AZVm/XLiw+qZlt98Wun/bsqUhf+nSJSF/ya2LQv6ixQtD/sJFC0L+guqqkF91S2XIr6y6idlfm1Vp2/Yz+XSOCiCEqDJMQ3ze+hm6bnC+sx9d1zl+vBlN1znf2Y+m6TQfa0LTvvCbmo6G/KNHj4T8Ix83hvzGI4dD/uHGQyG/peUElmUJIURlPp2jAkgpiwXg+R5FM9dRv3U/heXrkFJSWHZ32i/7NlJKCsrWUr91P9EZa5FSEildQ/3W/USmfwspJc701dRv3Y9dshopJda0VdRv3Y8VW4mUEjO2kvqt+zCm1iGlxCiu5fe/24defBeu6yHSkopHAxD51oEtW7bEb1++rLC5+ShBEKCU+uJCgWJCvlJD9/iinlw/o2O4b5omixct4fixkz2PPPJILB9A3kEspYzOmjWbxYuWjIiNtfBdjdjg4EWam44XjhYf0YU2b948xTTNoGRaSbjlR2mlqx0rLCxC0zR98+bNdj6AERkIgiDmOI6nlDK/7NbOF1NKYdt2KplMxoCzufERAKZpxiKRSDC8wnfeeWfUl06W0FxbtWpV9tloNOoPDg6OD0BKGYtEIqGXrV69etKFXio2vGs5jqOklOMbxJqmxaLRqBheSRAEo77sSoWOZkKI7DORSERomjY+AKVULBKJGMMB3n333Uum/XK35aOVq6ury2YiEonoSqnxAziOYw0HqKurG5fIyR68mU/Hccyes8cq19cVbQB84Fh9Q/xgXgDTNGfYtq0NBxivkMmGAGg73cTOV58xe9tPPvnwuodUxFX89cOd/vq6orX1DfG9IwB0XS+zbTs0kHbt2jVhiMwscrkQrS2H+ce2TfSdPc2Dd9xN1cL7TK29E9rbWWBXWk9o+95eX1c0Jd9KXGqaZghg5cqVExIyEaG51tL0IW9u2wRuijVrf4JXXIHR1oZoaIC2NjhzBtHbS+lcTT9jBNPzAUyzLCvUBy9HyETLHm98nze3bWKw7xy1NZXcOG8JUmq0BgGtpaVoRUWUfPwxnb5Pl+/RJ6QAIvkGcXFuBq4mxNEDu3lr2yaUN8BdyyuZO/d2hNBQ0sPrf43C0yvoqqjic9umdXCQ85akeT6plMUL9f+Mf5pvIZtiGAa5g3gyIZRSNH74Nm/9cRO2HrByeSUVFRWAQAYpEj2nSF44hZI+F/tn4V0/n3hPJ+1Vym+KKFcY4lXPU89A/r1QgWEY+L6fvbd79+4rhkg/Izlz8j+c/O/rlBRHufuOBcyeNRsA6Q+S6G4h1XcaJdMLZ0evT3tXG/65VznU9j5eofqN5/N8/c7+9kydofPAiy++GIlGo/ENGzborutOWOhosSDw+ehfb7Dzzy9QVjKFO5bdTHl5eTrmxklcOEmq73NQEqmgvduj5axLR5/GRVdQd89G2uMFsqd3wH722Wf94XWHMhCJRGK2bbtAZDLmc99z+aDhT+x6/dfMmTWdH3znG5ROL03HUr0kzp/AjbcDikAqWrt8TrWn6IgbSC1K3b2PsbzuAQqLrmP79u2u0KypQNeoAL7vxxzH8XMHb0NDw4Qh2k99RPO//0DlvNlsuL+WabFpAHiJbpLdx3EHOgBwfcVnnR4t7SnO9Qk0q5Ablt7Lgz/+BZqmZ+uzbdsfGBiIjQkwtI1QuTNQbW3tJVt7uB14bwcfHdnBxofvoTgaBQTuxXMkuk/gD3YDkHAVn55z+eRcis64QUnZXB7Y8DNuXnzXiNlvaD+kDMMYsR8akQHTNIWU8rJnoAN7d7DrtefZ+MSjRGfMI/HpPuInd+EnewGIJySnzrp81unRGRdU3LiUHz76JBU3LhkhOmNSShzHId+WOgSQTCZjlmWFdqIAe/bsGdcs03ZiH62H/sJPH12PXXAd0r2IXVZFz5E36BkIaDnr0trl09kXUF6xiOW191BYXM7p9j5Ot+8J1XXnnXeGYEzT1F3XHRsgCIKYZVlmLsCKFStGtMqwMvi+z4H3dtD1yXus+e59WJaBn+hBc+MoBUfaFM2nk1y4KKlaupq1teuZWjITwzDQdR3DMDAMA9M0s/UOFy+lxLZtw/f9sQE8z5tu27aR24UyhwshROiQ47ourutyaN/f2Pv3Lew9fJ7Dxzr4/pqv0xt36e4ZoOt8D6mUy7zFa6m5dR0FRVPxlUFvby+maWJZFqZpZr9blkVmIR0OY5qm6XnetDEBlFLllmWNaO29e/eS8xy+7+P7Pm0nPuD4B9soKCxkzTdvoOC6Ms755TglMWZ+bSpzIsWYzhR0XSdQOslkksw7hBAIIdA0LfuZ2cbkvs80TaGUKh8TwPf9UsuykFKGIGpqanLLZVPbffNcvvfQY3heGsjzPDzPy3at3Exqmoau6+i6jmmaGIaB4zg4joNhGKEsZ0xKyZCuGZcCKMnsRIf3QV3XRwBkYmUzK0JAmSsIguz3fK2t6zqapqFp2og6873Hsiw8z5s+JkAqlZqaycDlTKO5gsZTbjynvkwGXNedOiaA67pT8gFMBOJqxDIAqVRqxI+8IYBEIlE4lKoJn4evZiwDkEgkinKfyeZ748aNpuu6pmma2QzkXplKv+yYlBLTNEkmk86CBQus4QDZDDQ2Nl4/f/5817Isp7S0NDv3T6aNZzUfzXzfRwjhK6XmCCHOAoNKKWkACCEKqqurpwkhZEtLC42NjZOledKsuroaTdOU67olwACgCSEGDCGEBdiu6zq+75NMJkNL+v+LJRIJfN8nkUhEgAgQAK5BehzoPT098e7ubj2VSjFnzpxrKjafSSm5cOEC/f39KUAnrVsTgAkUAYU1NTUPx2KxjUEQTLmWYvOZpmnxjo6O3x48eHA76S4UB3qEUgohRBQoGLoyKTJJp+nyR97kmA1IwANSwODQ1auUSmYP9UNjoQBwAIv0DBUMFb6WZpNuRB9wSYsfUEr5kOdfSiGETrr1DUCQhrhWJkj394A0gKeUCjVo3r9Zv0r2P3yyQqPd16MPAAAAAElFTkSuQmCC">
|
8
|
+
<!ENTITY icon_warning "data:image/png;base64,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">
|
9
|
+
<!ENTITY icon_quote "data:image/png;base64,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">
|
10
|
+
<!ENTITY icon_link "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAFVBMVEVmmcwzmcyZzP8AZswAZv////////9E6giVAAAAB3RSTlP///////8AGksDRgAAADhJREFUGFcly0ESAEAEA0Ei6/9P3sEcVB8kmrwFyni0bOeyyDpy9JTLEaOhQq7Ongf5FeMhHS/4AVnsAZubxDVmAAAAAElFTkSuQmCC">
|
11
|
+
]>
|
12
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
13
|
+
<head>
|
14
|
+
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
|
15
|
+
<meta name="generator" content="ERBook 6.0.0"/>
|
16
|
+
|
17
|
+
<title>Inochi 0.0.0</title>
|
18
|
+
|
19
|
+
<meta name="author" content="Suraj N. Kurapati"/>
|
20
|
+
|
21
|
+
<meta name="date" content="19 January 2009"/>
|
22
|
+
|
23
|
+
<link rel="alternate" type="application/rss+xml" href="http://snk.tuxfamily.org/lib/inochi/ann.xml"/>
|
24
|
+
|
25
|
+
<style type="text/css" media="all">
|
26
|
+
<![CDATA[/* general */
|
27
|
+
body
|
28
|
+
{
|
29
|
+
color : #000000;
|
30
|
+
background-color : #FFFFFF;
|
31
|
+
line-height : 1.5em;
|
32
|
+
font-family : Calibri, Verdana, sans-serif;
|
33
|
+
}
|
34
|
+
|
35
|
+
/* emphasis */
|
36
|
+
blockquote
|
37
|
+
{
|
38
|
+
color : #333;
|
39
|
+
font-style : italic;
|
40
|
+
}
|
41
|
+
|
42
|
+
em
|
43
|
+
{
|
44
|
+
font-family : Constantia, "Book Antiqua", "URW Bookman L", serif;
|
45
|
+
font-size : 105%;
|
46
|
+
}
|
47
|
+
|
48
|
+
hr
|
49
|
+
{
|
50
|
+
height : 0;
|
51
|
+
border : 0;
|
52
|
+
border-top : 2px solid #FF0000;
|
53
|
+
}
|
54
|
+
|
55
|
+
/* source code */
|
56
|
+
tt,
|
57
|
+
code,
|
58
|
+
pre
|
59
|
+
{
|
60
|
+
font-family : Monaco, Consolas, "Lucida Console", monospace;
|
61
|
+
font-size : 100%; /* appears like "size: small" otherwise */
|
62
|
+
}
|
63
|
+
|
64
|
+
/* hyperlinks */
|
65
|
+
a > img
|
66
|
+
{
|
67
|
+
border : none;
|
68
|
+
}
|
69
|
+
|
70
|
+
a img
|
71
|
+
{
|
72
|
+
_border : none; /* for IE6 */
|
73
|
+
}
|
74
|
+
|
75
|
+
/* headings */
|
76
|
+
h1,
|
77
|
+
h2,
|
78
|
+
h3,
|
79
|
+
h4,
|
80
|
+
h5,
|
81
|
+
h6,
|
82
|
+
.title
|
83
|
+
{
|
84
|
+
font-weight : lighter;
|
85
|
+
font-family : Constantia, "Book Antiqua", "URW Bookman L", serif;
|
86
|
+
}
|
87
|
+
|
88
|
+
#lof h1,
|
89
|
+
#lof h2,
|
90
|
+
#lof h3,
|
91
|
+
#lof h4,
|
92
|
+
#lof h5,
|
93
|
+
#lof h6
|
94
|
+
{
|
95
|
+
margin-top : 1.25em;
|
96
|
+
}
|
97
|
+
|
98
|
+
#content h1,
|
99
|
+
#content h2,
|
100
|
+
#content h3,
|
101
|
+
#content h4,
|
102
|
+
#content h5,
|
103
|
+
#content h6
|
104
|
+
{
|
105
|
+
margin-top : 2.5em;
|
106
|
+
line-height : 1.25em;
|
107
|
+
}
|
108
|
+
|
109
|
+
#content h1
|
110
|
+
{
|
111
|
+
font-size : 2.0em;
|
112
|
+
}
|
113
|
+
|
114
|
+
#content h2
|
115
|
+
{
|
116
|
+
font-size : 1.8em;
|
117
|
+
}
|
118
|
+
|
119
|
+
#content h3
|
120
|
+
{
|
121
|
+
font-size : 1.6em;
|
122
|
+
}
|
123
|
+
|
124
|
+
#content h4
|
125
|
+
{
|
126
|
+
font-size : 1.4em;
|
127
|
+
}
|
128
|
+
|
129
|
+
#content h5
|
130
|
+
{
|
131
|
+
font-size : 1.2em;
|
132
|
+
}
|
133
|
+
|
134
|
+
#content h6
|
135
|
+
{
|
136
|
+
font-size : 1.0em;
|
137
|
+
}
|
138
|
+
|
139
|
+
/* tables */
|
140
|
+
table
|
141
|
+
{
|
142
|
+
border-collapse : collapse; /* no spacing between cell borders */
|
143
|
+
margin : auto; /* center horizontally */
|
144
|
+
margin-top : 1em;
|
145
|
+
}
|
146
|
+
|
147
|
+
th,
|
148
|
+
td
|
149
|
+
{
|
150
|
+
padding : 1em;
|
151
|
+
border : 1px solid #bbb;
|
152
|
+
vertical-align : top;
|
153
|
+
background-color : #FFFFFF;
|
154
|
+
_background-color : #FFFFFF; /* for IE6 */
|
155
|
+
}
|
156
|
+
|
157
|
+
th
|
158
|
+
{
|
159
|
+
background-color : #F5F5F5;
|
160
|
+
}
|
161
|
+
|
162
|
+
/* document structure */
|
163
|
+
#header
|
164
|
+
{
|
165
|
+
text-align : center;
|
166
|
+
}
|
167
|
+
|
168
|
+
.logo,
|
169
|
+
.header_outside_above,
|
170
|
+
#header,
|
171
|
+
.header_outside_below
|
172
|
+
{
|
173
|
+
margin-bottom : 5em;
|
174
|
+
}
|
175
|
+
|
176
|
+
.footer_outside_above,
|
177
|
+
#footer,
|
178
|
+
.footer_outside_below
|
179
|
+
{
|
180
|
+
margin-top : 5em;
|
181
|
+
}
|
182
|
+
|
183
|
+
#header .header_inside_above,
|
184
|
+
#footer .footer_inside_above
|
185
|
+
{
|
186
|
+
margin-bottom : 4em;
|
187
|
+
}
|
188
|
+
|
189
|
+
#header .header_inside_below,
|
190
|
+
#footer .footer_inside_below
|
191
|
+
{
|
192
|
+
margin-top : 4em;
|
193
|
+
}
|
194
|
+
|
195
|
+
#Abstract
|
196
|
+
{
|
197
|
+
margin-bottom : 5em;
|
198
|
+
}
|
199
|
+
|
200
|
+
#toc li
|
201
|
+
{
|
202
|
+
list-style-type : none;
|
203
|
+
}
|
204
|
+
|
205
|
+
#toc li ul
|
206
|
+
{
|
207
|
+
padding-bottom : 1em;
|
208
|
+
border-left : thick solid #F5F5F5;
|
209
|
+
_border-left : none; /* for IE6 */
|
210
|
+
}
|
211
|
+
|
212
|
+
#toc li ul:hover
|
213
|
+
{
|
214
|
+
border-color : #DCDCDC;
|
215
|
+
}
|
216
|
+
|
217
|
+
#toc > ul
|
218
|
+
{
|
219
|
+
padding-left : 1em;
|
220
|
+
}
|
221
|
+
|
222
|
+
#bib
|
223
|
+
{
|
224
|
+
margin-top : 5em;
|
225
|
+
}
|
226
|
+
|
227
|
+
#footer
|
228
|
+
{
|
229
|
+
border-top : thick dotted #DCDCDC;
|
230
|
+
padding-top : 1em;
|
231
|
+
text-align : center;
|
232
|
+
}
|
233
|
+
|
234
|
+
#footer-credits
|
235
|
+
{
|
236
|
+
margin-top : 2em;
|
237
|
+
margin-bottom : 2em;
|
238
|
+
}
|
239
|
+
|
240
|
+
/* document nodes */
|
241
|
+
.part > .title,
|
242
|
+
.chapter > .title
|
243
|
+
{
|
244
|
+
padding-bottom : 0.5em;
|
245
|
+
}
|
246
|
+
|
247
|
+
.part > .title > big,
|
248
|
+
.chapter > .title > big
|
249
|
+
{
|
250
|
+
display : block;
|
251
|
+
margin-top : 0.25em;
|
252
|
+
}
|
253
|
+
|
254
|
+
.part .title big,
|
255
|
+
.chapter .title big
|
256
|
+
{
|
257
|
+
_display : block; /* for IE6 */
|
258
|
+
_margin-top : 0.25em; /* for IE6 */
|
259
|
+
_margin-bottom : 0.75em; /* for IE6 */
|
260
|
+
}
|
261
|
+
|
262
|
+
.paragraph > .title,
|
263
|
+
.tip > .title,
|
264
|
+
.note > .title,
|
265
|
+
.caution > .title,
|
266
|
+
.warning > .title,
|
267
|
+
.important > .title,
|
268
|
+
.figure > .title,
|
269
|
+
.table > .title,
|
270
|
+
.example > .title,
|
271
|
+
.equation > .title,
|
272
|
+
.procedure > .title
|
273
|
+
{
|
274
|
+
font-size : large;
|
275
|
+
margin-top : 2em;
|
276
|
+
}
|
277
|
+
|
278
|
+
.paragraph .title,
|
279
|
+
.tip .title,
|
280
|
+
.note .title,
|
281
|
+
.caution .title,
|
282
|
+
.warning .title,
|
283
|
+
.important .title,
|
284
|
+
.figure .title,
|
285
|
+
.table .title,
|
286
|
+
.example .title,
|
287
|
+
.equation .title,
|
288
|
+
.procedure .title
|
289
|
+
{
|
290
|
+
_font-size : large; /* for IE6 */
|
291
|
+
_font-weight : bold; /* large is not bold in IE6 */
|
292
|
+
_margin-top : 2em; /* for IE6 */
|
293
|
+
}
|
294
|
+
|
295
|
+
.tip ,
|
296
|
+
.note ,
|
297
|
+
.caution ,
|
298
|
+
.warning ,
|
299
|
+
.important,
|
300
|
+
.figure ,
|
301
|
+
.table ,
|
302
|
+
.example ,
|
303
|
+
.equation ,
|
304
|
+
.procedure
|
305
|
+
{
|
306
|
+
margin : 3em;
|
307
|
+
}
|
308
|
+
|
309
|
+
.tip .nav,
|
310
|
+
.note .nav,
|
311
|
+
.caution .nav,
|
312
|
+
.warning .nav,
|
313
|
+
.important .nav,
|
314
|
+
.figure .nav,
|
315
|
+
.table .nav,
|
316
|
+
.example .nav,
|
317
|
+
.equation .nav,
|
318
|
+
.procedure .nav
|
319
|
+
{
|
320
|
+
margin-left : -7.65em;
|
321
|
+
}
|
322
|
+
|
323
|
+
.tip > .content,
|
324
|
+
.note > .content,
|
325
|
+
.caution > .content,
|
326
|
+
.warning > .content,
|
327
|
+
.important > .content,
|
328
|
+
.figure > .content,
|
329
|
+
.table > .content,
|
330
|
+
.example > .content,
|
331
|
+
.equation > .content,
|
332
|
+
.procedure > .content
|
333
|
+
{
|
334
|
+
min-height : 48px; /* 48px is height of icon */
|
335
|
+
}
|
336
|
+
|
337
|
+
.tip > .content > .icon,
|
338
|
+
.note > .content > .icon,
|
339
|
+
.caution > .content > .icon,
|
340
|
+
.warning > .content > .icon,
|
341
|
+
.important > .content > .icon
|
342
|
+
{
|
343
|
+
float : left;
|
344
|
+
margin : 0 1em 1em 0; /* top right bottom left */
|
345
|
+
}
|
346
|
+
|
347
|
+
.tip .content .icon,
|
348
|
+
.note .content .icon,
|
349
|
+
.caution .content .icon,
|
350
|
+
.warning .content .icon,
|
351
|
+
.important .content .icon
|
352
|
+
{
|
353
|
+
_display : none; /* IE6 cannot display embedded images */
|
354
|
+
}
|
355
|
+
|
356
|
+
.figure > .title
|
357
|
+
{
|
358
|
+
text-align : center;
|
359
|
+
}
|
360
|
+
|
361
|
+
.figure .title
|
362
|
+
{
|
363
|
+
_text-align : center; /* for IE6 */
|
364
|
+
}
|
365
|
+
|
366
|
+
.figure > .content img
|
367
|
+
{
|
368
|
+
display : block;
|
369
|
+
margin : auto;
|
370
|
+
}
|
371
|
+
|
372
|
+
.figure .content img
|
373
|
+
{
|
374
|
+
_display : block; /* for IE6 */
|
375
|
+
_margin : auto; /* for IE6 */
|
376
|
+
}
|
377
|
+
]]>
|
378
|
+
</style>
|
379
|
+
<style type="text/css" media="screen">
|
380
|
+
<![CDATA[/* general */
|
381
|
+
body
|
382
|
+
{
|
383
|
+
margin : 0;
|
384
|
+
padding : 0;
|
385
|
+
padding-left : 10em; /* room for local navigation menus */
|
386
|
+
padding-right : 10em; /* keep #body visually centered */
|
387
|
+
background-color : #808080;
|
388
|
+
}
|
389
|
+
|
390
|
+
/* the actual content of the <body> element */
|
391
|
+
#body
|
392
|
+
{
|
393
|
+
margin : auto;
|
394
|
+
max-width : 38em;
|
395
|
+
|
396
|
+
background-color : #FFFFFF;
|
397
|
+
border-left : 0.35em solid #696969;
|
398
|
+
border-right : 0.35em solid #696969;
|
399
|
+
padding : 2em;
|
400
|
+
}
|
401
|
+
|
402
|
+
/* source code */
|
403
|
+
tt
|
404
|
+
{
|
405
|
+
background-color : #F0F8FF;
|
406
|
+
}
|
407
|
+
|
408
|
+
pre
|
409
|
+
{
|
410
|
+
cursor : text;
|
411
|
+
line-height : normal;
|
412
|
+
border : 1px solid #b1d827;
|
413
|
+
background-color : #F5FFDF;
|
414
|
+
padding : 1em;
|
415
|
+
|
416
|
+
/* fit container to content; no overflow! */
|
417
|
+
display : inline-block;
|
418
|
+
margin : 0;
|
419
|
+
min-width : 92.5%;
|
420
|
+
}
|
421
|
+
|
422
|
+
/* output of the syntax coloring library */
|
423
|
+
pre.code
|
424
|
+
{
|
425
|
+
background-color : #FFFFE8;
|
426
|
+
border-color : #EEDD88;
|
427
|
+
}
|
428
|
+
|
429
|
+
/* hyperlinks */
|
430
|
+
a
|
431
|
+
{
|
432
|
+
text-decoration : none;
|
433
|
+
}
|
434
|
+
|
435
|
+
a:hover
|
436
|
+
{
|
437
|
+
text-decoration : underline;
|
438
|
+
}
|
439
|
+
|
440
|
+
a:link
|
441
|
+
{
|
442
|
+
color : #0038E1; /* maximum saturation of RoyalBlue */
|
443
|
+
}
|
444
|
+
|
445
|
+
a:visited
|
446
|
+
{
|
447
|
+
color : #800080;
|
448
|
+
}
|
449
|
+
|
450
|
+
#toc a:target:after,
|
451
|
+
#lof a:target:after,
|
452
|
+
#nav a:target:after
|
453
|
+
{
|
454
|
+
content : "★"; /* ★ */
|
455
|
+
color : #FF0000;
|
456
|
+
font-size : x-large;
|
457
|
+
padding-left : 0.125em;
|
458
|
+
}
|
459
|
+
|
460
|
+
/* document structure */
|
461
|
+
/* mini navigation menu beside every block node */
|
462
|
+
.nav
|
463
|
+
{
|
464
|
+
width : 4em;
|
465
|
+
float : left; /* detach from main content */
|
466
|
+
margin-left : -6.075em;
|
467
|
+
|
468
|
+
font-size : 1.9em;
|
469
|
+
letter-spacing : 0.25em;
|
470
|
+
text-align : center;
|
471
|
+
|
472
|
+
color : #696969; /* same colors to hide non-links */
|
473
|
+
background-color : #696969;
|
474
|
+
padding : 0.5em;
|
475
|
+
margin-top : -0.5em;
|
476
|
+
}
|
477
|
+
|
478
|
+
.nav:target,
|
479
|
+
.nav:hover
|
480
|
+
{
|
481
|
+
color : #333; /* same colors to hide non-links */
|
482
|
+
background-color : #333;
|
483
|
+
}
|
484
|
+
|
485
|
+
.nav a:link,
|
486
|
+
.nav a:visited
|
487
|
+
{
|
488
|
+
color : #D3D3D3;
|
489
|
+
}
|
490
|
+
|
491
|
+
.nav a:hover,
|
492
|
+
#nav a:target:after {
|
493
|
+
color : #9ACD32;
|
494
|
+
text-decoration : none;
|
495
|
+
}
|
496
|
+
|
497
|
+
/* global navigation menu at the top of the page */
|
498
|
+
#nav
|
499
|
+
{
|
500
|
+
font-size : 1em;
|
501
|
+
letter-spacing : 0;
|
502
|
+
width : 8.5em;
|
503
|
+
margin-left : -11.5em;
|
504
|
+
}
|
505
|
+
|
506
|
+
#nav li
|
507
|
+
{
|
508
|
+
list-style-type : none;
|
509
|
+
}
|
510
|
+
]]>
|
511
|
+
</style>
|
512
|
+
<style type="text/css" media="print">
|
513
|
+
<![CDATA[/* source code */
|
514
|
+
tt
|
515
|
+
{
|
516
|
+
font-weight : normal;
|
517
|
+
}
|
518
|
+
|
519
|
+
pre
|
520
|
+
{
|
521
|
+
border : none;
|
522
|
+
}
|
523
|
+
|
524
|
+
/* headings */
|
525
|
+
h1,
|
526
|
+
h2,
|
527
|
+
h3,
|
528
|
+
h4,
|
529
|
+
h5,
|
530
|
+
h6
|
531
|
+
{
|
532
|
+
font-weight : normal;
|
533
|
+
clear : both;
|
534
|
+
}
|
535
|
+
|
536
|
+
/* hyperlinks */
|
537
|
+
/* blend all hyperlinks with normal text */
|
538
|
+
a:link,
|
539
|
+
a:visited
|
540
|
+
{
|
541
|
+
color : #000000;
|
542
|
+
text-decoration : none;
|
543
|
+
}
|
544
|
+
|
545
|
+
/* emphasize external and cross-reference hyperlinks */
|
546
|
+
a[href]:not([href^="#"]):link,
|
547
|
+
a[href]:not([href^="#"]):visited,
|
548
|
+
a.xref[title]:link,
|
549
|
+
a.xref[title]:visited
|
550
|
+
{
|
551
|
+
color : #0000FF;
|
552
|
+
text-decoration : underline;
|
553
|
+
font-weight : bolder;
|
554
|
+
}
|
555
|
+
|
556
|
+
/* show URL of destination for external hyperlinks */
|
557
|
+
a[href]:not([href^="#"]):after
|
558
|
+
{
|
559
|
+
content : " " attr(href);
|
560
|
+
font-family : Monaco, Consolas, "Lucida Console", monospace;
|
561
|
+
}
|
562
|
+
|
563
|
+
/* show name of destination for cross-references */
|
564
|
+
a.xref[title]:after
|
565
|
+
{
|
566
|
+
content : " " attr(title);
|
567
|
+
}
|
568
|
+
|
569
|
+
a:after
|
570
|
+
{
|
571
|
+
font-weight : normal;
|
572
|
+
font-size : smaller;
|
573
|
+
}
|
574
|
+
|
575
|
+
/* document structure */
|
576
|
+
#nav,
|
577
|
+
.nav,
|
578
|
+
#lof
|
579
|
+
{
|
580
|
+
display : none;
|
581
|
+
}
|
582
|
+
|
583
|
+
#toc,
|
584
|
+
.part,
|
585
|
+
.chapter,
|
586
|
+
#bib
|
587
|
+
{
|
588
|
+
page-break-before : always;
|
589
|
+
}
|
590
|
+
|
591
|
+
/* document nodes */
|
592
|
+
.part > .title > big,
|
593
|
+
.chapter > .title > big
|
594
|
+
{
|
595
|
+
padding-bottom : 0.5em;
|
596
|
+
}
|
597
|
+
|
598
|
+
.part .title big,
|
599
|
+
.chapter .title big
|
600
|
+
{
|
601
|
+
_padding-bottom : 0.5em; /* for IE6 */
|
602
|
+
}
|
603
|
+
]]>
|
604
|
+
</style>
|
605
|
+
|
606
|
+
<style type="text/css" media="screen">
|
607
|
+
<![CDATA[
|
608
|
+
/* decorate external hyperlinks with a visual indicator */
|
609
|
+
a[href]:not([href^="#"])
|
610
|
+
{
|
611
|
+
background : url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAFVBMVEVmmcwzmcyZzP8AZswAZv////////9E6giVAAAAB3RSTlP///////8AGksDRgAAADhJREFUGFcly0ESAEAEA0Ei6/9P3sEcVB8kmrwFyni0bOeyyDpy9JTLEaOhQq7Ongf5FeMhHS/4AVnsAZubxDVmAAAAAElFTkSuQmCC");
|
612
|
+
background-position : center right;
|
613
|
+
background-repeat : no-repeat;
|
614
|
+
padding-right : 13px;
|
615
|
+
}
|
616
|
+
|
617
|
+
/* display icon for blockquote elements */
|
618
|
+
blockquote
|
619
|
+
{
|
620
|
+
background-image : url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAmCAYAAACCjRgBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPrQAAD60BqVrh5AAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAW+SURBVFiFvVldaBRXFP7u3PnZtbtxW0wtCSlKfCmIWHzIW0MfBKUQoeKDgb5EKYjWPhQpoy0UweyLICSQErAompdoKtg8SKUbsKT5EcW8SNS1SmxCJN2mTZf9m7kzpw87s93d7M9kNusHh71z7517vu/ec8+dmWVEBD/QdX0rY+wM5/yUEGKrr0G8gxRFmTBN83w0Gv21uIH5FXD27Nlvd+7c+c3hw4fVlpaW2t49+KjVx7IsxONxunHjRsqyrHej0WjGbZM2wLkEsiyfOnTokBqJRGBZVk2zbbtqmxACQoiq9UIIAMCePXtYe3s7B/BpCQ+/AoQQ77S0tBSc10Lx7Pota5qGHTt2SK9evWotHtu3AABgjNUNj0pk/IpgjK0bvyEBtbAZs15ergTfe6AW3hR5oAkCmkG+lpBNFfCmyQObuAfqEWiWiBIBuq6/zRj7XFGUYwCCtQjLsiwPDg7W6lITnZ2d2LdvH9xDcFNWQFXVHzo7Oz85cOCAGgzW5N8QDMPA7OwsxsbG0NfX19AmLgjQdb2VMdZz9OhRLklS3cOpGqo5La7XNA0HDx7EgwcPsLS0hLa2tprkvYZQu6qqlqIoPJPJeFJfjaQXIqqqYteuXVhbW0NbW5uneytxKgkhSfKXlPxsWiIq+NuI8HI0lIU2kkHqEXrjadRPeiwn42Pm1z0MbVhAM3O8lwkwDEP1JWAzwsVLhqrX3zAMlTEmE5HwLKDRcKlFyms/xpj7siMDUADUF7CZ4VKpjjGGYDCIUCiEZDJZaA+HwyXP/owxSJKEZ8+eSaurq08AcLetooDinNvMZxzbtrGysoLdu3cjHA4jmUxCkiQEAgHMz88X+gohMD09bSYSiT9GR0enAJg1BTRCbCN9hRD2xMTEQjwe7zh58qQcCoVgmiZyuRyuXbtG6XQ6RkQSEYmVlZV7d+/e/QmAUVdAM8KlvAwAjDFjeXl5yDCMD4eHh4/09fUp4XAYhmEAAAYGBr5EPt4JQBZACsAqEdnuGFWP3mrEvJS93geANE3LDgwM6M+fPx/p7+83nz59SrIsQ9M04/jx4x8B+LvI/iQio5hnRQGNEqt0X7WxAoFAFkDy0qVLXy0vL/eMjIzMXblyxYxEItr27dvP7927NwfgL0eAxcre7KsK8EvMq/iyawYAly9fnrlw4cLHjx496k0kEnHLslr3799/GvkQ4q4xxrgrpGYIbWa4lIWOCyaEUJCPcwX5PSkPDQ3FLl682JVKpY5JktTT29v7vsPVNQZAYoyxgoBsNsuJiDVCbAPECzAMQ3PIsyJyLJfLYXBw8MebN292c85V/P8cxIrK+RVgjEmpVEotPmCaES7lICJYliUhHxo2AMv5LdiLFy+M69ev/458GJUYEZGbRuXXr1+vbdu2jQshoGkahBAlBEzTLFwrirLuq1w9ssXgnIMxhoWFBZ7JZFadahv5/L6OqNPm/toAbNefG0J8fHx8hYim79y5Y6XTaUiSBM45JEnCli1bIMsyiAiBQAChUAicc8iyXDBFUTybbduYnJy0M5nM2vj4+H1n5i1HQLm5B5dJRIKI7OLJKjnIZmdnv06n01/MzMz0EJHqzCzXdR2cc6iqimAwiFu3bpkPHz7kzqz4gZ3NZicfP378vWEYaQA5ABmHrAvysqqMiMAYUwG85VgQgOqSO3fu3G+6rkc0TQPnHLFYzIrFYvGRkZHPFhcX0z7IE/Kb1kb+dE079m/xCesV7gq4S+VeCwB2V1dXq23boWAwCMuyMDY2Zs7Nzb28ffv2kcXFxWTFEb37dWPeAJD1Q74ggIiIMZZDPj1ZTr3V3d3d39HRgaWlJbp69aqdTCZHp6amvpufn/+nAfKuX0J+ojJElPU7UMlfTM7ppgKQT5w48UEkErkvSRID8EsikTgzPDz8pEHiLty0aRCRvw9QDqr+R6br+s+c8/csyzodjUbvNeKkmfgPodOV0Gw2CGgAAAAASUVORK5CYII=");
|
621
|
+
background-repeat : no-repeat;
|
622
|
+
margin-left : 0;
|
623
|
+
padding-left : 65px;
|
624
|
+
min-height : 50px;
|
625
|
+
}
|
626
|
+
]]>
|
627
|
+
</style>
|
628
|
+
</head>
|
629
|
+
<body>
|
630
|
+
<div id="body">
|
631
|
+
<ul id="nav" class="nav">
|
632
|
+
<li><a id="rev:Contents" href="#Contents">Contents</a></li>
|
633
|
+
<li><a id="rev:Tips" href="#Tips">Tips</a></li>
|
634
|
+
</ul>
|
635
|
+
|
636
|
+
<br style="display: none"/>
|
637
|
+
<hr style="display: none"/>
|
638
|
+
<br style="display: none"/>
|
639
|
+
|
640
|
+
|
641
|
+
<div id="header">
|
642
|
+
|
643
|
+
<div class="logo"><img src='inochi.png' alt='project logo' /></div>
|
644
|
+
|
645
|
+
<h1 class="title">Inochi 0.0.0</h1>
|
646
|
+
|
647
|
+
<h2 class="subtitle">Gives life to RubyGems-based software</h2>
|
648
|
+
|
649
|
+
<h3 class="authors"><a href="mailto:sunaku@gmail.com">Suraj N. Kurapati</a></h3>
|
650
|
+
|
651
|
+
<h3 class="date">19 January 2009</h3>
|
652
|
+
|
653
|
+
</div>
|
654
|
+
|
655
|
+
|
656
|
+
|
657
|
+
|
658
|
+
<br style="display: none"/>
|
659
|
+
<hr style="display: none"/>
|
660
|
+
<br style="display: none"/>
|
661
|
+
|
662
|
+
<div id="toc">
|
663
|
+
<a name="Contents"/><div class="nav" id="Contents"><a title="Reverse jump to listing" href="#rev:Contents">≡</a>△▽<a title="Jump to this segment" href="#Contents">◎</a></div>
|
664
|
+
<h1 class="title">Contents</h1>
|
665
|
+
<ul>
|
666
|
+
<li>1 <a id="rev:Introduction" href="#Introduction">Introduction</a><ul><li><a id="rev:Etymology" href="#Etymology">Etymology</a></li><li>1.1 <a id="rev:Logistics" href="#Logistics">Logistics</a><ul><li><a id="rev:Version-numbers" href="#Version-numbers">Version numbers</a></li></ul></li><li>1.2 <a id="rev:License" href="#License">License</a></li><li>1.3 <a id="rev:Credits" href="#Credits">Credits</a></li></ul></li><li>2 <a id="rev:Setup" href="#Setup">Setup</a><ul><li>2.1 <a id="rev:Requirements" href="#Requirements">Requirements</a></li><li>2.2 <a id="rev:Installation" href="#Installation">Installation</a></li><li>2.3 <a id="rev:Manifest" href="#Manifest">Manifest</a></li></ul></li><li>3 <a id="rev:Usage" href="#Usage">Usage</a><ul><li>3.1 <a id="rev:Command-line-interface" href="#Command-line-interface">Command-line interface</a></li><li>3.2 <a id="rev:Ruby-library-interface" href="#Ruby-library-interface">Ruby library interface</a></li><li>3.3 <a id="rev:Tutorial" href="#Tutorial">Tutorial</a><ul><li>3.3.1 <a id="rev:Have-a-brilliant-idea" href="#Have-a-brilliant-idea">Have a brilliant idea</a></li><li>3.3.2 <a id="rev:Generate-your-project" href="#Generate-your-project">Generate your project</a></li><li>3.3.3 <a id="rev:Configure-your-project" href="#Configure-your-project">Configure your project</a><ul><li>3.3.3.1 <a id="rev:Project-information" href="#Project-information">Project information</a></li><li>3.3.3.2 <a id="rev:Project-executable" href="#Project-executable">Project executable</a></li><li>3.3.3.3 <a id="rev:Rake-tasks" href="#Rake-tasks">Rake tasks</a></li><li>3.3.3.4 <a id="rev:User-manual" href="#User-manual">User manual</a><ul><li><a id="rev:doc-index.erb" href="#doc-index.erb"><tt>doc/index.erb</tt></a></li><li><a id="rev:doc-intro.erb" href="#doc-intro.erb"><tt>doc/intro.erb</tt></a></li><li><a id="rev:doc-setup.erb" href="#doc-setup.erb"><tt>doc/setup.erb</tt></a></li><li><a id="rev:doc-theory.erb" href="#doc-theory.erb"><tt>doc/theory.erb</tt></a></li><li><a id="rev:doc-usage.erb" href="#doc-usage.erb"><tt>doc/usage.erb</tt></a></li><li><a id="rev:doc-history.erb" href="#doc-history.erb"><tt>doc/history.erb</tt></a></li></ul></li></ul></li><li>3.3.4 <a id="rev:Implement-your-project" href="#Implement-your-project">Implement your project</a><ul><li><a id="rev:Goodbye-LOAD_PATH-hello-require" href="#Goodbye-LOAD_PATH-hello-require">Goodbye <code class="code"><span style="color:#d70;font-weight:bold">$LOAD_PATH</span></code>, hello <code class="code">require()</code></a></li></ul></li><li>3.3.5 <a id="rev:Test-your-project" href="#Test-your-project">Test your project</a></li><li>3.3.6 <a id="rev:Publish-your-project" href="#Publish-your-project">Publish your project</a><ul><li>3.3.6.1 <a id="rev:Build-a-RubyGem" href="#Build-a-RubyGem">Build a RubyGem</a></li><li>3.3.6.2 <a id="rev:Publish-a-RubyGem" href="#Publish-a-RubyGem">Publish a RubyGem</a></li><li>3.3.6.3 <a id="rev:Announce-a-release" href="#Announce-a-release">Announce a release</a><ul><li><a id="rev:Login-information" href="#Login-information">Login information</a></li><li>3.3.6.3.1 <a id="rev:Manual-release-announcement" href="#Manual-release-announcement">Manual release announcement</a></li></ul></li><li>3.3.6.4 <a id="rev:Publish-the-documentation" href="#Publish-the-documentation">Publish the documentation</a></li></ul></li></ul></li></ul></li><li>4 <a id="rev:history" href="#history">History</a><ul><li>4.1 <a id="rev:Version-0.0.1-2009-01-13" href="#Version-0.0.1-2009-01-13">Version 0.0.1 (2009-01-13)</a></li></ul></li>
|
667
|
+
|
668
|
+
</ul>
|
669
|
+
</div>
|
670
|
+
|
671
|
+
<div id="lof"><a name="Tips"/><div class="nav" id="Tips"><a title="Reverse jump to listing" href="#rev:Tips">≡</a>△▽<a title="Jump to this segment" href="#Tips">◎</a></div><h2 class="title">Tips</h2> <ol><li><a id="rev:Merging-files-with-kdiff3" href="#Merging-files-with-kdiff3">Merging files with <strong>kdiff3</strong></a></li></ol></div>
|
672
|
+
|
673
|
+
<br style="display: none"/>
|
674
|
+
<hr style="display: none"/>
|
675
|
+
<br style="display: none"/>
|
676
|
+
|
677
|
+
<div id="content">
|
678
|
+
<div class="chapter">
|
679
|
+
<a name="Introduction"/><div class="nav" id="Introduction"><a title="Reverse jump to listing" href="#rev:Introduction">≡</a>△<a title="Jump to next segment" href="#Etymology">▽</a><a title="Jump to this segment" href="#Introduction">◎</a></div>
|
680
|
+
<h1 class="title">
|
681
|
+
Chapter 1
|
682
|
+
<br/>
|
683
|
+
<big>Introduction</big>
|
684
|
+
</h1>
|
685
|
+
<div class="content"><p><p><strong>Inochi</strong> is an infrastructure for <a href='http://www.rubygems.org'>RubyGems</a>-based software projects that encourages good documentation, reduces programming effort, and automates common tasks.</p> <strong>Inochi</strong> is exciting because:</p>
|
686
|
+
|
687
|
+
<ul>
|
688
|
+
<li>
|
689
|
+
<p>It encourages good documentation:</p>
|
690
|
+
|
691
|
+
<ul>
|
692
|
+
<li>Provides a comprehensive user manual that integrates release notes, setup and usage instructions, and more.</li>
|
693
|
+
|
694
|
+
<li>Automates the display of help, version, and usage information for your project’s main executable.</li>
|
695
|
+
</ul>
|
696
|
+
</li>
|
697
|
+
|
698
|
+
<li>
|
699
|
+
<p>It reduces programming effort:</p>
|
700
|
+
|
701
|
+
<ul>
|
702
|
+
<li>Provides a single point of entry to your project’s libraries.</li>
|
703
|
+
|
704
|
+
<li>Keeps your project’s configuration in one place.</li>
|
705
|
+
|
706
|
+
<li>Parses command-line options using <a href='http://trollop.rubyforge.org'>the Trollop library</a>.</li>
|
707
|
+
</ul>
|
708
|
+
</li>
|
709
|
+
|
710
|
+
<li>
|
711
|
+
<p>It automates common tasks:</p>
|
712
|
+
|
713
|
+
<ul>
|
714
|
+
<li>Generates project scaffolds while merging changes from previous ones.</li>
|
715
|
+
|
716
|
+
<li>Provides Rake tasks for packaging, publishing, and announcing your project.</li>
|
717
|
+
</ul>
|
718
|
+
</li>
|
719
|
+
</ul>
|
720
|
+
|
721
|
+
<p>These features distinguish <strong>Inochi</strong> from the competition:</p>
|
722
|
+
|
723
|
+
<ul>
|
724
|
+
<li><a href='http://seattlerb.rubyforge.org/hoe/'>hoe</a></li>
|
725
|
+
|
726
|
+
<li><a href='http://newgem.rubyforge.org'>newgem</a></li>
|
727
|
+
|
728
|
+
<li><a href='http://codeforpeople.rubyforge.org/bones/'>Mr Bones</a></li>
|
729
|
+
</ul>
|
730
|
+
<!--
|
731
|
+
Say goodbye to the days of manually requiring libraries:
|
732
|
+
|
733
|
+
require File.join(File.dirname(__FILE__), 'project', 'library')
|
734
|
+
|
735
|
+
With **Inochi** you can require any library in your project:
|
736
|
+
|
737
|
+
require 'project/library'
|
738
|
+
-->
|
739
|
+
<p><div class="paragraph">
|
740
|
+
<a name="Etymology"/><div class="nav" id="Etymology"><a title="Reverse jump to listing" href="#rev:Etymology">≡</a><a title="Jump to previous segment" href="#Introduction">△</a><a title="Jump to next segment" href="#Logistics">▽</a><a title="Jump to this segment" href="#Etymology">◎</a></div>
|
741
|
+
<p class="title">Etymology</p>
|
742
|
+
<div class="content"><p>In the past, software development was thought to be like mathematical modeling or building construction: the assembly of inanimate objects. Nowadays, it is thought to be more like gardening: the cultivation of life!</p>
|
743
|
+
|
744
|
+
<p>In this manner, I consider this project not as a generator of skeletons or as a builder of scaffolds, but as a <em>giver of life</em>. That is why I named this project “inochi”, the Japanese word for <em>life</em>.</p>
|
745
|
+
|
746
|
+
<p>Happy gardening!</p></div>
|
747
|
+
</div> <div class="section">
|
748
|
+
<a name="Logistics"/><div class="nav" id="Logistics"><a title="Reverse jump to listing" href="#rev:Logistics">≡</a><a title="Jump to previous segment" href="#Etymology">△</a><a title="Jump to next segment" href="#Version-numbers">▽</a><a title="Jump to this segment" href="#Logistics">◎</a></div>
|
749
|
+
<h2 class="title">
|
750
|
+
1.1 Logistics
|
751
|
+
</h2>
|
752
|
+
<div class="content"><ul>
|
753
|
+
<li><a class="xref" href="#history" title="Chapter 4. History">Release notes</a> — history of project releases.</li>
|
754
|
+
|
755
|
+
<li><a href='http://github.com/sunaku/inochi'>Source code</a> — obtain via <a href='http://git.or.cz'>Git</a> or browse online.</li>
|
756
|
+
|
757
|
+
<li><a href='api/index.html'>API reference</a> — documentation for source code.</li>
|
758
|
+
|
759
|
+
<li><a href='http://snk.tuxfamily.org/lib/inochi'>Project home</a> — the <strong>Inochi</strong> project home page.</li>
|
760
|
+
</ul>
|
761
|
+
|
762
|
+
<p>To get help or provide feedback, simply <a class="xref" href="#License" title="Section 1.2. License">contact the author(s)</a>.</p>
|
763
|
+
|
764
|
+
<p><div class="paragraph">
|
765
|
+
<a name="Version-numbers"/><div class="nav" id="Version-numbers"><a title="Reverse jump to listing" href="#rev:Version-numbers">≡</a><a title="Jump to previous segment" href="#Logistics">△</a><a title="Jump to next segment" href="#License">▽</a><a title="Jump to this segment" href="#Version-numbers">◎</a></div>
|
766
|
+
<p class="title">Version numbers</p>
|
767
|
+
<div class="content"><p><strong>Inochi</strong> releases are numbered in <em>major.minor.patch</em> form according to the <a href='http://www.rubygems.org/read/chapter/7'>RubyGems rational versioning policy</a>, which can be summarized thus:</p>
|
768
|
+
<table border="1">
|
769
|
+
<thead>
|
770
|
+
<tr>
|
771
|
+
<td rowspan='2'>What increased in the version number?</td>
|
772
|
+
<td colspan='3'>The increase indicates that the release:</td>
|
773
|
+
</tr>
|
774
|
+
<tr>
|
775
|
+
<th>Is backward compatible?</th>
|
776
|
+
<th>Has new features?</th>
|
777
|
+
<th>Has bug fixes?</th>
|
778
|
+
</tr>
|
779
|
+
</thead>
|
780
|
+
<tbody>
|
781
|
+
<tr>
|
782
|
+
<th>major</th>
|
783
|
+
<td style='background-color: #FFE4E1;'>No</td>
|
784
|
+
<td>Yes</td>
|
785
|
+
<td>Yes</td>
|
786
|
+
</tr>
|
787
|
+
<tr>
|
788
|
+
<th>minor</th>
|
789
|
+
<td>Yes</td>
|
790
|
+
<td>Yes</td>
|
791
|
+
<td>Yes</td>
|
792
|
+
</tr>
|
793
|
+
<tr>
|
794
|
+
<th>patch</th>
|
795
|
+
<td>Yes</td>
|
796
|
+
<td style='background-color: #FFE4E1;'>No</td>
|
797
|
+
<td>Yes</td>
|
798
|
+
</tr>
|
799
|
+
</tbody>
|
800
|
+
</table></div>
|
801
|
+
</div></p></div>
|
802
|
+
</div> <div class="section">
|
803
|
+
<a name="License"/><div class="nav" id="License"><a title="Reverse jump to listing" href="#rev:License">≡</a><a title="Jump to previous segment" href="#Version-numbers">△</a><a title="Jump to next segment" href="#Credits">▽</a><a title="Jump to this segment" href="#License">◎</a></div>
|
804
|
+
<h2 class="title">
|
805
|
+
1.2 License
|
806
|
+
</h2>
|
807
|
+
<div class="content"><p>Copyright 2008 Suraj N. Kurapati <a href='mailto:sunaku@gmail.com'>sunaku@gmail.com</a></p>
|
808
|
+
|
809
|
+
<p>Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.</p>
|
810
|
+
|
811
|
+
<p>THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</p></div>
|
812
|
+
</div> <div class="section">
|
813
|
+
<a name="Credits"/><div class="nav" id="Credits"><a title="Reverse jump to listing" href="#rev:Credits">≡</a><a title="Jump to previous segment" href="#License">△</a><a title="Jump to next segment" href="#Setup">▽</a><a title="Jump to this segment" href="#Credits">◎</a></div>
|
814
|
+
<h2 class="title">
|
815
|
+
1.3 Credits
|
816
|
+
</h2>
|
817
|
+
<div class="content"><img src='inochi.png' alt='project logo' />
|
818
|
+
<p>The “inochi.png” image and its “inochi.svg” source utilize the <a href='http://openclipart.org/media/files/Peileppe/8978'>“3 flowers”</a> graphic, which was created and released into the public domain by <a href='http://openclipart.org/media/people/Peileppe'>Peileppe Production</a> on June 25, 2008.</p></div>
|
819
|
+
</div></p></div>
|
820
|
+
</div>
|
821
|
+
<div class="chapter">
|
822
|
+
<a name="Setup"/><div class="nav" id="Setup"><a title="Reverse jump to listing" href="#rev:Setup">≡</a><a title="Jump to previous segment" href="#Credits">△</a><a title="Jump to next segment" href="#Requirements">▽</a><a title="Jump to this segment" href="#Setup">◎</a></div>
|
823
|
+
<h1 class="title">
|
824
|
+
Chapter 2
|
825
|
+
<br/>
|
826
|
+
<big>Setup</big>
|
827
|
+
</h1>
|
828
|
+
<div class="content"><p><div class="section">
|
829
|
+
<a name="Requirements"/><div class="nav" id="Requirements"><a title="Reverse jump to listing" href="#rev:Requirements">≡</a><a title="Jump to previous segment" href="#Setup">△</a><a title="Jump to next segment" href="#Installation">▽</a><a title="Jump to this segment" href="#Requirements">◎</a></div>
|
830
|
+
<h2 class="title">
|
831
|
+
2.1 Requirements
|
832
|
+
</h2>
|
833
|
+
<div class="content"><p>Your system needs the following software to run <strong>Inochi</strong>.</p>
|
834
|
+
<table border="1"><thead><tr><th>Software</th><th>Description</th><th>Notes</th></tr></thead><tbody><tr><td style='text-align: left;'><a href='http://ruby-lang.org'>Ruby</a></td><td style='text-align: left;'>Ruby language interpreter</td><td style='text-align: left;'>Version 1.8.6 or 1.8.7 is required.</td>
|
835
|
+
</tr><tr><td style='text-align: left;'><a href='http://rubygems.org'>RubyGems</a></td><td style='text-align: left;'>Ruby packaging system</td><td style='text-align: left;'>Version 1.0.0 or newer is required.</td>
|
836
|
+
</tr><tr><td style='text-align: left;'><a href='http://lynx.isc.org'>Lynx</a></td><td style='text-align: left;'>Text-mode web browser</td><td style='text-align: left;'>Version 2.8.6 or newer is required to convert HTML into plain text.</td>
|
837
|
+
</tr></tbody></table></div>
|
838
|
+
</div> <div class="section">
|
839
|
+
<a name="Installation"/><div class="nav" id="Installation"><a title="Reverse jump to listing" href="#rev:Installation">≡</a><a title="Jump to previous segment" href="#Requirements">△</a><a title="Jump to next segment" href="#Manifest">▽</a><a title="Jump to this segment" href="#Installation">◎</a></div>
|
840
|
+
<h2 class="title">
|
841
|
+
2.2 Installation
|
842
|
+
</h2>
|
843
|
+
<div class="content"><p>You can install <strong>Inochi</strong> by running this command:</p>
|
844
|
+
|
845
|
+
<pre>gem install inochi</pre>
|
846
|
+
|
847
|
+
<p>To check whether the installation was sucessful, run this command:</p>
|
848
|
+
|
849
|
+
<pre>inochi --version</pre>
|
850
|
+
|
851
|
+
<p>If the installation was successful, you will see output like this:</p>
|
852
|
+
|
853
|
+
<p><pre>project: Inochi
|
854
|
+
version: 0.0.0
|
855
|
+
release: 2009-01-19
|
856
|
+
website: http://snk.tuxfamily.org/lib/inochi
|
857
|
+
install: /home/sun/src/inochi</pre></p>
|
858
|
+
|
859
|
+
<p>If you do not see such output, you may <a class="xref" href="#License" title="Section 1.2. License">ask the author(s)</a> for help.</p></div>
|
860
|
+
</div> <div class="section">
|
861
|
+
<a name="Manifest"/><div class="nav" id="Manifest"><a title="Reverse jump to listing" href="#rev:Manifest">≡</a><a title="Jump to previous segment" href="#Installation">△</a><a title="Jump to next segment" href="#Usage">▽</a><a title="Jump to this segment" href="#Manifest">◎</a></div>
|
862
|
+
<h2 class="title">
|
863
|
+
2.3 Manifest
|
864
|
+
</h2>
|
865
|
+
<div class="content"><p>You will see the following items inside <strong>Inochi</strong>’s installation directory, whose path you can determine by running this command:</p>
|
866
|
+
|
867
|
+
<pre>inochi --version</pre>
|
868
|
+
|
869
|
+
<ul>
|
870
|
+
<li>
|
871
|
+
<p><tt>bin/</tt></p>
|
872
|
+
|
873
|
+
<ul>
|
874
|
+
<li><tt>inochi</tt> — the main <strong>Inochi</strong> executable.</li>
|
875
|
+
</ul>
|
876
|
+
</li>
|
877
|
+
|
878
|
+
<li>
|
879
|
+
<p><tt>lib/</tt></p>
|
880
|
+
|
881
|
+
<ul>
|
882
|
+
<li><tt>inochi.rb</tt> — the main <strong>Inochi</strong> library.</li>
|
883
|
+
</ul>
|
884
|
+
</li>
|
885
|
+
|
886
|
+
<li>
|
887
|
+
<p><tt>doc/</tt></p>
|
888
|
+
|
889
|
+
<ul>
|
890
|
+
<li>
|
891
|
+
<p><tt>api/</tt> — API reference documentation.</p>
|
892
|
+
</li>
|
893
|
+
|
894
|
+
<li>
|
895
|
+
<p><tt>index.erb</tt> — source of this user manual.</p>
|
896
|
+
</li>
|
897
|
+
</ul>
|
898
|
+
</li>
|
899
|
+
|
900
|
+
<li>
|
901
|
+
<p><tt>LICENSE</tt> — copyright notice and legal conditions.</p>
|
902
|
+
</li>
|
903
|
+
</ul></div>
|
904
|
+
</div></p></div>
|
905
|
+
</div><div class="part">
|
906
|
+
<a name="Usage"/><div class="nav" id="Usage"><a title="Reverse jump to listing" href="#rev:Usage">≡</a><a title="Jump to previous segment" href="#Manifest">△</a><a title="Jump to next segment" href="#Command-line-interface">▽</a><a title="Jump to this segment" href="#Usage">◎</a></div>
|
907
|
+
<h1 class="title">
|
908
|
+
Part 3
|
909
|
+
<br/>
|
910
|
+
<big>Usage</big>
|
911
|
+
</h1>
|
912
|
+
<div class="content"><p><div class="section">
|
913
|
+
<a name="Command-line-interface"/><div class="nav" id="Command-line-interface"><a title="Reverse jump to listing" href="#rev:Command-line-interface">≡</a><a title="Jump to previous segment" href="#Usage">△</a><a title="Jump to next segment" href="#Merging-files-with-kdiff3">▽</a><a title="Jump to this segment" href="#Command-line-interface">◎</a></div>
|
914
|
+
<h2 class="title">
|
915
|
+
3.1 Command-line interface
|
916
|
+
</h2>
|
917
|
+
<div class="content"><p>When you run this command:</p>
|
918
|
+
|
919
|
+
<pre>inochi --help</pre>
|
920
|
+
|
921
|
+
<p>You will see this output:</p>
|
922
|
+
|
923
|
+
<p><pre>Inochi - Gives life to RubyGems-based software
|
924
|
+
|
925
|
+
Progress indicators:
|
926
|
+
|
927
|
+
create: A file is being created because it does not exist.
|
928
|
+
|
929
|
+
skip: A file is being skipped because it is already up to date.
|
930
|
+
|
931
|
+
update: A file will be updated because it is out of date. A text
|
932
|
+
merging tool (see the "--merger" option) will be launched to
|
933
|
+
transfer content from the old file (*.old) and the new file
|
934
|
+
(*.new) to the out of date file. If a text merging tool is
|
935
|
+
not specified, then you will have to do the merging by hand.
|
936
|
+
|
937
|
+
Usage:
|
938
|
+
|
939
|
+
inochi [Option...] ModuleName
|
940
|
+
|
941
|
+
--merger, -m <s>: A command that invokes a text merging tool with three
|
942
|
+
arguments: (1) old file, (2) new file, (3) output file.
|
943
|
+
The command should write the result of merging the old
|
944
|
+
file and the new file to the output file. The command
|
945
|
+
may only modify the output file; it must NOT modify the
|
946
|
+
old file or the new file.
|
947
|
+
--manual, -a: Show the user manual
|
948
|
+
--version, -v: Print version and exit
|
949
|
+
--help, -h: Show this message</pre></p>
|
950
|
+
|
951
|
+
<p><div class="tip">
|
952
|
+
<a name="Merging-files-with-kdiff3"/><div class="nav" id="Merging-files-with-kdiff3"><a title="Reverse jump to listing" href="#rev:Merging-files-with-kdiff3">≡</a><a title="Jump to previous segment" href="#Command-line-interface">△</a><a title="Jump to next segment" href="#Ruby-library-interface">▽</a><a title="Jump to this segment" href="#Merging-files-with-kdiff3">◎</a></div>
|
953
|
+
<p class="title">Tip 1. Merging files with <strong>kdiff3</strong></p>
|
954
|
+
<div class="content">
|
955
|
+
<img class="icon" src="&icon_tip;" alt="tip"/>
|
956
|
+
<p>Instead of merging files by hand, you can transfer wanted changes between files semi-automatically using <a href='http://kdiff3.sourceforge.net'>kdiff3</a>. Simply follow these instructions:</p>
|
957
|
+
|
958
|
+
<ol>
|
959
|
+
<li>
|
960
|
+
<p>Create a file named <tt>merge2</tt> with the following content:</p>
|
961
|
+
|
962
|
+
<pre>#!/bin/sh
|
963
|
+
|
964
|
+
old_file=$1
|
965
|
+
shift
|
966
|
+
|
967
|
+
new_file=$1
|
968
|
+
shift
|
969
|
+
|
970
|
+
output_file=$1
|
971
|
+
shift
|
972
|
+
|
973
|
+
kdiff3 --auto "$old_file" "$new_file" --output "$output_file"</pre>
|
974
|
+
</li>
|
975
|
+
|
976
|
+
<li>
|
977
|
+
<p>Make the file executable:</p>
|
978
|
+
|
979
|
+
<pre>chmod +x merge2</pre>
|
980
|
+
</li>
|
981
|
+
|
982
|
+
<li>
|
983
|
+
<p>Place the file in a directory that is listed in your <code class="code"><span style="color:#036;font-weight:bold">PATH</span></code> environment variable.</p>
|
984
|
+
</li>
|
985
|
+
|
986
|
+
<li>
|
987
|
+
<p>Run <strong>Inochi</strong> like this:</p>
|
988
|
+
|
989
|
+
<pre>inochi -m merge2</pre>
|
990
|
+
|
991
|
+
<p>Now <strong>kdiff3</strong> will be invoked to help you transfer your changes. When you are finished transferring changes, save the file and quit <strong>kdiff3</strong>. If you do not want to transfer any changes, simply quit <strong>kdiff3</strong> <em>without</em> saving the file.</p>
|
992
|
+
</li>
|
993
|
+
</ol>
|
994
|
+
</div>
|
995
|
+
</div></p></div>
|
996
|
+
</div> <div class="section">
|
997
|
+
<a name="Ruby-library-interface"/><div class="nav" id="Ruby-library-interface"><a title="Reverse jump to listing" href="#rev:Ruby-library-interface">≡</a><a title="Jump to previous segment" href="#Merging-files-with-kdiff3">△</a><a title="Jump to next segment" href="#Tutorial">▽</a><a title="Jump to this segment" href="#Ruby-library-interface">◎</a></div>
|
998
|
+
<h2 class="title">
|
999
|
+
3.2 Ruby library interface
|
1000
|
+
</h2>
|
1001
|
+
<div class="content"><p>The <a href='api/Inochi.html'><code class="code"><span style="color:#036;font-weight:bold">Inochi</span></code> module</a> has several class methods which provide a common configuration for various aspects of your project. These aspects, and their interactions with the <code class="code"><span style="color:#036;font-weight:bold">Inochi</span></code> module, are as follows:</p>
|
1002
|
+
|
1003
|
+
<ul>
|
1004
|
+
<li>Your project’s main library invokes the <a href='api/Inochi.html#init-class_method'><code class="code"><span style="color:#036;font-weight:bold">Inochi</span>.init()</code> method</a>.</li>
|
1005
|
+
|
1006
|
+
<li>Your project’s main executable invokes the <a href='api/Inochi.html#main-class_method'><code class="code"><span style="color:#036;font-weight:bold">Inochi</span>.main()</code> method</a>.</li>
|
1007
|
+
|
1008
|
+
<li>Your project’s <tt>Rakefile</tt> invokes the <a href='api/Inochi.html#rake-class_method'><code class="code"><span style="color:#036;font-weight:bold">Inochi</span>.rake()</code> method</a>.</li>
|
1009
|
+
|
1010
|
+
<li>Your project’s user manual invokes the <a href='api/Inochi.html#book-class_method'><code class="code"><span style="color:#036;font-weight:bold">Inochi</span>.book()</code> method</a>.</li>
|
1011
|
+
</ul></div>
|
1012
|
+
</div> <div class="section">
|
1013
|
+
<a name="Tutorial"/><div class="nav" id="Tutorial"><a title="Reverse jump to listing" href="#rev:Tutorial">≡</a><a title="Jump to previous segment" href="#Ruby-library-interface">△</a><a title="Jump to next segment" href="#Have-a-brilliant-idea">▽</a><a title="Jump to this segment" href="#Tutorial">◎</a></div>
|
1014
|
+
<h2 class="title">
|
1015
|
+
3.3 Tutorial
|
1016
|
+
</h2>
|
1017
|
+
<div class="content"><p>This tutorial shows how <strong>Inochi</strong> is used to manage a hypothetical <code class="code"><span style="color:#036;font-weight:bold">WordCount</span></code> project throughout the various stages of its life.</p>
|
1018
|
+
|
1019
|
+
<p><div class="section">
|
1020
|
+
<a name="Have-a-brilliant-idea"/><div class="nav" id="Have-a-brilliant-idea"><a title="Reverse jump to listing" href="#rev:Have-a-brilliant-idea">≡</a><a title="Jump to previous segment" href="#Tutorial">△</a><a title="Jump to next segment" href="#Generate-your-project">▽</a><a title="Jump to this segment" href="#Have-a-brilliant-idea">◎</a></div>
|
1021
|
+
<h3 class="title">
|
1022
|
+
3.3.1 Have a brilliant idea
|
1023
|
+
</h3>
|
1024
|
+
<div class="content"><p>It is 4am on Sunday morning. Unwilling to sleep, you have spent the past few hours programming obsessively.. Though your eyes grow heavy and your stomach churns from hunger, your mind charges forth with haste.</p>
|
1025
|
+
|
1026
|
+
<blockquote>
|
1027
|
+
<p>Push on! Keep on!</p>
|
1028
|
+
</blockquote>
|
1029
|
+
|
1030
|
+
<p>Until at last, pushed far beyond its limit, your body overpowers your will and drags you into black unconsciousness.</p>
|
1031
|
+
|
1032
|
+
<p><em>BEEP</em> <em>BEEP</em> <em>B</em>—</p>
|
1033
|
+
|
1034
|
+
<p>Half-asleep and violent from the sudden disturbance, you silence the bleeting alarm clock with vengeance. It is 2pm on Sunday afternoon.</p>
|
1035
|
+
|
1036
|
+
<p>Red beams of sunlight slip through the gaps in your curtains. It is a beautiful day, outside. <em>Outside</em>— you think,</p>
|
1037
|
+
|
1038
|
+
<blockquote>
|
1039
|
+
<p>What am I doing to myself?</p>
|
1040
|
+
|
1041
|
+
<p>I’ve got to get <em>outside</em>.</p>
|
1042
|
+
|
1043
|
+
<p>I’ve got to get <em>away</em>…</p>
|
1044
|
+
|
1045
|
+
<p>Away from this computer… this… mental prison in which I toil night after night, like a souless machine.</p>
|
1046
|
+
</blockquote>
|
1047
|
+
|
1048
|
+
<p>Venturing into the courtyard outside your quarters, you find peace. A warm breeze graces you, sweeping your hair gently as a mother would. The bright sunlight penetrates your mind’s eye as your thoughts fade…</p>
|
1049
|
+
|
1050
|
+
<p>Thoughts of tests to write, units to refactor, bugs to fix, options to document. They melt and mix and flow into nothingness.</p>
|
1051
|
+
|
1052
|
+
<p>All is clear. No thoughts. No more.</p>
|
1053
|
+
|
1054
|
+
<blockquote>
|
1055
|
+
<p>No!</p>
|
1056
|
+
</blockquote>
|
1057
|
+
|
1058
|
+
<p>You collapse heavily onto the grassy earth beneath you. Breathing deeply, you sink into yourself and whisper</p>
|
1059
|
+
|
1060
|
+
<blockquote>
|
1061
|
+
<p>It’s okay.</p>
|
1062
|
+
|
1063
|
+
<p>Just, let go.</p>
|
1064
|
+
</blockquote>
|
1065
|
+
|
1066
|
+
<p>and fall asleep.</p>
|
1067
|
+
|
1068
|
+
<p>You awaken that evening relaxed and refreshed. A brilliant idea for a new project enters your mind: the project will be a tool that counts the number of words in text file. And, the project can be accessed from Ruby via the <code class="code"><span style="color:#036;font-weight:bold">WordCount</span></code> module.</p>
|
1069
|
+
|
1070
|
+
<p><em>However</em>, you must go to work the next morning, so there isn’t much time. What can you do? Let’s see how <strong>Inochi</strong> can help us meet this challenge.</p></div>
|
1071
|
+
</div> <div class="section">
|
1072
|
+
<a name="Generate-your-project"/><div class="nav" id="Generate-your-project"><a title="Reverse jump to listing" href="#rev:Generate-your-project">≡</a><a title="Jump to previous segment" href="#Have-a-brilliant-idea">△</a><a title="Jump to next segment" href="#Configure-your-project">▽</a><a title="Jump to this segment" href="#Generate-your-project">◎</a></div>
|
1073
|
+
<h3 class="title">
|
1074
|
+
3.3.2 Generate your project
|
1075
|
+
</h3>
|
1076
|
+
<div class="content"><p>Give life to your new project:</p>
|
1077
|
+
|
1078
|
+
<p><pre># inochi WordCount
|
1079
|
+
create word_count/LICENSE
|
1080
|
+
create word_count/Rakefile
|
1081
|
+
create word_count/bin/word_count
|
1082
|
+
create word_count/lib/word_count.rb
|
1083
|
+
create word_count/doc/index.erb
|
1084
|
+
create word_count/doc/intro.erb
|
1085
|
+
create word_count/doc/setup.erb
|
1086
|
+
create word_count/doc/theory.erb
|
1087
|
+
create word_count/doc/usage.erb
|
1088
|
+
create word_count/doc/history.erb
|
1089
|
+
</pre></p>
|
1090
|
+
|
1091
|
+
<p>Enter the <tt>word_count</tt> directory:</p>
|
1092
|
+
|
1093
|
+
<p><pre># cd word_count</pre></p>
|
1094
|
+
|
1095
|
+
<p>View the available Rake tasks:</p>
|
1096
|
+
|
1097
|
+
<p><pre># rake -T
|
1098
|
+
(in /tmp/Inochi20090119-16887-1m6j3hx-0/word_count)
|
1099
|
+
rake ann # Build all release announcements.
|
1100
|
+
rake ann:feed # Build RSS announcement: doc/ann.xml
|
1101
|
+
rake ann:html # Build HTML announcement: ANN.html
|
1102
|
+
rake ann:mail # Build e-mail announcement: ANN.eml
|
1103
|
+
rake ann:text # Build plain text announcement: ANN.txt
|
1104
|
+
rake clean # Remove any temporary products.
|
1105
|
+
rake clobber # Remove any generated file.
|
1106
|
+
rake doc # Build all documentation.
|
1107
|
+
rake doc:api # Build API reference.
|
1108
|
+
rake doc:man # Build the user manual.
|
1109
|
+
rake pak # Build a release.
|
1110
|
+
rake pub # Publish a release.
|
1111
|
+
rake pub:ann # Publish all announcements.
|
1112
|
+
rake pub:ann:forge # Announce to RubyForge news.
|
1113
|
+
rake pub:ann:raa # Announce to RAA (Ruby Application Archive).
|
1114
|
+
rake pub:ann:talk # Announce to ruby-talk mailing list.
|
1115
|
+
rake pub:doc # Publish documentation to project website.
|
1116
|
+
rake pub:pak # Publish release packages to RubyForge.
|
1117
|
+
</pre></p>
|
1118
|
+
|
1119
|
+
<p>Try the main project executable:</p>
|
1120
|
+
|
1121
|
+
<p><pre># ruby bin/word_count
|
1122
|
+
Command-line options: {:help=>false, :version=>false, :manual=>false}
|
1123
|
+
Command-line arguments: []
|
1124
|
+
</pre></p>
|
1125
|
+
|
1126
|
+
<p>See usage information:</p>
|
1127
|
+
|
1128
|
+
<p><pre># ruby bin/word_count --help
|
1129
|
+
WordCount - TODO: put a single line description of your project here.
|
1130
|
+
|
1131
|
+
TODO: Explain the command-line usage of this program here.
|
1132
|
+
|
1133
|
+
Usage:
|
1134
|
+
|
1135
|
+
word_count [Option...] Arg1 Arg2 Arg3...
|
1136
|
+
|
1137
|
+
--manual, -m: Show the user manual
|
1138
|
+
--version, -v: Print version and exit
|
1139
|
+
--help, -h: Show this message
|
1140
|
+
</pre></p>
|
1141
|
+
|
1142
|
+
<p>See project & version information:</p>
|
1143
|
+
|
1144
|
+
<p><pre># ruby bin/word_count --version
|
1145
|
+
project: WordCount
|
1146
|
+
version: 0.0.0
|
1147
|
+
release: 2009-01-19
|
1148
|
+
website: http://word_count.rubyforge.org
|
1149
|
+
install: /tmp/Inochi20090119-16887-1m6j3hx-0/word_count
|
1150
|
+
</pre></p>
|
1151
|
+
|
1152
|
+
<p>See the user manual:</p>
|
1153
|
+
|
1154
|
+
<p><pre># rake doc:man 2>/dev/null
|
1155
|
+
|
1156
|
+
# ruby bin/word_count --manual</pre></p>
|
1157
|
+
|
1158
|
+
<p>The manual will now appear in your default web browser.</p></div>
|
1159
|
+
</div> <div class="section">
|
1160
|
+
<a name="Configure-your-project"/><div class="nav" id="Configure-your-project"><a title="Reverse jump to listing" href="#rev:Configure-your-project">≡</a><a title="Jump to previous segment" href="#Generate-your-project">△</a><a title="Jump to next segment" href="#Project-information">▽</a><a title="Jump to this segment" href="#Configure-your-project">◎</a></div>
|
1161
|
+
<h3 class="title">
|
1162
|
+
3.3.3 Configure your project
|
1163
|
+
</h3>
|
1164
|
+
<div class="content"><p><a class="xref" href="#Ruby-library-interface">Section 3.2. Ruby library interface</a> lists and documents the interactions between your project and <strong>Inochi</strong>. These points of interaction are illustrated in the following sections.</p>
|
1165
|
+
|
1166
|
+
<p><div class="section">
|
1167
|
+
<a name="Project-information"/><div class="nav" id="Project-information"><a title="Reverse jump to listing" href="#rev:Project-information">≡</a><a title="Jump to previous segment" href="#Configure-your-project">△</a><a title="Jump to next segment" href="#Project-executable">▽</a><a title="Jump to this segment" href="#Project-information">◎</a></div>
|
1168
|
+
<h4 class="title">
|
1169
|
+
3.3.3.1 Project information
|
1170
|
+
</h4>
|
1171
|
+
<div class="content"><p>Open the <tt>LICENSE</tt> file, which contains the open source <a href='http://www.opensource.org/licenses/isc-license.txt'>ISC license</a> by default, and add a copyright notice with your name and (optional) email address:</p>
|
1172
|
+
|
1173
|
+
<p><pre>Copyright 2009 Your Name <your@email.here>
|
1174
|
+
|
1175
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
1176
|
+
purpose with or without fee is hereby granted, provided that the above
|
1177
|
+
copyright notice and this permission notice appear in all copies.
|
1178
|
+
|
1179
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
1180
|
+
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
1181
|
+
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
1182
|
+
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
1183
|
+
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
1184
|
+
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
1185
|
+
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
1186
|
+
</pre></p>
|
1187
|
+
|
1188
|
+
<p>Open the main project library file <tt>lib/word_count.rb</tt> and fill in the blanks:</p>
|
1189
|
+
|
1190
|
+
<p><pre class="code">require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">rubygems</span><span style="color:#710">'</span></span>
|
1191
|
+
gem <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">inochi</span><span style="color:#710">'</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">~> 0</span><span style="color:#710">'</span></span>
|
1192
|
+
require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">inochi</span><span style="color:#710">'</span></span>
|
1193
|
+
|
1194
|
+
<span style="color:#036;font-weight:bold">Inochi</span>.init <span style="color:#A60">:WordCount</span>,
|
1195
|
+
<span style="color:#A60">:project</span> => <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">WordCount</span><span style="color:#710">'</span></span>,
|
1196
|
+
<span style="color:#A60">:version</span> => <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">0.0.0</span><span style="color:#710">'</span></span>,
|
1197
|
+
<span style="color:#A60">:release</span> => <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">2009-01-19</span><span style="color:#710">'</span></span>,
|
1198
|
+
<span style="color:#A60">:website</span> => <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">http://word_count.rubyforge.org</span><span style="color:#710">'</span></span>,
|
1199
|
+
<span style="color:#A60">:tagline</span> => <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">TODO: put a single line description of your project here.</span><span style="color:#710">'</span></span>,
|
1200
|
+
<span style="color:#A60">:require</span> => {
|
1201
|
+
<span style="color:#666"># TODO: list gems required by your project here.</span>
|
1202
|
+
<span style="color:#666"># NOTE: this is completely optional!</span>
|
1203
|
+
<span style="color:#666">#</span>
|
1204
|
+
<span style="color:#666"># example: if your project needs version 9.9.9 of the 'foo' gem:</span>
|
1205
|
+
<span style="color:#666"># 'foo' => '9.9.9',</span>
|
1206
|
+
<span style="color:#666">#</span>
|
1207
|
+
<span style="color:#666"># example: if any version of a gem is acceptable then:</span>
|
1208
|
+
<span style="color:#666"># 'foo' => nil,</span>
|
1209
|
+
}
|
1210
|
+
|
1211
|
+
</pre></p></div>
|
1212
|
+
</div> <div class="section">
|
1213
|
+
<a name="Project-executable"/><div class="nav" id="Project-executable"><a title="Reverse jump to listing" href="#rev:Project-executable">≡</a><a title="Jump to previous segment" href="#Project-information">△</a><a title="Jump to next segment" href="#Rake-tasks">▽</a><a title="Jump to this segment" href="#Project-executable">◎</a></div>
|
1214
|
+
<h4 class="title">
|
1215
|
+
3.3.3.2 Project executable
|
1216
|
+
</h4>
|
1217
|
+
<div class="content"><p>Open the <tt>bin/word_count</tt> file and fill in the blanks:</p>
|
1218
|
+
|
1219
|
+
<p><pre class="code"><span style="color:#666">#!/usr/bin/ruby -w</span>
|
1220
|
+
<span style="color:#666">#</span>
|
1221
|
+
<span style="color:#666"># TODO: Explain the command-line usage of this program here.</span>
|
1222
|
+
<span style="color:#666">#</span>
|
1223
|
+
<span style="color:#666"># Usage:</span>
|
1224
|
+
<span style="color:#666">#</span>
|
1225
|
+
<span style="color:#666"># word_count [Option...] Arg1 Arg2 Arg3...</span>
|
1226
|
+
<span style="color:#666">#</span>
|
1227
|
+
|
1228
|
+
require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">rubygems</span><span style="color:#710">'</span></span>
|
1229
|
+
gem <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">inochi</span><span style="color:#710">'</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">~> 0</span><span style="color:#710">'</span></span>
|
1230
|
+
require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">inochi</span><span style="color:#710">'</span></span>
|
1231
|
+
|
1232
|
+
options = <span style="color:#036;font-weight:bold">Inochi</span>.main <span style="color:#A60">:WordCount</span> <span style="color:#080;font-weight:bold">do</span>
|
1233
|
+
<span style="color:#666"># TODO: define command-line options here.</span>
|
1234
|
+
<span style="color:#666"># see http://trollop.rubyforge.org/</span>
|
1235
|
+
<span style="color:#666">#</span>
|
1236
|
+
<span style="color:#666"># NOTE: this is completely optional!</span>
|
1237
|
+
<span style="color:#080;font-weight:bold">end</span>
|
1238
|
+
|
1239
|
+
<span style="color:#666"># TODO: add the body of your program here</span>
|
1240
|
+
|
1241
|
+
puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Command-line options: </span><span style="background:#eee"><span style="font-weight:bold;color:#888">#{</span>options.inspect<span style="font-weight:bold;color:#888">}</span></span><span style="color:#710">"</span></span>
|
1242
|
+
puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Command-line arguments: </span><span style="background:#eee"><span style="font-weight:bold;color:#888">#{</span><span style="color:#038;font-weight:bold">ARGV</span>.inspect<span style="font-weight:bold;color:#888">}</span></span><span style="color:#710">"</span></span>
|
1243
|
+
|
1244
|
+
</pre></p></div>
|
1245
|
+
</div> <div class="section">
|
1246
|
+
<a name="Rake-tasks"/><div class="nav" id="Rake-tasks"><a title="Reverse jump to listing" href="#rev:Rake-tasks">≡</a><a title="Jump to previous segment" href="#Project-executable">△</a><a title="Jump to next segment" href="#User-manual">▽</a><a title="Jump to this segment" href="#Rake-tasks">◎</a></div>
|
1247
|
+
<h4 class="title">
|
1248
|
+
3.3.3.3 Rake tasks
|
1249
|
+
</h4>
|
1250
|
+
<div class="content"><p>Open the <tt>Rakefile</tt> and fill in the blanks:</p>
|
1251
|
+
|
1252
|
+
<p><pre class="code">require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">rubygems</span><span style="color:#710">'</span></span>
|
1253
|
+
gem <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">inochi</span><span style="color:#710">'</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">~> 0</span><span style="color:#710">'</span></span>
|
1254
|
+
require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">inochi</span><span style="color:#710">'</span></span>
|
1255
|
+
|
1256
|
+
<span style="color:#036;font-weight:bold">Inochi</span>.rake <span style="color:#A60">:WordCount</span> <span style="color:#080;font-weight:bold">do</span> |gem|
|
1257
|
+
<span style="color:#666"># TODO: additional gem configuration.</span>
|
1258
|
+
<span style="color:#666"># NOTE: this is completely optional!</span>
|
1259
|
+
<span style="color:#666">#</span>
|
1260
|
+
<span style="color:#666"># gem.extensions = ['foo.so']</span>
|
1261
|
+
<span style="color:#666"># gem.files += ['other', 'files']</span>
|
1262
|
+
<span style="color:#080;font-weight:bold">end</span>
|
1263
|
+
|
1264
|
+
</pre></p></div>
|
1265
|
+
</div> <div class="section">
|
1266
|
+
<a name="User-manual"/><div class="nav" id="User-manual"><a title="Reverse jump to listing" href="#rev:User-manual">≡</a><a title="Jump to previous segment" href="#Rake-tasks">△</a><a title="Jump to next segment" href="#doc-index.erb">▽</a><a title="Jump to this segment" href="#User-manual">◎</a></div>
|
1267
|
+
<h4 class="title">
|
1268
|
+
3.3.3.4 User manual
|
1269
|
+
</h4>
|
1270
|
+
<div class="content"><p>The user manual’s source file <tt>doc/index.erb</tt> subdivides its content into several smaller files, according to topic, for easier editing and maintenance. These files are processed by the <a href='http://snk.tuxfamily.org/lib/erbook/'>ERBook</a> program’s <a href='http://snk.tuxfamily.org/lib/erbook/#xhtml'>XHTML format</a> to produce the <tt>doc/index.xhtml</tt> file.</p>
|
1271
|
+
|
1272
|
+
<p>Open these source files and fill in the blanks:</p>
|
1273
|
+
|
1274
|
+
<p><div class="paragraph">
|
1275
|
+
<a name="doc-index.erb"/><div class="nav" id="doc-index.erb"><a title="Reverse jump to listing" href="#rev:doc-index.erb">≡</a><a title="Jump to previous segment" href="#User-manual">△</a><a title="Jump to next segment" href="#doc-intro.erb">▽</a><a title="Jump to this segment" href="#doc-index.erb">◎</a></div>
|
1276
|
+
<p class="title"><tt>doc/index.erb</tt></p>
|
1277
|
+
<div class="content"><p><pre class="code" lang="rhtml"><span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#036;font-weight:bold">Inochi</span>.book <span style="color:#A60">:WordCount</span>, <span style="color:#038;font-weight:bold">self</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1278
|
+
|
1279
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span><span style="color:#666"># include intro.erb #</span><span style="font-weight:bold;color:#888">%></span></span>
|
1280
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span><span style="color:#666"># include setup.erb #</span><span style="font-weight:bold;color:#888">%></span></span>
|
1281
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span><span style="color:#666"># include theory.erb #</span><span style="font-weight:bold;color:#888">%></span></span>
|
1282
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span><span style="color:#666"># include usage.erb #</span><span style="font-weight:bold;color:#888">%></span></span>
|
1283
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span><span style="color:#666"># include history.erb #</span><span style="font-weight:bold;color:#888">%></span></span>
|
1284
|
+
</pre></p></div>
|
1285
|
+
</div><div class="paragraph">
|
1286
|
+
<a name="doc-intro.erb"/><div class="nav" id="doc-intro.erb"><a title="Reverse jump to listing" href="#rev:doc-intro.erb">≡</a><a title="Jump to previous segment" href="#doc-index.erb">△</a><a title="Jump to next segment" href="#doc-setup.erb">▽</a><a title="Jump to this segment" href="#doc-intro.erb">◎</a></div>
|
1287
|
+
<p class="title"><tt>doc/intro.erb</tt></p>
|
1288
|
+
<div class="content"><p><pre class="code" lang="rhtml"><span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> chapter <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Introduction</span><span style="color:#710">"</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1289
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> project_summary <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1290
|
+
<span style="color:#F00;background-color:#FAA">></span> TODO: explain the purpose of your project
|
1291
|
+
|
1292
|
+
****<span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%></span></span>**** is a __________ that __________.
|
1293
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1294
|
+
|
1295
|
+
<span style="color:#F00;background-color:#FAA">></span> TODO: explain why your project is important
|
1296
|
+
|
1297
|
+
**<span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%></span></span>** is exciting because:
|
1298
|
+
* It lets you __________.
|
1299
|
+
* Its core contains less than __________ lines of code.
|
1300
|
+
* It __________.
|
1301
|
+
|
1302
|
+
<span style="color:#F00;background-color:#FAA">></span> TODO: explain why your project is better than its competitors
|
1303
|
+
|
1304
|
+
These features distinguish **<span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%></span></span>** from the competition:
|
1305
|
+
* [competitor 1](http://)
|
1306
|
+
* [competitor 2](http://)
|
1307
|
+
* [competitor 3](http://)
|
1308
|
+
|
1309
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> paragraph <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Etymology</span><span style="color:#710">"</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1310
|
+
<span style="color:#F00;background-color:#FAA">></span> TODO: explain the meaning of the name of your project
|
1311
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1312
|
+
|
1313
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Logistics</span><span style="color:#710">"</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1314
|
+
* <span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> xref <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">History</span><span style="color:#710">"</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Release notes</span><span style="color:#710">"</span></span> <span style="font-weight:bold;color:#888">%></span></span> --- history of project releases.
|
1315
|
+
* [Source code](http://github.com/sun/<span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#888">%></span></span>) --- obtain via [Git](http://git.or.cz) or browse online.
|
1316
|
+
* [API reference](api/index.html) --- documentation for source code.
|
1317
|
+
|
1318
|
+
To get help or provide feedback, simply
|
1319
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> xref <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">License</span><span style="color:#710">"</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">contact the author(s)</span><span style="color:#710">"</span></span> <span style="font-weight:bold;color:#888">%></span></span>.
|
1320
|
+
|
1321
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> paragraph <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Version numbers</span><span style="color:#710">"</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1322
|
+
**<span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%></span></span>** releases are numbered in *major.minor.patch*
|
1323
|
+
form according to the [RubyGems rational versioning
|
1324
|
+
policy](http://www.rubygems.org/read/chapter/7), which
|
1325
|
+
can be summarized thus:
|
1326
|
+
|
1327
|
+
<span style="color:#070"><table</span> <span style="color:#007">markdown</span>=<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">1</span><span style="color:#710">"</span></span><span style="color:#070">></span>
|
1328
|
+
<span style="color:#070"><thead></span>
|
1329
|
+
<span style="color:#070"><tr></span>
|
1330
|
+
<span style="color:#070"><td</span> <span style="color:#007">rowspan</span>=<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">2</span><span style="color:#710">"</span></span><span style="color:#070">></span>What increased in the version number?<span style="color:#070"></td></span>
|
1331
|
+
<span style="color:#070"><td</span> <span style="color:#007">colspan</span>=<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">3</span><span style="color:#710">"</span></span><span style="color:#070">></span>The increase indicates that the release:<span style="color:#070"></td></span>
|
1332
|
+
<span style="color:#070"></tr></span>
|
1333
|
+
<span style="color:#070"><tr></span>
|
1334
|
+
<span style="color:#070"><th></span>Is backward compatible?<span style="color:#070"></th></span>
|
1335
|
+
<span style="color:#070"><th></span>Has new features?<span style="color:#070"></th></span>
|
1336
|
+
<span style="color:#070"><th></span>Has bug fixes?<span style="color:#070"></th></span>
|
1337
|
+
<span style="color:#070"></tr></span>
|
1338
|
+
<span style="color:#070"></thead></span>
|
1339
|
+
<span style="color:#070"><tbody></span>
|
1340
|
+
<span style="color:#070"><tr></span>
|
1341
|
+
<span style="color:#070"><th></span>major<span style="color:#070"></th></span>
|
1342
|
+
<span style="color:#070"><td</span> <span style="color:#007">style</span>=<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">background-color: #FFE4E1;</span><span style="color:#710">"</span></span><span style="color:#070">></span>No<span style="color:#070"></td></span>
|
1343
|
+
<span style="color:#070"><td></span>Yes<span style="color:#070"></td></span>
|
1344
|
+
<span style="color:#070"><td></span>Yes<span style="color:#070"></td></span>
|
1345
|
+
<span style="color:#070"></tr></span>
|
1346
|
+
<span style="color:#070"><tr></span>
|
1347
|
+
<span style="color:#070"><th></span>minor<span style="color:#070"></th></span>
|
1348
|
+
<span style="color:#070"><td></span>Yes<span style="color:#070"></td></span>
|
1349
|
+
<span style="color:#070"><td></span>Yes<span style="color:#070"></td></span>
|
1350
|
+
<span style="color:#070"><td></span>Yes<span style="color:#070"></td></span>
|
1351
|
+
<span style="color:#070"></tr></span>
|
1352
|
+
<span style="color:#070"><tr></span>
|
1353
|
+
<span style="color:#070"><th></span>patch<span style="color:#070"></th></span>
|
1354
|
+
<span style="color:#070"><td></span>Yes<span style="color:#070"></td></span>
|
1355
|
+
<span style="color:#070"><td</span> <span style="color:#007">style</span>=<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">background-color: #FFE4E1;</span><span style="color:#710">"</span></span><span style="color:#070">></span>No<span style="color:#070"></td></span>
|
1356
|
+
<span style="color:#070"><td></span>Yes<span style="color:#070"></td></span>
|
1357
|
+
<span style="color:#070"></tr></span>
|
1358
|
+
<span style="color:#070"></tbody></span>
|
1359
|
+
<span style="color:#070"></table></span>
|
1360
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1361
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1362
|
+
|
1363
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">License</span><span style="color:#710">"</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1364
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span><span style="color:#666"># include ../LICENSE #</span><span style="font-weight:bold;color:#888">%></span></span>
|
1365
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1366
|
+
|
1367
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Credits</span><span style="color:#710">"</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1368
|
+
<span style="color:#F00;background-color:#FAA">></span> TODO: give attribution to your predecessors and contributors
|
1369
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1370
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1371
|
+
</pre></p></div>
|
1372
|
+
</div><div class="paragraph">
|
1373
|
+
<a name="doc-setup.erb"/><div class="nav" id="doc-setup.erb"><a title="Reverse jump to listing" href="#rev:doc-setup.erb">≡</a><a title="Jump to previous segment" href="#doc-intro.erb">△</a><a title="Jump to next segment" href="#doc-theory.erb">▽</a><a title="Jump to this segment" href="#doc-setup.erb">◎</a></div>
|
1374
|
+
<p class="title"><tt>doc/setup.erb</tt></p>
|
1375
|
+
<div class="content"><p><pre class="code" lang="rhtml"><span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> chapter <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Setup</span><span style="color:#710">"</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1376
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Requirements</span><span style="color:#710">"</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1377
|
+
Your system needs the following software to run **<span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%></span></span>**.
|
1378
|
+
|
1379
|
+
| Software | Description | Notes |
|
1380
|
+
| -------- | ----------- | ----- |
|
1381
|
+
| [Ruby](http://ruby-lang.org) | Ruby language interpreter | Version 1.8.7 is required. |
|
1382
|
+
| [RubyGems](http://rubygems.org) | Ruby packaging system | Version 1.3.1 is required. |
|
1383
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1384
|
+
|
1385
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Installation</span><span style="color:#710">"</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1386
|
+
You can install **<span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%></span></span>** by running this command:
|
1387
|
+
|
1388
|
+
gem install <span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1389
|
+
|
1390
|
+
To check whether the installation was sucessful, run this command:
|
1391
|
+
|
1392
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#888">%></span></span> --version
|
1393
|
+
|
1394
|
+
If the installation was successful, you will see output like this:
|
1395
|
+
|
1396
|
+
<span style="color:#070"><pre></span><span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> verbatim <span style="background-color:#f0fff0;color:#2B2"><span style="color:#161">`</span><span style="">ruby bin/</span><span style="background:#eee"><span style="font-weight:bold;color:#888">#{</span><span style="color:#d70;font-weight:bold">$program</span><span style="font-weight:bold;color:#888">}</span></span><span style=""> --version</span><span style="color:#161">`</span></span> <span style="font-weight:bold;color:#888">%></span></span><span style="color:#070"></pre></span>
|
1397
|
+
|
1398
|
+
If you do not see such output, you may
|
1399
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> xref <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">License</span><span style="color:#710">"</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">ask the author(s)</span><span style="color:#710">"</span></span> <span style="font-weight:bold;color:#888">%></span></span> for help.
|
1400
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1401
|
+
|
1402
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Manifest</span><span style="color:#710">"</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1403
|
+
You will see the following items inside **<span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%></span></span>**'s installation
|
1404
|
+
directory, whose path you can determine by running this command:
|
1405
|
+
|
1406
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#888">%></span></span> --version
|
1407
|
+
|
1408
|
+
<span style="color:#F00;background-color:#FAA">></span> TODO: list important files your project provides here
|
1409
|
+
|
1410
|
+
* <span style="color:#070"><tt></span>bin/<span style="color:#070"></tt></span>
|
1411
|
+
|
1412
|
+
* <span style="color:#070"><tt></span><span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#888">%></span></span><span style="color:#070"></tt></span> --- the main **<span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%></span></span>** executable.
|
1413
|
+
|
1414
|
+
* <span style="color:#070"><tt></span>lib/<span style="color:#070"></tt></span>
|
1415
|
+
|
1416
|
+
* <span style="color:#070"><tt></span><span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#888">%></span></span>.rb<span style="color:#070"></tt></span> --- the main **<span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%></span></span>** library.
|
1417
|
+
|
1418
|
+
* <span style="color:#070"><tt></span><span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#888">%></span></span>/<span style="color:#070"></tt></span>
|
1419
|
+
|
1420
|
+
<span style="color:#F00;background-color:#FAA">></span> TODO: list sub-libraries your project provides here
|
1421
|
+
|
1422
|
+
* <span style="color:#070"><tt></span>doc/<span style="color:#070"></tt></span>
|
1423
|
+
|
1424
|
+
* <span style="color:#070"><tt></span>api/<span style="color:#070"></tt></span> --- API reference documentation.
|
1425
|
+
|
1426
|
+
* <span style="color:#070"><tt></span>index.erb<span style="color:#070"></tt></span> --- source of this user manual.
|
1427
|
+
|
1428
|
+
* <span style="color:#070"><tt></span>LICENSE<span style="color:#070"></tt></span> --- copyright notice and legal conditions.
|
1429
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1430
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1431
|
+
</pre></p></div>
|
1432
|
+
</div><div class="paragraph">
|
1433
|
+
<a name="doc-theory.erb"/><div class="nav" id="doc-theory.erb"><a title="Reverse jump to listing" href="#rev:doc-theory.erb">≡</a><a title="Jump to previous segment" href="#doc-setup.erb">△</a><a title="Jump to next segment" href="#doc-usage.erb">▽</a><a title="Jump to this segment" href="#doc-theory.erb">◎</a></div>
|
1434
|
+
<p class="title"><tt>doc/theory.erb</tt></p>
|
1435
|
+
<div class="content"><p><pre class="code" lang="rhtml"><span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> chapter <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Theory of operation</span><span style="color:#710">"</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1436
|
+
<span style="color:#F00;background-color:#FAA">></span> TODO: explain how your project does what it does
|
1437
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1438
|
+
</pre></p></div>
|
1439
|
+
</div><div class="paragraph">
|
1440
|
+
<a name="doc-usage.erb"/><div class="nav" id="doc-usage.erb"><a title="Reverse jump to listing" href="#rev:doc-usage.erb">≡</a><a title="Jump to previous segment" href="#doc-theory.erb">△</a><a title="Jump to next segment" href="#doc-history.erb">▽</a><a title="Jump to this segment" href="#doc-usage.erb">◎</a></div>
|
1441
|
+
<p class="title"><tt>doc/usage.erb</tt></p>
|
1442
|
+
<div class="content"><p><pre class="code" lang="rhtml"><span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> chapter <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Usage</span><span style="color:#710">"</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1443
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Command-line interface</span><span style="color:#710">"</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1444
|
+
When you run this command:
|
1445
|
+
|
1446
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#888">%></span></span> --help
|
1447
|
+
|
1448
|
+
You will see this output:
|
1449
|
+
|
1450
|
+
<span style="color:#070"><pre></span><span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> verbatim <span style="background-color:#f0fff0;color:#2B2"><span style="color:#161">`</span><span style="">ruby bin/</span><span style="background:#eee"><span style="font-weight:bold;color:#888">#{</span><span style="color:#d70;font-weight:bold">$program</span><span style="font-weight:bold;color:#888">}</span></span><span style=""> --help</span><span style="color:#161">`</span></span> <span style="font-weight:bold;color:#888">%></span></span><span style="color:#070"></pre></span>
|
1451
|
+
|
1452
|
+
<span style="color:#F00;background-color:#FAA">></span> TODO: explain the command-line arguments
|
1453
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1454
|
+
|
1455
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Ruby library interface</span><span style="color:#710">"</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1456
|
+
<span style="color:#F00;background-color:#FAA">></span> TODO: explain how to use your project's Ruby library
|
1457
|
+
<span style="color:#F00;background-color:#FAA">></span> from inside another Ruby program or library
|
1458
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1459
|
+
|
1460
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Tutorial</span><span style="color:#710">"</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1461
|
+
This tutorial shows how **<span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%></span></span>** is used to __________.
|
1462
|
+
|
1463
|
+
<span style="color:#F00;background-color:#FAA">></span> TODO: give examples for doing common tasks
|
1464
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1465
|
+
|
1466
|
+
<span style="color:#F00;background-color:#FAA">></span> TODO: explain how to do more (advanced) things
|
1467
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1468
|
+
</pre></p></div>
|
1469
|
+
</div><div class="paragraph">
|
1470
|
+
<a name="doc-history.erb"/><div class="nav" id="doc-history.erb"><a title="Reverse jump to listing" href="#rev:doc-history.erb">≡</a><a title="Jump to previous segment" href="#doc-usage.erb">△</a><a title="Jump to next segment" href="#Implement-your-project">▽</a><a title="Jump to this segment" href="#doc-history.erb">◎</a></div>
|
1471
|
+
<p class="title"><tt>doc/history.erb</tt></p>
|
1472
|
+
<div class="content"><p><pre class="code" lang="rhtml"><span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> chapter <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">History</span><span style="color:#710">"</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1473
|
+
<span style="color:#F00;background-color:#FAA">></span> TODO: put a brief history about your project here
|
1474
|
+
|
1475
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> project_history <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1476
|
+
<span style="color:#F00;background-color:#FAA">></span> TODO: put release notes for your project
|
1477
|
+
<span style="color:#F00;background-color:#FAA">></span> here -- newest first, oldest last.
|
1478
|
+
|
1479
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Version 0.0.0 (2009-01-19)</span><span style="color:#710">"</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1480
|
+
<span style="color:#F00;background-color:#FAA">></span> TODO: write a short summary of the changes in this release
|
1481
|
+
|
1482
|
+
This release changes __________, adds __________, and fixes __________.
|
1483
|
+
|
1484
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> paragraph <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Contributor kudos</span><span style="color:#710">"</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1485
|
+
<span style="color:#F00;background-color:#FAA">></span> TODO: list everyone who contributed to this
|
1486
|
+
<span style="color:#F00;background-color:#FAA">></span> release and what their contribution was
|
1487
|
+
|
1488
|
+
* __________ contributed __________ which __________.
|
1489
|
+
|
1490
|
+
* __________ fixed __________ which __________.
|
1491
|
+
|
1492
|
+
* __________ added __________ which __________.
|
1493
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1494
|
+
|
1495
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> paragraph <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Incompatible changes</span><span style="color:#710">"</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1496
|
+
<span style="color:#F00;background-color:#FAA">></span> TODO: list all backward-incompatible changes in this release
|
1497
|
+
|
1498
|
+
* __________ has been __________ to __________.
|
1499
|
+
|
1500
|
+
* __________.
|
1501
|
+
|
1502
|
+
* __________.
|
1503
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1504
|
+
|
1505
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> paragraph <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">New features</span><span style="color:#710">"</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1506
|
+
<span style="color:#F00;background-color:#FAA">></span> TODO: list new features added in this release
|
1507
|
+
|
1508
|
+
* __________.
|
1509
|
+
|
1510
|
+
* __________.
|
1511
|
+
|
1512
|
+
* __________.
|
1513
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1514
|
+
|
1515
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> paragraph <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Bug fixes</span><span style="color:#710">"</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1516
|
+
<span style="color:#F00;background-color:#FAA">></span> TODO: describe all bugs that are fixed in this release
|
1517
|
+
|
1518
|
+
* __________ was __________.
|
1519
|
+
|
1520
|
+
* __________ were __________.
|
1521
|
+
|
1522
|
+
* __________ did __________.
|
1523
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1524
|
+
|
1525
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> paragraph <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Housekeeping</span><span style="color:#710">"</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1526
|
+
<span style="color:#F00;background-color:#FAA">></span> TODO: list the refactorings, clean ups, and other
|
1527
|
+
<span style="color:#F00;background-color:#FAA">></span> improvements that were done for this release
|
1528
|
+
|
1529
|
+
* __________.
|
1530
|
+
|
1531
|
+
* __________.
|
1532
|
+
|
1533
|
+
* __________.
|
1534
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1535
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1536
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1537
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1538
|
+
</pre></p></div>
|
1539
|
+
</div></p></div>
|
1540
|
+
</div></p></div>
|
1541
|
+
</div> <div class="section">
|
1542
|
+
<a name="Implement-your-project"/><div class="nav" id="Implement-your-project"><a title="Reverse jump to listing" href="#rev:Implement-your-project">≡</a><a title="Jump to previous segment" href="#doc-history.erb">△</a><a title="Jump to next segment" href="#Goodbye-LOAD_PATH-hello-require">▽</a><a title="Jump to this segment" href="#Implement-your-project">◎</a></div>
|
1543
|
+
<h3 class="title">
|
1544
|
+
3.3.4 Implement your project
|
1545
|
+
</h3>
|
1546
|
+
<div class="content"><p>Add the following code to the bottom of the main project library:</p>
|
1547
|
+
|
1548
|
+
<p><pre class="code"><span style="color:#080;font-weight:bold">module</span> <span style="color:#B06;font-weight:bold">WordCount</span>
|
1549
|
+
<span style="color:#666"># Returns the number of words in the given input.</span>
|
1550
|
+
<span style="color:#080;font-weight:bold">def</span> <span style="color:#036;font-weight:bold">WordCount</span>.count input
|
1551
|
+
input.to_s.split(<span style="background-color:#fff0ff"><span style="color:#404">/</span><span style="color:#04D">\W</span><span style="color:#808">+</span><span style="color:#404">/</span></span>).length
|
1552
|
+
<span style="color:#080;font-weight:bold">end</span>
|
1553
|
+
<span style="color:#080;font-weight:bold">end</span>
|
1554
|
+
</pre></p>
|
1555
|
+
|
1556
|
+
<p>Add the following code to the bottom of the main project executable:</p>
|
1557
|
+
|
1558
|
+
<p><pre class="code">input = <span style="color:#038;font-weight:bold">ARGF</span>.read
|
1559
|
+
total = <span style="color:#036;font-weight:bold">WordCount</span>.count(input)
|
1560
|
+
puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">There are </span><span style="background:#eee"><span style="font-weight:bold;color:#888">#{</span>total<span style="font-weight:bold;color:#888">}</span></span><span style=""> words in the input.</span><span style="color:#710">"</span></span>
|
1561
|
+
</pre></p>
|
1562
|
+
|
1563
|
+
<p><div class="paragraph">
|
1564
|
+
<a name="Goodbye-LOAD_PATH-hello-require"/><div class="nav" id="Goodbye-LOAD_PATH-hello-require"><a title="Reverse jump to listing" href="#rev:Goodbye-LOAD_PATH-hello-require">≡</a><a title="Jump to previous segment" href="#Implement-your-project">△</a><a title="Jump to next segment" href="#Test-your-project">▽</a><a title="Jump to this segment" href="#Goodbye-LOAD_PATH-hello-require">◎</a></div>
|
1565
|
+
<p class="title">Goodbye <code class="code"><span style="color:#d70;font-weight:bold">$LOAD_PATH</span></code>, hello <code class="code">require()</code></p>
|
1566
|
+
<div class="content"><p>Notice that, in the Ruby files that you modified so far, there were no <code class="code"><span style="color:#d70;font-weight:bold">$LOAD_PATH</span></code> manipulations and no explicit <code class="code">require()</code> statements to pull in the various parts of your project. That is because <strong>Inochi</strong> does this for you automatically.</p>
|
1567
|
+
|
1568
|
+
<p>Furthermore, you can always <code class="code">require()</code> a sub-library anywhere in your project using its canonical path because <strong>Inochi</strong> puts your main project libraries on the Ruby load path.</p>
|
1569
|
+
|
1570
|
+
<p>For example, if your project has a sub-library, say, <tt>lib/word_count/odf/text.rb</tt> that counts the number of words in an <a href='http://en.wikipedia.org/wiki/OpenDocument'>OpenDocument Text</a> document, then it would be loaded into the main project executable like this:</p>
|
1571
|
+
|
1572
|
+
<p><pre class="code">require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">word_count/odf/text</span><span style="color:#710">'</span></span>
|
1573
|
+
</pre></p>
|
1574
|
+
|
1575
|
+
<p>Regardless of whether a sub-library is used within your project itself or from within an external application, we always <code class="code">require()</code> the sub-library using the same canonical path.</p></div>
|
1576
|
+
</div></p></div>
|
1577
|
+
</div> <div class="section">
|
1578
|
+
<a name="Test-your-project"/><div class="nav" id="Test-your-project"><a title="Reverse jump to listing" href="#rev:Test-your-project">≡</a><a title="Jump to previous segment" href="#Goodbye-LOAD_PATH-hello-require">△</a><a title="Jump to next segment" href="#Publish-your-project">▽</a><a title="Jump to this segment" href="#Test-your-project">◎</a></div>
|
1579
|
+
<h3 class="title">
|
1580
|
+
3.3.5 Test your project
|
1581
|
+
</h3>
|
1582
|
+
<div class="content"><blockquote>
|
1583
|
+
<p>TODO: show how to write a unit test for the code</p>
|
1584
|
+
</blockquote>
|
1585
|
+
|
1586
|
+
<blockquote>
|
1587
|
+
<p>TODO: integrate minitest tasks into Inochi.rake()</p>
|
1588
|
+
</blockquote></div>
|
1589
|
+
</div> <div class="section">
|
1590
|
+
<a name="Publish-your-project"/><div class="nav" id="Publish-your-project"><a title="Reverse jump to listing" href="#rev:Publish-your-project">≡</a><a title="Jump to previous segment" href="#Test-your-project">△</a><a title="Jump to next segment" href="#Build-a-RubyGem">▽</a><a title="Jump to this segment" href="#Publish-your-project">◎</a></div>
|
1591
|
+
<h3 class="title">
|
1592
|
+
3.3.6 Publish your project
|
1593
|
+
</h3>
|
1594
|
+
<div class="content"><p>This command performs all of the automated steps described in the following sections:</p>
|
1595
|
+
|
1596
|
+
<p><pre># rake pub</pre></p>
|
1597
|
+
|
1598
|
+
<p><div class="section">
|
1599
|
+
<a name="Build-a-RubyGem"/><div class="nav" id="Build-a-RubyGem"><a title="Reverse jump to listing" href="#rev:Build-a-RubyGem">≡</a><a title="Jump to previous segment" href="#Publish-your-project">△</a><a title="Jump to next segment" href="#Publish-a-RubyGem">▽</a><a title="Jump to this segment" href="#Build-a-RubyGem">◎</a></div>
|
1600
|
+
<h4 class="title">
|
1601
|
+
3.3.6.1 Build a RubyGem
|
1602
|
+
</h4>
|
1603
|
+
<div class="content"><p>Build a RubyGem by running:</p>
|
1604
|
+
|
1605
|
+
<p><pre># rake pak
|
1606
|
+
(in /tmp/Inochi20090119-16887-1m6j3hx-0/word_count)
|
1607
|
+
(in /tmp/Inochi20090119-16887-1m6j3hx-0/word_count)
|
1608
|
+
Successfully built RubyGem
|
1609
|
+
Name: word_count
|
1610
|
+
Version: 0.0.0
|
1611
|
+
File: word_count-0.0.0.gem
|
1612
|
+
</pre></p>
|
1613
|
+
|
1614
|
+
<p>See the RubyGem contents:</p>
|
1615
|
+
|
1616
|
+
<p><pre># gem spec pkg/*.gem
|
1617
|
+
<pre class="code" lang="yaml"><span style="color:#f8f;background:#505"><span style="color:#f4f">---</span></span> <span style="color:#339;font-weight:bold">!ruby/object</span>:<span style="color:#B06;font-weight:bold">Gem::Specification</span>
|
1618
|
+
<span style="color:#808">name</span>: <span style="background-color:#fff0f0;color:#D20">word_count</span>
|
1619
|
+
<span style="color:#808">version</span>: <span style="color:#339;font-weight:bold">!ruby/object</span>:<span style="color:#B06;font-weight:bold">Gem::Version</span>
|
1620
|
+
<span style="color:#808">version</span>: <span style="background-color:#fff0f0;color:#D20">0.0.0</span>
|
1621
|
+
<span style="color:#808">platform</span>: <span style="background-color:#fff0f0;color:#D20">ruby</span>
|
1622
|
+
<span style="color:#808">authors</span>:
|
1623
|
+
- <span style="background-color:#fff0f0;color:#D20">Your Name</span>
|
1624
|
+
<span style="color:#808">autorequire</span>:
|
1625
|
+
<span style="color:#808">bindir</span>: <span style="background-color:#fff0f0;color:#D20">bin</span>
|
1626
|
+
<span style="color:#808">cert_chain</span>: <span style="background-color:#fff0f0;color:#D20">[]</span>
|
1627
|
+
|
1628
|
+
<span style="color:#808">date</span>: <span style="background-color:#fff0f0;color:#D20">2009-01-19 00:00:00 -08:00</span>
|
1629
|
+
<span style="color:#808">default_executable</span>:
|
1630
|
+
<span style="color:#808">dependencies</span>:
|
1631
|
+
- <span style="color:#339;font-weight:bold">!ruby/object</span>:<span style="color:#B06;font-weight:bold">Gem::Dependency</span>
|
1632
|
+
<span style="color:#808">name</span>: <span style="background-color:#fff0f0;color:#D20">inochi</span>
|
1633
|
+
<span style="color:#808">type</span>: <span style="background-color:#fff0f0;color:#D20">:runtime</span>
|
1634
|
+
<span style="color:#808">version_requirement</span>:
|
1635
|
+
<span style="color:#808">version_requirements</span>: <span style="color:#339;font-weight:bold">!ruby/object</span>:<span style="color:#B06;font-weight:bold">Gem::Requirement</span>
|
1636
|
+
<span style="color:#808">requirements</span>:
|
1637
|
+
- <span style="background-color:#fff0f0;color:#D20">- "="</span>
|
1638
|
+
- <span style="color:#339;font-weight:bold">!ruby/object</span>:<span style="color:#B06;font-weight:bold">Gem::Version</span>
|
1639
|
+
<span style="color:#808">version</span>: <span style="background-color:#fff0f0;color:#D20">0.0.0</span>
|
1640
|
+
<span style="color:#808">version</span>:
|
1641
|
+
<span style="color:#808">description</span>: <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">TODO: put a single line description of your project here.</span><span style="color:#710">"</span></span>
|
1642
|
+
<span style="color:#808">email</span>: <span style="background-color:#fff0f0;color:#D20">your@email.here</span>
|
1643
|
+
<span style="color:#808">executables</span>:
|
1644
|
+
- <span style="background-color:#fff0f0;color:#D20">word_count</span>
|
1645
|
+
<span style="color:#808">extensions</span>: <span style="background-color:#fff0f0;color:#D20">[]</span>
|
1646
|
+
|
1647
|
+
<span style="color:#808">extra_rdoc_files</span>: <span style="background-color:#fff0f0;color:#D20">[]</span>
|
1648
|
+
|
1649
|
+
<span style="color:#808">files</span>:
|
1650
|
+
- <span style="background-color:#fff0f0;color:#D20">lib</span>
|
1651
|
+
- <span style="background-color:#fff0f0;color:#D20">lib/word_count.rb</span>
|
1652
|
+
- <span style="background-color:#fff0f0;color:#D20">bin</span>
|
1653
|
+
- <span style="background-color:#fff0f0;color:#D20">bin/word_count</span>
|
1654
|
+
- <span style="background-color:#fff0f0;color:#D20">Rakefile</span>
|
1655
|
+
- <span style="background-color:#fff0f0;color:#D20">LICENSE</span>
|
1656
|
+
- <span style="background-color:#fff0f0;color:#D20">doc</span>
|
1657
|
+
- <span style="background-color:#fff0f0;color:#D20">doc/usage.erb</span>
|
1658
|
+
- <span style="background-color:#fff0f0;color:#D20">doc/index.erb</span>
|
1659
|
+
- <span style="background-color:#fff0f0;color:#D20">doc/history.erb</span>
|
1660
|
+
- <span style="background-color:#fff0f0;color:#D20">doc/intro.erb</span>
|
1661
|
+
- <span style="background-color:#fff0f0;color:#D20">doc/index.xhtml</span>
|
1662
|
+
- <span style="background-color:#fff0f0;color:#D20">doc/setup.erb</span>
|
1663
|
+
- <span style="background-color:#fff0f0;color:#D20">doc/api</span>
|
1664
|
+
- <span style="background-color:#fff0f0;color:#D20">doc/api/index.html</span>
|
1665
|
+
- <span style="background-color:#fff0f0;color:#D20">doc/api/all-methods.html</span>
|
1666
|
+
- <span style="background-color:#fff0f0;color:#D20">doc/api/app.js</span>
|
1667
|
+
- <span style="background-color:#fff0f0;color:#D20">doc/api/syntax_highlight.css</span>
|
1668
|
+
- <span style="background-color:#fff0f0;color:#D20">doc/api/readme.html</span>
|
1669
|
+
- <span style="background-color:#fff0f0;color:#D20">doc/api/style.css</span>
|
1670
|
+
- <span style="background-color:#fff0f0;color:#D20">doc/api/jquery.js</span>
|
1671
|
+
- <span style="background-color:#fff0f0;color:#D20">doc/api/all-namespaces.html</span>
|
1672
|
+
- <span style="background-color:#fff0f0;color:#D20">doc/theory.erb</span>
|
1673
|
+
<span style="color:#808">has_rdoc</span>: <span style="background-color:#fff0f0;color:#D20">true</span>
|
1674
|
+
<span style="color:#808">homepage</span>: <span style="background-color:#fff0f0;color:#D20">http://word_count.rubyforge.org</span>
|
1675
|
+
<span style="color:#808">post_install_message</span>:
|
1676
|
+
<span style="color:#808">rdoc_options</span>: <span style="background-color:#fff0f0;color:#D20">[]</span>
|
1677
|
+
|
1678
|
+
<span style="color:#808">require_paths</span>:
|
1679
|
+
- <span style="background-color:#fff0f0;color:#D20">lib</span>
|
1680
|
+
<span style="color:#808">required_ruby_version</span>: <span style="color:#339;font-weight:bold">!ruby/object</span>:<span style="color:#B06;font-weight:bold">Gem::Requirement</span>
|
1681
|
+
<span style="color:#808">requirements</span>:
|
1682
|
+
- <span style="background-color:#fff0f0;color:#D20">- ">="</span>
|
1683
|
+
- <span style="color:#339;font-weight:bold">!ruby/object</span>:<span style="color:#B06;font-weight:bold">Gem::Version</span>
|
1684
|
+
<span style="color:#808">version</span>: <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">0</span><span style="color:#710">"</span></span>
|
1685
|
+
<span style="color:#808">version</span>:
|
1686
|
+
<span style="color:#808">required_rubygems_version</span>: <span style="color:#339;font-weight:bold">!ruby/object</span>:<span style="color:#B06;font-weight:bold">Gem::Requirement</span>
|
1687
|
+
<span style="color:#808">requirements</span>:
|
1688
|
+
- <span style="background-color:#fff0f0;color:#D20">- ">="</span>
|
1689
|
+
- <span style="color:#339;font-weight:bold">!ruby/object</span>:<span style="color:#B06;font-weight:bold">Gem::Version</span>
|
1690
|
+
<span style="color:#808">version</span>: <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">0</span><span style="color:#710">"</span></span>
|
1691
|
+
<span style="color:#808">version</span>:
|
1692
|
+
<span style="color:#808">requirements</span>: <span style="background-color:#fff0f0;color:#D20">[]</span>
|
1693
|
+
|
1694
|
+
<span style="color:#808">rubyforge_project</span>: <span style="background-color:#fff0f0;color:#D20">word_count</span>
|
1695
|
+
<span style="color:#808">rubygems_version</span>: <span style="background-color:#fff0f0;color:#D20">1.3.1</span>
|
1696
|
+
<span style="color:#808">signing_key</span>:
|
1697
|
+
<span style="color:#808">specification_version</span>: <span style="background-color:#fff0f0;color:#D20">2</span>
|
1698
|
+
<span style="color:#808">summary</span>: <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">TODO: put a single line description of your project here.</span><span style="color:#710">"</span></span>
|
1699
|
+
<span style="color:#808">test_files</span>: <span style="background-color:#fff0f0;color:#D20">[]</span></pre></pre></p></div>
|
1700
|
+
</div> <div class="section">
|
1701
|
+
<a name="Publish-a-RubyGem"/><div class="nav" id="Publish-a-RubyGem"><a title="Reverse jump to listing" href="#rev:Publish-a-RubyGem">≡</a><a title="Jump to previous segment" href="#Build-a-RubyGem">△</a><a title="Jump to next segment" href="#Announce-a-release">▽</a><a title="Jump to this segment" href="#Publish-a-RubyGem">◎</a></div>
|
1702
|
+
<h4 class="title">
|
1703
|
+
3.3.6.2 Publish a RubyGem
|
1704
|
+
</h4>
|
1705
|
+
<div class="content"><p>You must first register your project on <a href='http://rubyforge.org'>RubyForge</a> before you can publish a RubyGem. If your RubyForge project name is different from your actual project name, then you should pass the <code class="code"><span style="color:#A60">:rubyforge_project</span></code> and <code class="code"><span style="color:#A60">:rubyforge_section</span></code> options to the <a href='api/Inochi.html#rake-class_method'><code class="code"><span style="color:#036;font-weight:bold">Inochi</span>.rake()</code> method</a>).</p>
|
1706
|
+
|
1707
|
+
<p>Publish a RubyGem by running:</p>
|
1708
|
+
|
1709
|
+
<p><pre># rake pub:pak</pre></p></div>
|
1710
|
+
</div> <div class="section">
|
1711
|
+
<a name="Announce-a-release"/><div class="nav" id="Announce-a-release"><a title="Reverse jump to listing" href="#rev:Announce-a-release">≡</a><a title="Jump to previous segment" href="#Publish-a-RubyGem">△</a><a title="Jump to next segment" href="#Login-information">▽</a><a title="Jump to this segment" href="#Announce-a-release">◎</a></div>
|
1712
|
+
<h4 class="title">
|
1713
|
+
3.3.6.3 Announce a release
|
1714
|
+
</h4>
|
1715
|
+
<div class="content"><p>You must first provide your <a class="xref" href="#Login-information">Paragraph. Login information</a> to <strong>Inochi</strong>. If you do not want to do this, then see <a class="xref" href="#Manual-release-announcement">Section 3.3.6.3.1. Manual release announcement</a>.</p>
|
1716
|
+
|
1717
|
+
<p>Announce a release by running:</p>
|
1718
|
+
|
1719
|
+
<p><pre># rake pub:ann</pre></p>
|
1720
|
+
|
1721
|
+
<p><div class="paragraph">
|
1722
|
+
<a name="Login-information"/><div class="nav" id="Login-information"><a title="Reverse jump to listing" href="#rev:Login-information">≡</a><a title="Jump to previous segment" href="#Announce-a-release">△</a><a title="Jump to next segment" href="#Manual-release-announcement">▽</a><a title="Jump to this segment" href="#Login-information">◎</a></div>
|
1723
|
+
<p class="title">Login information</p>
|
1724
|
+
<div class="content"><p>In order to automate the announcement of releases, <strong>Inochi</strong> needs to know your login information for the <a href='http://raa.ruby-lang.org'>RAA (Ruby Application Archive)</a> and <a href='http://www.ruby-forum.com/forum/4'>RubyForum</a>, which serves as a gateway to the <a href='http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/'>ruby-talk mailing list</a>.</p>
|
1725
|
+
|
1726
|
+
<p>This information is expected to be stored in a <tt>~/.config/inochi/logins.yaml</tt> file (this location can be overridden by passing the <code class="code"><span style="color:#A60">:logins_file</span></code> option to the <a href='api/Inochi.html#rake-class_method'><code class="code"><span style="color:#036;font-weight:bold">Inochi</span>.rake()</code> method</a>), where <tt>~</tt> denotes the path to your home directory. This file is a <a href='http://www.yaml.org'>YAML</a> document containing the following parameters:</p>
|
1727
|
+
|
1728
|
+
<p><pre class="code" lang="yaml"><span style="color:#F00;background-color:#FAA">www.ruby-forum.com</span>:
|
1729
|
+
<span style="color:#808">user</span>: <span style="background-color:#fff0f0;color:#D20">YOUR_USERNAME_HERE</span>
|
1730
|
+
<span style="color:#808">pass</span>: <span style="background-color:#fff0f0;color:#D20">YOUR_PASSWORD_HERE</span>
|
1731
|
+
|
1732
|
+
<span style="color:#F00;background-color:#FAA">raa.ruby-lang.org</span>:
|
1733
|
+
<span style="color:#808">pass</span>: <span style="background-color:#fff0f0;color:#D20">YOUR_PASSWORD_HERE</span>
|
1734
|
+
</pre></p>
|
1735
|
+
|
1736
|
+
<p>For better security, you should ensure that this file is only readable and writable by you and is not accessible by anyone else. In a UNIX environment, this can be accomplished by running the following command:</p>
|
1737
|
+
|
1738
|
+
<pre># chmod 0600 ~/.config/inochi/logins.yaml</pre></div>
|
1739
|
+
</div> <div class="section">
|
1740
|
+
<a name="Manual-release-announcement"/><div class="nav" id="Manual-release-announcement"><a title="Reverse jump to listing" href="#rev:Manual-release-announcement">≡</a><a title="Jump to previous segment" href="#Login-information">△</a><a title="Jump to next segment" href="#Publish-the-documentation">▽</a><a title="Jump to this segment" href="#Manual-release-announcement">◎</a></div>
|
1741
|
+
<h5 class="title">
|
1742
|
+
3.3.6.3.1 Manual release announcement
|
1743
|
+
</h5>
|
1744
|
+
<div class="content"><p>Build release announcements by running:</p>
|
1745
|
+
|
1746
|
+
<p><pre># rake ann
|
1747
|
+
(in /tmp/Inochi20090119-16887-1m6j3hx-0/word_count)
|
1748
|
+
</pre></p>
|
1749
|
+
|
1750
|
+
<p>This produces the following files in your project directory:</p>
|
1751
|
+
|
1752
|
+
<ul>
|
1753
|
+
<li><tt>ANN.eml</tt></li>
|
1754
|
+
|
1755
|
+
<li><tt>ANN.html</tt></li>
|
1756
|
+
|
1757
|
+
<li><tt>ANN.txt</tt></li>
|
1758
|
+
</ul>
|
1759
|
+
|
1760
|
+
<p>Now you can manually announce your release using these files.</p></div>
|
1761
|
+
</div></p></div>
|
1762
|
+
</div> <div class="section">
|
1763
|
+
<a name="Publish-the-documentation"/><div class="nav" id="Publish-the-documentation"><a title="Reverse jump to listing" href="#rev:Publish-the-documentation">≡</a><a title="Jump to previous segment" href="#Manual-release-announcement">△</a><a title="Jump to next segment" href="#history">▽</a><a title="Jump to this segment" href="#Publish-the-documentation">◎</a></div>
|
1764
|
+
<h4 class="title">
|
1765
|
+
3.3.6.4 Publish the documentation
|
1766
|
+
</h4>
|
1767
|
+
<div class="content"><p>Publish the user manual and API documentation by running:</p>
|
1768
|
+
|
1769
|
+
<p><pre># rake pub:doc</pre></p>
|
1770
|
+
|
1771
|
+
<p>If your documentation website (see the <code class="code"><span style="color:#A60">:docsite</span></code> option for the <a href='api/Inochi.html#init-class_method'><code class="code"><span style="color:#036;font-weight:bold">Inochi</span>.init()</code> method</a>) is hosted on RubyForge, then the above command will automatically upload your project’s documentation to the correct place.</p></div>
|
1772
|
+
</div></p></div>
|
1773
|
+
</div></p></div>
|
1774
|
+
</div></p></div>
|
1775
|
+
</div><div class="chapter">
|
1776
|
+
<a name="history"/><div class="nav" id="history"><a title="Reverse jump to listing" href="#rev:history">≡</a><a title="Jump to previous segment" href="#Publish-the-documentation">△</a><a title="Jump to next segment" href="#Version-0.0.1-2009-01-13">▽</a><a title="Jump to this segment" href="#history">◎</a></div>
|
1777
|
+
<h1 class="title">
|
1778
|
+
Chapter 4
|
1779
|
+
<br/>
|
1780
|
+
<big>History</big>
|
1781
|
+
</h1>
|
1782
|
+
<div class="content"><p><p><div class="section">
|
1783
|
+
<a name="Version-0.0.1-2009-01-13"/><div class="nav" id="Version-0.0.1-2009-01-13"><a title="Reverse jump to listing" href="#rev:Version-0.0.1-2009-01-13">≡</a><a title="Jump to previous segment" href="#history">△</a>▽<a title="Jump to this segment" href="#Version-0.0.1-2009-01-13">◎</a></div>
|
1784
|
+
<h2 class="title">
|
1785
|
+
4.1 Version 0.0.1 (2009-01-13)
|
1786
|
+
</h2>
|
1787
|
+
<div class="content"><p>This is the first release of <strong>Inochi</strong>.</p>
|
1788
|
+
|
1789
|
+
<p>Happy birthday!</p></div>
|
1790
|
+
</div></p></p></div>
|
1791
|
+
</div></div>
|
1792
|
+
|
1793
|
+
|
1794
|
+
<br style="display: none"/>
|
1795
|
+
<hr style="display: none"/>
|
1796
|
+
<br style="display: none"/>
|
1797
|
+
|
1798
|
+
|
1799
|
+
<div id="footer">
|
1800
|
+
|
1801
|
+
Generated by <a href="http://snk.tuxfamily.org/lib/erbook/">ERBook 6.0.0</a> on Mon Jan 19 04:46:16 -0800 2009.
|
1802
|
+
|
1803
|
+
<div id="footer-credits">
|
1804
|
+
<p>
|
1805
|
+
<img class="icon" src="&icon_caution;" alt="caution"/>
|
1806
|
+
<img class="icon" src="&icon_tip;" alt="tip"/>
|
1807
|
+
<img class="icon" src="&icon_important;" alt="important"/>
|
1808
|
+
<img class="icon" src="&icon_note;" alt="note"/>
|
1809
|
+
<img class="icon" src="&icon_warning;" alt="warning"/>
|
1810
|
+
<img class="icon" src="&icon_quote;" alt="quote"/>
|
1811
|
+
|
1812
|
+
<br/>
|
1813
|
+
|
1814
|
+
The icons shown above are © 2005 <a href="http://tango.freedesktop.org">Tango Desktop Project</a>. They are part of the <a href="http://tango.freedesktop.org/Tango_Icon_Library">Tango Icon Theme</a> set, which is distributed under the <a href="http://creativecommons.org/licenses/by-sa/2.5/">Creative Commons Attribution-ShareAlike 2.5 License Agreement</a>.
|
1815
|
+
</p>
|
1816
|
+
|
1817
|
+
<p>
|
1818
|
+
<img class="icon" src="&icon_link;" alt="link"/>
|
1819
|
+
|
1820
|
+
<br/>
|
1821
|
+
|
1822
|
+
The icons shown above are © 2007 <a href="https://www.ohloh.net/projects/mediawiki/contributors">MediaWiki contributors</a>. They are part of the <a href="http://www.mediawiki.org/wiki/MediaWiki">MediaWiki</a> software, which is distributed under the <a href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html">GNU General Public License, version 2</a>.
|
1823
|
+
</p>
|
1824
|
+
</div>
|
1825
|
+
|
1826
|
+
</div>
|
1827
|
+
|
1828
|
+
</div>
|
1829
|
+
</body>
|
1830
|
+
</html>
|