inochi 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
+ });
@@ -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,{}))
@@ -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 &lt;sunaku@gmail.com&gt;
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 &quot;AS IS&quot; 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
@@ -0,0 +1,9 @@
1
+ <% chapter "History", "history" do %>
2
+ <% project_history do %>
3
+ <% section "Version 0.0.1 (2009-01-13)" do %>
4
+ This is the first release of **<%= $project %>**.
5
+
6
+ Happy birthday!
7
+ <% end %>
8
+ <% end %>
9
+ <% end %>
data/doc/index.erb ADDED
@@ -0,0 +1,6 @@
1
+ <% Inochi.book :Inochi, self %>
2
+
3
+ <%# include intro.erb #%>
4
+ <%# include setup.erb #%>
5
+ <%# include usage.erb #%>
6
+ <%# include history.erb #%>
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,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">
5
+ <!ENTITY icon_tip "data:image/png;base64,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">
6
+ <!ENTITY icon_important "data:image/png;base64,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">
7
+ <!ENTITY icon_note "data:image/png;base64,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">
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 : "★"; /* &#x2605; */
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,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");
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">&equiv;</a>&#x25B3;&#x25BD;<a title="Jump to this segment" href="#Contents">&#x25CE;</a></div>
664
+ <h1 class="title">Contents</h1>
665
+ <ul>
666
+ <li>1&nbsp;&nbsp;<a id="rev:Introduction" href="#Introduction">Introduction</a><ul><li><a id="rev:Etymology" href="#Etymology">Etymology</a></li><li>1.1&nbsp;&nbsp;<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&nbsp;&nbsp;<a id="rev:License" href="#License">License</a></li><li>1.3&nbsp;&nbsp;<a id="rev:Credits" href="#Credits">Credits</a></li></ul></li><li>2&nbsp;&nbsp;<a id="rev:Setup" href="#Setup">Setup</a><ul><li>2.1&nbsp;&nbsp;<a id="rev:Requirements" href="#Requirements">Requirements</a></li><li>2.2&nbsp;&nbsp;<a id="rev:Installation" href="#Installation">Installation</a></li><li>2.3&nbsp;&nbsp;<a id="rev:Manifest" href="#Manifest">Manifest</a></li></ul></li><li>3&nbsp;&nbsp;<a id="rev:Usage" href="#Usage">Usage</a><ul><li>3.1&nbsp;&nbsp;<a id="rev:Command-line-interface" href="#Command-line-interface">Command-line interface</a></li><li>3.2&nbsp;&nbsp;<a id="rev:Ruby-library-interface" href="#Ruby-library-interface">Ruby library interface</a></li><li>3.3&nbsp;&nbsp;<a id="rev:Tutorial" href="#Tutorial">Tutorial</a><ul><li>3.3.1&nbsp;&nbsp;<a id="rev:Have-a-brilliant-idea" href="#Have-a-brilliant-idea">Have a brilliant idea</a></li><li>3.3.2&nbsp;&nbsp;<a id="rev:Generate-your-project" href="#Generate-your-project">Generate your project</a></li><li>3.3.3&nbsp;&nbsp;<a id="rev:Configure-your-project" href="#Configure-your-project">Configure your project</a><ul><li>3.3.3.1&nbsp;&nbsp;<a id="rev:Project-information" href="#Project-information">Project information</a></li><li>3.3.3.2&nbsp;&nbsp;<a id="rev:Project-executable" href="#Project-executable">Project executable</a></li><li>3.3.3.3&nbsp;&nbsp;<a id="rev:Rake-tasks" href="#Rake-tasks">Rake tasks</a></li><li>3.3.3.4&nbsp;&nbsp;<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&nbsp;&nbsp;<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&nbsp;&nbsp;<a id="rev:Test-your-project" href="#Test-your-project">Test your project</a></li><li>3.3.6&nbsp;&nbsp;<a id="rev:Publish-your-project" href="#Publish-your-project">Publish your project</a><ul><li>3.3.6.1&nbsp;&nbsp;<a id="rev:Build-a-RubyGem" href="#Build-a-RubyGem">Build a RubyGem</a></li><li>3.3.6.2&nbsp;&nbsp;<a id="rev:Publish-a-RubyGem" href="#Publish-a-RubyGem">Publish a RubyGem</a></li><li>3.3.6.3&nbsp;&nbsp;<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&nbsp;&nbsp;<a id="rev:Manual-release-announcement" href="#Manual-release-announcement">Manual release announcement</a></li></ul></li><li>3.3.6.4&nbsp;&nbsp;<a id="rev:Publish-the-documentation" href="#Publish-the-documentation">Publish the documentation</a></li></ul></li></ul></li></ul></li><li>4&nbsp;&nbsp;<a id="rev:history" href="#history">History</a><ul><li>4.1&nbsp;&nbsp;<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">&equiv;</a>&#x25B3;&#x25BD;<a title="Jump to this segment" href="#Tips">&#x25CE;</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">&equiv;</a>&#x25B3;<a title="Jump to next segment" href="#Etymology">&#x25BD;</a><a title="Jump to this segment" href="#Introduction">&#x25CE;</a></div>
680
+ <h1 class="title">
681
+ Chapter&nbsp;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&#8217;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&#8217;s libraries.</li>
703
+
704
+ <li>Keeps your project&#8217;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">&equiv;</a><a title="Jump to previous segment" href="#Introduction">&#x25B3;</a><a title="Jump to next segment" href="#Logistics">&#x25BD;</a><a title="Jump to this segment" href="#Etymology">&#x25CE;</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 &#8220;inochi&#8221;, 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">&equiv;</a><a title="Jump to previous segment" href="#Etymology">&#x25B3;</a><a title="Jump to next segment" href="#Version-numbers">&#x25BD;</a><a title="Jump to this segment" href="#Logistics">&#x25CE;</a></div>
749
+ <h2 class="title">
750
+ 1.1&nbsp;&nbsp;Logistics
751
+ </h2>
752
+ <div class="content"><ul>
753
+ <li><a class="xref" href="#history" title="Chapter 4. History">Release notes</a> &#8212; history of project releases.</li>
754
+
755
+ <li><a href='http://github.com/sunaku/inochi'>Source code</a> &#8212; 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> &#8212; documentation for source code.</li>
758
+
759
+ <li><a href='http://snk.tuxfamily.org/lib/inochi'>Project home</a> &#8212; 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">&equiv;</a><a title="Jump to previous segment" href="#Logistics">&#x25B3;</a><a title="Jump to next segment" href="#License">&#x25BD;</a><a title="Jump to this segment" href="#Version-numbers">&#x25CE;</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">&equiv;</a><a title="Jump to previous segment" href="#Version-numbers">&#x25B3;</a><a title="Jump to next segment" href="#Credits">&#x25BD;</a><a title="Jump to this segment" href="#License">&#x25CE;</a></div>
804
+ <h2 class="title">
805
+ 1.2&nbsp;&nbsp;License
806
+ </h2>
807
+ <div class="content"><p>Copyright 2008 Suraj N. Kurapati <a href='mailto:sunaku@gmail.com'>&#115;&#117;&#110;&#097;&#107;&#117;&#064;&#103;&#109;&#097;&#105;&#108;&#046;&#099;&#111;&#109;</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 &#8220;AS IS&#8221; 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">&equiv;</a><a title="Jump to previous segment" href="#License">&#x25B3;</a><a title="Jump to next segment" href="#Setup">&#x25BD;</a><a title="Jump to this segment" href="#Credits">&#x25CE;</a></div>
814
+ <h2 class="title">
815
+ 1.3&nbsp;&nbsp;Credits
816
+ </h2>
817
+ <div class="content"><img src='inochi.png' alt='project logo' />
818
+ <p>The &#8220;inochi.png&#8221; image and its &#8220;inochi.svg&#8221; source utilize the <a href='http://openclipart.org/media/files/Peileppe/8978'>&#8220;3 flowers&#8221;</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">&equiv;</a><a title="Jump to previous segment" href="#Credits">&#x25B3;</a><a title="Jump to next segment" href="#Requirements">&#x25BD;</a><a title="Jump to this segment" href="#Setup">&#x25CE;</a></div>
823
+ <h1 class="title">
824
+ Chapter&nbsp;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">&equiv;</a><a title="Jump to previous segment" href="#Setup">&#x25B3;</a><a title="Jump to next segment" href="#Installation">&#x25BD;</a><a title="Jump to this segment" href="#Requirements">&#x25CE;</a></div>
830
+ <h2 class="title">
831
+ 2.1&nbsp;&nbsp;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">&equiv;</a><a title="Jump to previous segment" href="#Requirements">&#x25B3;</a><a title="Jump to next segment" href="#Manifest">&#x25BD;</a><a title="Jump to this segment" href="#Installation">&#x25CE;</a></div>
840
+ <h2 class="title">
841
+ 2.2&nbsp;&nbsp;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">&equiv;</a><a title="Jump to previous segment" href="#Installation">&#x25B3;</a><a title="Jump to next segment" href="#Usage">&#x25BD;</a><a title="Jump to this segment" href="#Manifest">&#x25CE;</a></div>
862
+ <h2 class="title">
863
+ 2.3&nbsp;&nbsp;Manifest
864
+ </h2>
865
+ <div class="content"><p>You will see the following items inside <strong>Inochi</strong>&#8217;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> &#8212; 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> &#8212; 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> &#8212; API reference documentation.</p>
892
+ </li>
893
+
894
+ <li>
895
+ <p><tt>index.erb</tt> &#8212; source of this user manual.</p>
896
+ </li>
897
+ </ul>
898
+ </li>
899
+
900
+ <li>
901
+ <p><tt>LICENSE</tt> &#8212; 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">&equiv;</a><a title="Jump to previous segment" href="#Manifest">&#x25B3;</a><a title="Jump to next segment" href="#Command-line-interface">&#x25BD;</a><a title="Jump to this segment" href="#Usage">&#x25CE;</a></div>
907
+ <h1 class="title">
908
+ Part&nbsp;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">&equiv;</a><a title="Jump to previous segment" href="#Usage">&#x25B3;</a><a title="Jump to next segment" href="#Merging-files-with-kdiff3">&#x25BD;</a><a title="Jump to this segment" href="#Command-line-interface">&#x25CE;</a></div>
914
+ <h2 class="title">
915
+ 3.1&nbsp;&nbsp;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 &quot;--merger&quot; 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 &lt;s&gt;: 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">&equiv;</a><a title="Jump to previous segment" href="#Command-line-interface">&#x25B3;</a><a title="Jump to next segment" href="#Ruby-library-interface">&#x25BD;</a><a title="Jump to this segment" href="#Merging-files-with-kdiff3">&#x25CE;</a></div>
953
+ <p class="title">Tip 1.&nbsp;&nbsp;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 &quot;$old_file&quot; &quot;$new_file&quot; --output &quot;$output_file&quot;</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">&equiv;</a><a title="Jump to previous segment" href="#Merging-files-with-kdiff3">&#x25B3;</a><a title="Jump to next segment" href="#Tutorial">&#x25BD;</a><a title="Jump to this segment" href="#Ruby-library-interface">&#x25CE;</a></div>
998
+ <h2 class="title">
999
+ 3.2&nbsp;&nbsp;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&#8217;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&#8217;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&#8217;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&#8217;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">&equiv;</a><a title="Jump to previous segment" href="#Ruby-library-interface">&#x25B3;</a><a title="Jump to next segment" href="#Have-a-brilliant-idea">&#x25BD;</a><a title="Jump to this segment" href="#Tutorial">&#x25CE;</a></div>
1014
+ <h2 class="title">
1015
+ 3.3&nbsp;&nbsp;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">&equiv;</a><a title="Jump to previous segment" href="#Tutorial">&#x25B3;</a><a title="Jump to next segment" href="#Generate-your-project">&#x25BD;</a><a title="Jump to this segment" href="#Have-a-brilliant-idea">&#x25CE;</a></div>
1021
+ <h3 class="title">
1022
+ 3.3.1&nbsp;&nbsp;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>&#8212;</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>&#8212; you think,</p>
1037
+
1038
+ <blockquote>
1039
+ <p>What am I doing to myself?</p>
1040
+
1041
+ <p>I&#8217;ve got to get <em>outside</em>.</p>
1042
+
1043
+ <p>I&#8217;ve got to get <em>away</em>&#8230;</p>
1044
+
1045
+ <p>Away from this computer&#8230; this&#8230; 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&#8217;s eye as your thoughts fade&#8230;</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&#8217;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&#8217;t much time. What can you do? Let&#8217;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">&equiv;</a><a title="Jump to previous segment" href="#Have-a-brilliant-idea">&#x25B3;</a><a title="Jump to next segment" href="#Configure-your-project">&#x25BD;</a><a title="Jump to this segment" href="#Generate-your-project">&#x25CE;</a></div>
1073
+ <h3 class="title">
1074
+ 3.3.2&nbsp;&nbsp;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=&gt;false, :version=&gt;false, :manual=&gt;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 &amp; 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&gt;/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">&equiv;</a><a title="Jump to previous segment" href="#Generate-your-project">&#x25B3;</a><a title="Jump to next segment" href="#Project-information">&#x25BD;</a><a title="Jump to this segment" href="#Configure-your-project">&#x25CE;</a></div>
1161
+ <h3 class="title">
1162
+ 3.3.3&nbsp;&nbsp;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">&equiv;</a><a title="Jump to previous segment" href="#Configure-your-project">&#x25B3;</a><a title="Jump to next segment" href="#Project-executable">&#x25BD;</a><a title="Jump to this segment" href="#Project-information">&#x25CE;</a></div>
1168
+ <h4 class="title">
1169
+ 3.3.3.1&nbsp;&nbsp;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 &lt;your@email.here&gt;
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 &quot;AS IS&quot; 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="">~&gt; 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> =&gt; <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> =&gt; <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> =&gt; <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> =&gt; <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> =&gt; <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> =&gt; {
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' =&gt; '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' =&gt; 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">&equiv;</a><a title="Jump to previous segment" href="#Project-information">&#x25B3;</a><a title="Jump to next segment" href="#Rake-tasks">&#x25BD;</a><a title="Jump to this segment" href="#Project-executable">&#x25CE;</a></div>
1214
+ <h4 class="title">
1215
+ 3.3.3.2&nbsp;&nbsp;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="">~&gt; 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">&quot;</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">&quot;</span></span>
1242
+ puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</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">&quot;</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">&equiv;</a><a title="Jump to previous segment" href="#Project-executable">&#x25B3;</a><a title="Jump to next segment" href="#User-manual">&#x25BD;</a><a title="Jump to this segment" href="#Rake-tasks">&#x25CE;</a></div>
1247
+ <h4 class="title">
1248
+ 3.3.3.3&nbsp;&nbsp;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="">~&gt; 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">&equiv;</a><a title="Jump to previous segment" href="#Rake-tasks">&#x25B3;</a><a title="Jump to next segment" href="#doc-index.erb">&#x25BD;</a><a title="Jump to this segment" href="#User-manual">&#x25CE;</a></div>
1267
+ <h4 class="title">
1268
+ 3.3.3.4&nbsp;&nbsp;User manual
1269
+ </h4>
1270
+ <div class="content"><p>The user manual&#8217;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&#8217;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">&equiv;</a><a title="Jump to previous segment" href="#User-manual">&#x25B3;</a><a title="Jump to next segment" href="#doc-intro.erb">&#x25BD;</a><a title="Jump to this segment" href="#doc-index.erb">&#x25CE;</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">&lt;%</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">%&gt;</span></span>
1278
+
1279
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span><span style="color:#666"># include intro.erb #</span><span style="font-weight:bold;color:#888">%&gt;</span></span>
1280
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span><span style="color:#666"># include setup.erb #</span><span style="font-weight:bold;color:#888">%&gt;</span></span>
1281
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span><span style="color:#666"># include theory.erb #</span><span style="font-weight:bold;color:#888">%&gt;</span></span>
1282
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span><span style="color:#666"># include usage.erb #</span><span style="font-weight:bold;color:#888">%&gt;</span></span>
1283
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span><span style="color:#666"># include history.erb #</span><span style="font-weight:bold;color:#888">%&gt;</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">&equiv;</a><a title="Jump to previous segment" href="#doc-index.erb">&#x25B3;</a><a title="Jump to next segment" href="#doc-setup.erb">&#x25BD;</a><a title="Jump to this segment" href="#doc-intro.erb">&#x25CE;</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">&lt;%</span> chapter <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Introduction</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1289
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> project_summary <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1290
+ <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: explain the purpose of your project
1291
+
1292
+ ****<span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>**** is a __________ that __________.
1293
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1294
+
1295
+ <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: explain why your project is important
1296
+
1297
+ **<span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%&gt;</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">&gt;</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">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%&gt;</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">&lt;%</span> paragraph <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Etymology</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1310
+ <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: explain the meaning of the name of your project
1311
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1312
+
1313
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Logistics</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1314
+ * <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> xref <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">History</span><span style="color:#710">&quot;</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Release notes</span><span style="color:#710">&quot;</span></span> <span style="font-weight:bold;color:#888">%&gt;</span></span> --- history of project releases.
1315
+ * [Source code](http://github.com/sun/<span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#888">%&gt;</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">&lt;%=</span> xref <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">License</span><span style="color:#710">&quot;</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">contact the author(s)</span><span style="color:#710">&quot;</span></span> <span style="font-weight:bold;color:#888">%&gt;</span></span>.
1320
+
1321
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> paragraph <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Version numbers</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1322
+ **<span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%&gt;</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">&lt;table</span> <span style="color:#007">markdown</span>=<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">1</span><span style="color:#710">&quot;</span></span><span style="color:#070">&gt;</span>
1328
+ <span style="color:#070">&lt;thead&gt;</span>
1329
+ <span style="color:#070">&lt;tr&gt;</span>
1330
+ <span style="color:#070">&lt;td</span> <span style="color:#007">rowspan</span>=<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">2</span><span style="color:#710">&quot;</span></span><span style="color:#070">&gt;</span>What increased in the version number?<span style="color:#070">&lt;/td&gt;</span>
1331
+ <span style="color:#070">&lt;td</span> <span style="color:#007">colspan</span>=<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">3</span><span style="color:#710">&quot;</span></span><span style="color:#070">&gt;</span>The increase indicates that the release:<span style="color:#070">&lt;/td&gt;</span>
1332
+ <span style="color:#070">&lt;/tr&gt;</span>
1333
+ <span style="color:#070">&lt;tr&gt;</span>
1334
+ <span style="color:#070">&lt;th&gt;</span>Is backward compatible?<span style="color:#070">&lt;/th&gt;</span>
1335
+ <span style="color:#070">&lt;th&gt;</span>Has new features?<span style="color:#070">&lt;/th&gt;</span>
1336
+ <span style="color:#070">&lt;th&gt;</span>Has bug fixes?<span style="color:#070">&lt;/th&gt;</span>
1337
+ <span style="color:#070">&lt;/tr&gt;</span>
1338
+ <span style="color:#070">&lt;/thead&gt;</span>
1339
+ <span style="color:#070">&lt;tbody&gt;</span>
1340
+ <span style="color:#070">&lt;tr&gt;</span>
1341
+ <span style="color:#070">&lt;th&gt;</span>major<span style="color:#070">&lt;/th&gt;</span>
1342
+ <span style="color:#070">&lt;td</span> <span style="color:#007">style</span>=<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">background-color: #FFE4E1;</span><span style="color:#710">&quot;</span></span><span style="color:#070">&gt;</span>No<span style="color:#070">&lt;/td&gt;</span>
1343
+ <span style="color:#070">&lt;td&gt;</span>Yes<span style="color:#070">&lt;/td&gt;</span>
1344
+ <span style="color:#070">&lt;td&gt;</span>Yes<span style="color:#070">&lt;/td&gt;</span>
1345
+ <span style="color:#070">&lt;/tr&gt;</span>
1346
+ <span style="color:#070">&lt;tr&gt;</span>
1347
+ <span style="color:#070">&lt;th&gt;</span>minor<span style="color:#070">&lt;/th&gt;</span>
1348
+ <span style="color:#070">&lt;td&gt;</span>Yes<span style="color:#070">&lt;/td&gt;</span>
1349
+ <span style="color:#070">&lt;td&gt;</span>Yes<span style="color:#070">&lt;/td&gt;</span>
1350
+ <span style="color:#070">&lt;td&gt;</span>Yes<span style="color:#070">&lt;/td&gt;</span>
1351
+ <span style="color:#070">&lt;/tr&gt;</span>
1352
+ <span style="color:#070">&lt;tr&gt;</span>
1353
+ <span style="color:#070">&lt;th&gt;</span>patch<span style="color:#070">&lt;/th&gt;</span>
1354
+ <span style="color:#070">&lt;td&gt;</span>Yes<span style="color:#070">&lt;/td&gt;</span>
1355
+ <span style="color:#070">&lt;td</span> <span style="color:#007">style</span>=<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">background-color: #FFE4E1;</span><span style="color:#710">&quot;</span></span><span style="color:#070">&gt;</span>No<span style="color:#070">&lt;/td&gt;</span>
1356
+ <span style="color:#070">&lt;td&gt;</span>Yes<span style="color:#070">&lt;/td&gt;</span>
1357
+ <span style="color:#070">&lt;/tr&gt;</span>
1358
+ <span style="color:#070">&lt;/tbody&gt;</span>
1359
+ <span style="color:#070">&lt;/table&gt;</span>
1360
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1361
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1362
+
1363
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">License</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1364
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span><span style="color:#666"># include ../LICENSE #</span><span style="font-weight:bold;color:#888">%&gt;</span></span>
1365
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1366
+
1367
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Credits</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1368
+ <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: give attribution to your predecessors and contributors
1369
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1370
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</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">&equiv;</a><a title="Jump to previous segment" href="#doc-intro.erb">&#x25B3;</a><a title="Jump to next segment" href="#doc-theory.erb">&#x25BD;</a><a title="Jump to this segment" href="#doc-setup.erb">&#x25CE;</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">&lt;%</span> chapter <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Setup</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1376
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Requirements</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1377
+ Your system needs the following software to run **<span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%&gt;</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">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1384
+
1385
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Installation</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1386
+ You can install **<span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>** by running this command:
1387
+
1388
+ gem install <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#888">%&gt;</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">&lt;%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#888">%&gt;</span></span> --version
1393
+
1394
+ If the installation was successful, you will see output like this:
1395
+
1396
+ <span style="color:#070">&lt;pre&gt;</span><span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</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">%&gt;</span></span><span style="color:#070">&lt;/pre&gt;</span>
1397
+
1398
+ If you do not see such output, you may
1399
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> xref <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">License</span><span style="color:#710">&quot;</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">ask the author(s)</span><span style="color:#710">&quot;</span></span> <span style="font-weight:bold;color:#888">%&gt;</span></span> for help.
1400
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1401
+
1402
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Manifest</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1403
+ You will see the following items inside **<span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%&gt;</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">&lt;%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#888">%&gt;</span></span> --version
1407
+
1408
+ <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: list important files your project provides here
1409
+
1410
+ * <span style="color:#070">&lt;tt&gt;</span>bin/<span style="color:#070">&lt;/tt&gt;</span>
1411
+
1412
+ * <span style="color:#070">&lt;tt&gt;</span><span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#888">%&gt;</span></span><span style="color:#070">&lt;/tt&gt;</span> --- the main **<span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>** executable.
1413
+
1414
+ * <span style="color:#070">&lt;tt&gt;</span>lib/<span style="color:#070">&lt;/tt&gt;</span>
1415
+
1416
+ * <span style="color:#070">&lt;tt&gt;</span><span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>.rb<span style="color:#070">&lt;/tt&gt;</span> --- the main **<span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>** library.
1417
+
1418
+ * <span style="color:#070">&lt;tt&gt;</span><span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>/<span style="color:#070">&lt;/tt&gt;</span>
1419
+
1420
+ <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: list sub-libraries your project provides here
1421
+
1422
+ * <span style="color:#070">&lt;tt&gt;</span>doc/<span style="color:#070">&lt;/tt&gt;</span>
1423
+
1424
+ * <span style="color:#070">&lt;tt&gt;</span>api/<span style="color:#070">&lt;/tt&gt;</span> --- API reference documentation.
1425
+
1426
+ * <span style="color:#070">&lt;tt&gt;</span>index.erb<span style="color:#070">&lt;/tt&gt;</span> --- source of this user manual.
1427
+
1428
+ * <span style="color:#070">&lt;tt&gt;</span>LICENSE<span style="color:#070">&lt;/tt&gt;</span> --- copyright notice and legal conditions.
1429
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1430
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</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">&equiv;</a><a title="Jump to previous segment" href="#doc-setup.erb">&#x25B3;</a><a title="Jump to next segment" href="#doc-usage.erb">&#x25BD;</a><a title="Jump to this segment" href="#doc-theory.erb">&#x25CE;</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">&lt;%</span> chapter <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Theory of operation</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1436
+ <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: explain how your project does what it does
1437
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</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">&equiv;</a><a title="Jump to previous segment" href="#doc-theory.erb">&#x25B3;</a><a title="Jump to next segment" href="#doc-history.erb">&#x25BD;</a><a title="Jump to this segment" href="#doc-usage.erb">&#x25CE;</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">&lt;%</span> chapter <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Usage</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1443
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Command-line interface</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1444
+ When you run this command:
1445
+
1446
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#888">%&gt;</span></span> --help
1447
+
1448
+ You will see this output:
1449
+
1450
+ <span style="color:#070">&lt;pre&gt;</span><span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</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">%&gt;</span></span><span style="color:#070">&lt;/pre&gt;</span>
1451
+
1452
+ <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: explain the command-line arguments
1453
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1454
+
1455
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Ruby library interface</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1456
+ <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: explain how to use your project's Ruby library
1457
+ <span style="color:#F00;background-color:#FAA">&gt;</span> from inside another Ruby program or library
1458
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1459
+
1460
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Tutorial</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1461
+ This tutorial shows how **<span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>** is used to __________.
1462
+
1463
+ <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: give examples for doing common tasks
1464
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1465
+
1466
+ <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: explain how to do more (advanced) things
1467
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</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">&equiv;</a><a title="Jump to previous segment" href="#doc-usage.erb">&#x25B3;</a><a title="Jump to next segment" href="#Implement-your-project">&#x25BD;</a><a title="Jump to this segment" href="#doc-history.erb">&#x25CE;</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">&lt;%</span> chapter <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">History</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1473
+ <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: put a brief history about your project here
1474
+
1475
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> project_history <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1476
+ <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: put release notes for your project
1477
+ <span style="color:#F00;background-color:#FAA">&gt;</span> here -- newest first, oldest last.
1478
+
1479
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Version 0.0.0 (2009-01-19)</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1480
+ <span style="color:#F00;background-color:#FAA">&gt;</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">&lt;%</span> paragraph <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Contributor kudos</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1485
+ <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: list everyone who contributed to this
1486
+ <span style="color:#F00;background-color:#FAA">&gt;</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">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1494
+
1495
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> paragraph <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Incompatible changes</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1496
+ <span style="color:#F00;background-color:#FAA">&gt;</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">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1504
+
1505
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> paragraph <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">New features</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1506
+ <span style="color:#F00;background-color:#FAA">&gt;</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">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1514
+
1515
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> paragraph <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Bug fixes</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1516
+ <span style="color:#F00;background-color:#FAA">&gt;</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">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1524
+
1525
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> paragraph <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Housekeeping</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1526
+ <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: list the refactorings, clean ups, and other
1527
+ <span style="color:#F00;background-color:#FAA">&gt;</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">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1535
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1536
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1537
+ <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</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">&equiv;</a><a title="Jump to previous segment" href="#doc-history.erb">&#x25B3;</a><a title="Jump to next segment" href="#Goodbye-LOAD_PATH-hello-require">&#x25BD;</a><a title="Jump to this segment" href="#Implement-your-project">&#x25CE;</a></div>
1543
+ <h3 class="title">
1544
+ 3.3.4&nbsp;&nbsp;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">&quot;</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">&quot;</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">&equiv;</a><a title="Jump to previous segment" href="#Implement-your-project">&#x25B3;</a><a title="Jump to next segment" href="#Test-your-project">&#x25BD;</a><a title="Jump to this segment" href="#Goodbye-LOAD_PATH-hello-require">&#x25CE;</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">&equiv;</a><a title="Jump to previous segment" href="#Goodbye-LOAD_PATH-hello-require">&#x25B3;</a><a title="Jump to next segment" href="#Publish-your-project">&#x25BD;</a><a title="Jump to this segment" href="#Test-your-project">&#x25CE;</a></div>
1579
+ <h3 class="title">
1580
+ 3.3.5&nbsp;&nbsp;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">&equiv;</a><a title="Jump to previous segment" href="#Test-your-project">&#x25B3;</a><a title="Jump to next segment" href="#Build-a-RubyGem">&#x25BD;</a><a title="Jump to this segment" href="#Publish-your-project">&#x25CE;</a></div>
1591
+ <h3 class="title">
1592
+ 3.3.6&nbsp;&nbsp;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">&equiv;</a><a title="Jump to previous segment" href="#Publish-your-project">&#x25B3;</a><a title="Jump to next segment" href="#Publish-a-RubyGem">&#x25BD;</a><a title="Jump to this segment" href="#Build-a-RubyGem">&#x25CE;</a></div>
1600
+ <h4 class="title">
1601
+ 3.3.6.1&nbsp;&nbsp;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">- &quot;=&quot;</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">&quot;</span><span style="">TODO: put a single line description of your project here.</span><span style="color:#710">&quot;</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">- &quot;&gt;=&quot;</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">&quot;</span><span style="">0</span><span style="color:#710">&quot;</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">- &quot;&gt;=&quot;</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">&quot;</span><span style="">0</span><span style="color:#710">&quot;</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">&quot;</span><span style="">TODO: put a single line description of your project here.</span><span style="color:#710">&quot;</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">&equiv;</a><a title="Jump to previous segment" href="#Build-a-RubyGem">&#x25B3;</a><a title="Jump to next segment" href="#Announce-a-release">&#x25BD;</a><a title="Jump to this segment" href="#Publish-a-RubyGem">&#x25CE;</a></div>
1702
+ <h4 class="title">
1703
+ 3.3.6.2&nbsp;&nbsp;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">&equiv;</a><a title="Jump to previous segment" href="#Publish-a-RubyGem">&#x25B3;</a><a title="Jump to next segment" href="#Login-information">&#x25BD;</a><a title="Jump to this segment" href="#Announce-a-release">&#x25CE;</a></div>
1712
+ <h4 class="title">
1713
+ 3.3.6.3&nbsp;&nbsp;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">&equiv;</a><a title="Jump to previous segment" href="#Announce-a-release">&#x25B3;</a><a title="Jump to next segment" href="#Manual-release-announcement">&#x25BD;</a><a title="Jump to this segment" href="#Login-information">&#x25CE;</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">&equiv;</a><a title="Jump to previous segment" href="#Login-information">&#x25B3;</a><a title="Jump to next segment" href="#Publish-the-documentation">&#x25BD;</a><a title="Jump to this segment" href="#Manual-release-announcement">&#x25CE;</a></div>
1741
+ <h5 class="title">
1742
+ 3.3.6.3.1&nbsp;&nbsp;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">&equiv;</a><a title="Jump to previous segment" href="#Manual-release-announcement">&#x25B3;</a><a title="Jump to next segment" href="#history">&#x25BD;</a><a title="Jump to this segment" href="#Publish-the-documentation">&#x25CE;</a></div>
1764
+ <h4 class="title">
1765
+ 3.3.6.4&nbsp;&nbsp;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&#8217;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">&equiv;</a><a title="Jump to previous segment" href="#Publish-the-documentation">&#x25B3;</a><a title="Jump to next segment" href="#Version-0.0.1-2009-01-13">&#x25BD;</a><a title="Jump to this segment" href="#history">&#x25CE;</a></div>
1777
+ <h1 class="title">
1778
+ Chapter&nbsp;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">&equiv;</a><a title="Jump to previous segment" href="#history">&#x25B3;</a>&#x25BD;<a title="Jump to this segment" href="#Version-0.0.1-2009-01-13">&#x25CE;</a></div>
1784
+ <h2 class="title">
1785
+ 4.1&nbsp;&nbsp;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 &copy; 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 &copy; 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>