inochi 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/inochi +86 -38
- data/doc/api/Inochi.html +163 -86
- data/doc/history.erb +53 -8
- data/doc/index.xhtml +283 -73
- data/doc/setup.erb +0 -2
- data/doc/usage.erb +113 -35
- data/lib/inochi.rb +12 -10
- data/lib/inochi/inochi.rb +57 -16
- data/test/inochi/inochi.rb +106 -0
- metadata +18 -2
data/doc/history.erb
CHANGED
@@ -1,18 +1,63 @@
|
|
1
1
|
<% chapter "History", "history" do %>
|
2
2
|
<% project_history do %>
|
3
|
+
<% section "Version 0.2.0 (2009-01-25)" do %>
|
4
|
+
This release adds support for unit testing, improves the portability of **Inochi** and configurability of your projects, adds new content to the user manual, and fixes some bugs.
|
5
|
+
|
6
|
+
<% paragraph "Contributor kudos" do %>
|
7
|
+
Florian Gilcher patched **Inochi** to:
|
8
|
+
|
9
|
+
* Run on both JRuby and normal Ruby in multiple versions and with different executable names on Windows.
|
10
|
+
|
11
|
+
* Allow project authors to be specified by hand instead of always relying on the license file to be in expected form, because his license template doesn't follow that form.
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
<% paragraph "New features" do %>
|
15
|
+
* Added support for unit testing via the [minitest](http://rubyforge.org/projects/bfts/) library. See <%= xref "Test your project" %> for documentation.
|
16
|
+
|
17
|
+
Also, in related news, the scaffold generator now emits a default unit test for the main project library.
|
18
|
+
|
19
|
+
* Added optional ProgramName parameter to the scaffold generator. This allows you to specify reasonable program names when your project module has a strange capitalization:
|
20
|
+
|
21
|
+
> inochi ERBook
|
22
|
+
create er_book/LICENSE
|
23
|
+
|
24
|
+
> inochi ERBook erbook
|
25
|
+
create erbook/LICENSE
|
26
|
+
|
27
|
+
> inochi ERBook foobar
|
28
|
+
create foobar/LICENSE
|
29
|
+
|
30
|
+
* Allow project authors to be specified via
|
31
|
+
|
32
|
+
`Inochi.init :YourProject, :authors => ...`
|
33
|
+
<% end %>
|
34
|
+
|
35
|
+
<% paragraph "Bug fixes" do %>
|
36
|
+
* Use `Gem::RubyGemsVersion` instead of a shell command to determine rubygems version for generation of <tt>setup.erb</tt>. (Florian Gilcher)
|
37
|
+
|
38
|
+
* Add blank lines between all list items, not just multi-line ones, in the plain-text version of the relase announcement for improved readability.
|
39
|
+
|
40
|
+
* Omit LaTeX-style heading numbers from release announcements. They caused confusion, especially in plain-text announcements, when trying to determine which version of a project was released.
|
41
|
+
<% end %>
|
42
|
+
|
43
|
+
<% paragraph "Housekeeping" do %>
|
44
|
+
* Added unit tests for utility methods provided by the **Inochi** module: project name calculation and CamelCase to snake\_case conversion.
|
45
|
+
<% end %>
|
46
|
+
<% end %>
|
47
|
+
|
3
48
|
<% section "Version 0.1.0 (2009-01-13)" do %>
|
4
|
-
This release reattempts to fix the [circular dependency problem](http://www.ruby-forum.com/topic/176173#771281) that occurred when installing either
|
49
|
+
This release reattempts to fix the [circular dependency problem](http://www.ruby-forum.com/topic/176173#771281) that occurred when installing either **Inochi** or **ERBook**.
|
5
50
|
|
6
51
|
<% paragraph "New features" do %>
|
7
|
-
*
|
52
|
+
* `**Inochi**.init()` now adds `#major()`, `#series()`, and `#requirement()` instance methods to a project's `VERSION` constant.
|
8
53
|
<% end %>
|
9
54
|
|
10
55
|
<% paragraph "Bug fixes" do %>
|
11
|
-
* Solved circular dependency problem by making inochi gem not dependent on erbook gem. However,
|
56
|
+
* Solved circular dependency problem by making inochi gem not dependent on erbook gem. However, ERBook is still required during runtime and is supplied on the `gem install` command for **Inochi**.
|
12
57
|
|
13
58
|
<%= xref "Installation" %> has been updated accordingly.
|
14
59
|
|
15
|
-
* Add forgotten Rake dependency for
|
60
|
+
* Add forgotten Rake dependency for **Inochi** gem.
|
16
61
|
<% end %>
|
17
62
|
<% end %>
|
18
63
|
|
@@ -20,17 +65,17 @@
|
|
20
65
|
This release fixes some show-stopper bugs.
|
21
66
|
|
22
67
|
<% paragraph "Contributor kudos" do %>
|
23
|
-
* Florian Gilcher tried the first release of
|
68
|
+
* Florian Gilcher tried the first release of **Inochi** and reported bugs.
|
24
69
|
<% end %>
|
25
70
|
|
26
71
|
<% paragraph "Bug fixes" do %>
|
27
72
|
* Florian Gilcher reported that the name of the project library was [being determined incorrectly](http://www.ruby-forum.com/topic/176173#771351).
|
28
73
|
|
29
|
-
* Florian Gilcher reported that there was a [circular dependency problem](http://www.ruby-forum.com/topic/176173#771281) when installing the
|
74
|
+
* Florian Gilcher reported that there was a [circular dependency problem](http://www.ruby-forum.com/topic/176173#771281) when installing the **Inochi** gem.
|
30
75
|
|
31
76
|
The solution is to specify the <tt>--force</tt> option when installing the gem. <%= xref "Installation" %> has been updated accordingly.
|
32
77
|
|
33
|
-
* Generated project scaffolds now check against the major version of the
|
78
|
+
* Generated project scaffolds now check against the major version of the **Inochi** gem, to avoid runtime version conflicts.
|
34
79
|
<% end %>
|
35
80
|
|
36
81
|
<% paragraph "Housekeeping" do %>
|
@@ -39,7 +84,7 @@
|
|
39
84
|
<% end %>
|
40
85
|
|
41
86
|
<% section "Version 0.0.0 (2009-01-13)" do %>
|
42
|
-
This is the first release of
|
87
|
+
This is the first release of **Inochi**.
|
43
88
|
|
44
89
|
Happy birthday!
|
45
90
|
<% end %>
|
data/doc/index.xhtml
CHANGED
@@ -14,11 +14,11 @@
|
|
14
14
|
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
|
15
15
|
<meta name="generator" content="ERBook 6.0.1"/>
|
16
16
|
|
17
|
-
<title>Inochi 0.
|
17
|
+
<title>Inochi 0.2.0</title>
|
18
18
|
|
19
19
|
<meta name="author" content="Suraj N. Kurapati"/>
|
20
20
|
|
21
|
-
<meta name="date" content="
|
21
|
+
<meta name="date" content="25 January 2009"/>
|
22
22
|
|
23
23
|
<link rel="alternate" type="application/rss+xml" href="http://snk.tuxfamily.org/lib/inochi/ann.xml"/>
|
24
24
|
|
@@ -642,13 +642,13 @@
|
|
642
642
|
|
643
643
|
<div class="logo"><img src='inochi.png' alt='project logo' /></div>
|
644
644
|
|
645
|
-
<h1 class="title">Inochi 0.
|
645
|
+
<h1 class="title">Inochi 0.2.0</h1>
|
646
646
|
|
647
647
|
<h2 class="subtitle">Gives life to RubyGems-based software</h2>
|
648
648
|
|
649
649
|
<h3 class="authors"><a href="mailto:sunaku@gmail.com">Suraj N. Kurapati</a></h3>
|
650
650
|
|
651
|
-
<h3 class="date">
|
651
|
+
<h3 class="date">25 January 2009</h3>
|
652
652
|
|
653
653
|
</div>
|
654
654
|
|
@@ -663,7 +663,7 @@
|
|
663
663
|
<a name="Contents"/><div class="nav" id="Contents"><a title="Reverse jump to listing" href="#rev:Contents">≡</a>△▽<a title="Jump to this segment" href="#Contents">◎</a></div>
|
664
664
|
<h1 class="title">Contents</h1>
|
665
665
|
<ul>
|
666
|
-
<li>1 <a id="rev:Introduction" href="#Introduction">Introduction</a><ul><li><a id="rev:Etymology" href="#Etymology">Etymology</a></li><li>1.1 <a id="rev:Logistics" href="#Logistics">Logistics</a><ul><li><a id="rev:Version-numbers" href="#Version-numbers">Version numbers</a></li></ul></li><li>1.2 <a id="rev:License" href="#License">License</a></li><li>1.3 <a id="rev:Credits" href="#Credits">Credits</a></li></ul></li><li>2 <a id="rev:Setup" href="#Setup">Setup</a><ul><li>2.1 <a id="rev:Requirements" href="#Requirements">Requirements</a></li><li>2.2 <a id="rev:Installation" href="#Installation">Installation</a></li><li>2.3 <a id="rev:Manifest" href="#Manifest">Manifest</a></li></ul></li><li>3 <a id="rev:Usage" href="#Usage">Usage</a><ul><li>3.1 <a id="rev:Command-line-interface" href="#Command-line-interface">Command-line interface</a></li><li>3.2 <a id="rev:Ruby-library-interface" href="#Ruby-library-interface">Ruby library interface</a></li><li>3.3 <a id="rev:Tutorial" href="#Tutorial">Tutorial</a><ul><li>3.3.1 <a id="rev:Have-a-brilliant-idea" href="#Have-a-brilliant-idea">Have a brilliant idea</a></li><li>3.3.2 <a id="rev:Generate-your-project" href="#Generate-your-project">Generate your project</a></li><li>3.3.3 <a id="rev:Configure-your-project" href="#Configure-your-project">Configure your project</a><ul><li>3.3.3.1 <a id="rev:Project-information" href="#Project-information">Project information</a></li><li>3.3.3.2 <a id="rev:Project-executable" href="#Project-executable">Project executable</a></li><li>3.3.3.3 <a id="rev:Rake-tasks" href="#Rake-tasks">Rake tasks</a></li><li>3.3.3.4 <a id="rev:User-manual" href="#User-manual">User manual</a><ul><li><a id="rev:doc-index.erb" href="#doc-index.erb"><tt>doc/index.erb</tt></a></li><li><a id="rev:doc-intro.erb" href="#doc-intro.erb"><tt>doc/intro.erb</tt></a></li><li><a id="rev:doc-setup.erb" href="#doc-setup.erb"><tt>doc/setup.erb</tt></a></li><li><a id="rev:doc-theory.erb" href="#doc-theory.erb"><tt>doc/theory.erb</tt></a></li><li><a id="rev:doc-usage.erb" href="#doc-usage.erb"><tt>doc/usage.erb</tt></a></li><li><a id="rev:doc-history.erb" href="#doc-history.erb"><tt>doc/history.erb</tt></a></li></ul></li></ul></li><li>3.3.4 <a id="rev:Implement-your-project" href="#Implement-your-project">Implement your project</a><ul><li><a id="rev:Goodbye-LOAD_PATH-hello-require" href="#Goodbye-LOAD_PATH-hello-require">Goodbye <code class="code"><span style="color:#d70;font-weight:bold">$LOAD_PATH</span></code>, hello <code class="code">require()</code></a></li></ul></li><li>3.3.5 <a id="rev:Test-your-project" href="#Test-your-project">Test your project</a></li><li>3.3.6 <a id="rev:Publish-your-project" href="#Publish-your-project">Publish your project</a><ul><li>3.3.6.1 <a id="rev:Build-a-RubyGem" href="#Build-a-RubyGem">Build a RubyGem</a></li><li>3.3.6.2 <a id="rev:Publish-a-RubyGem" href="#Publish-a-RubyGem">Publish a RubyGem</a></li><li>3.3.6.3 <a id="rev:Announce-a-release" href="#Announce-a-release">Announce a release</a><ul><li><a id="rev:Login-information" href="#Login-information">Login information</a></li><li>3.3.6.3.1 <a id="rev:Manual-release-announcement" href="#Manual-release-announcement">Manual release announcement</a></li></ul></li><li>3.3.6.4 <a id="rev:Publish-the-documentation" href="#Publish-the-documentation">Publish the documentation</a></li></ul></li></ul></li></ul></li><li>4 <a id="rev:history" href="#history">History</a><ul><li>4.1 <a id="rev:Version-0.1.0-2009-01-13" href="#Version-0.1.0-2009-01-13">Version 0.1.0 (2009-01-13)</a><ul><li><a id="rev:New-features" href="#New-features">New features</a></li><li><a id="rev:Bug-fixes" href="#Bug-fixes">Bug fixes</a></li></ul></li><li>4.1 <a id="rev:Version-0.0.1-2009-01-13" href="#Version-0.0.1-2009-01-13">Version 0.0.1 (2009-01-13)</a><ul><li><a id="rev:Contributor-kudos" href="#Contributor-kudos">Contributor kudos</a></li><li><a id="rev:Bug-fixes-
|
666
|
+
<li>1 <a id="rev:Introduction" href="#Introduction">Introduction</a><ul><li><a id="rev:Etymology" href="#Etymology">Etymology</a></li><li>1.1 <a id="rev:Logistics" href="#Logistics">Logistics</a><ul><li><a id="rev:Version-numbers" href="#Version-numbers">Version numbers</a></li></ul></li><li>1.2 <a id="rev:License" href="#License">License</a></li><li>1.3 <a id="rev:Credits" href="#Credits">Credits</a></li></ul></li><li>2 <a id="rev:Setup" href="#Setup">Setup</a><ul><li>2.1 <a id="rev:Requirements" href="#Requirements">Requirements</a></li><li>2.2 <a id="rev:Installation" href="#Installation">Installation</a></li><li>2.3 <a id="rev:Manifest" href="#Manifest">Manifest</a></li></ul></li><li>3 <a id="rev:Usage" href="#Usage">Usage</a><ul><li>3.1 <a id="rev:Command-line-interface" href="#Command-line-interface">Command-line interface</a></li><li>3.2 <a id="rev:Ruby-library-interface" href="#Ruby-library-interface">Ruby library interface</a></li><li>3.3 <a id="rev:Tutorial" href="#Tutorial">Tutorial</a><ul><li>3.3.1 <a id="rev:Have-a-brilliant-idea" href="#Have-a-brilliant-idea">Have a brilliant idea</a></li><li>3.3.2 <a id="rev:Generate-your-project" href="#Generate-your-project">Generate your project</a><ul><li><a id="rev:View-Rake-tasks" href="#View-Rake-tasks">View Rake tasks</a></li><li><a id="rev:Run-unit-tests" href="#Run-unit-tests">Run unit tests</a></li><li><a id="rev:Run-project-executable" href="#Run-project-executable">Run project executable</a></li><li><a id="rev:Show-user-manual" href="#Show-user-manual">Show user manual</a></li></ul></li><li>3.3.3 <a id="rev:Configure-your-project" href="#Configure-your-project">Configure your project</a><ul><li>3.3.3.1 <a id="rev:Project-information" href="#Project-information">Project information</a></li><li>3.3.3.2 <a id="rev:Project-executable" href="#Project-executable">Project executable</a></li><li>3.3.3.3 <a id="rev:Rake-tasks" href="#Rake-tasks">Rake tasks</a></li><li>3.3.3.4 <a id="rev:User-manual" href="#User-manual">User manual</a><ul><li><a id="rev:doc-index.erb" href="#doc-index.erb"><tt>doc/index.erb</tt></a></li><li><a id="rev:doc-intro.erb" href="#doc-intro.erb"><tt>doc/intro.erb</tt></a></li><li><a id="rev:doc-setup.erb" href="#doc-setup.erb"><tt>doc/setup.erb</tt></a></li><li><a id="rev:doc-theory.erb" href="#doc-theory.erb"><tt>doc/theory.erb</tt></a></li><li><a id="rev:doc-usage.erb" href="#doc-usage.erb"><tt>doc/usage.erb</tt></a></li><li><a id="rev:doc-history.erb" href="#doc-history.erb"><tt>doc/history.erb</tt></a></li></ul></li></ul></li><li>3.3.4 <a id="rev:Implement-your-project" href="#Implement-your-project">Implement your project</a><ul><li><a id="rev:Goodbye-LOAD_PATH-hello-require" href="#Goodbye-LOAD_PATH-hello-require">Goodbye <code class="code"><span style="color:#d70;font-weight:bold">$LOAD_PATH</span></code>, hello <code class="code">require()</code></a></li></ul></li><li>3.3.5 <a id="rev:Test-your-project" href="#Test-your-project">Test your project</a><ul><li><a id="rev:Units-and-tests" href="#Units-and-tests">Units and tests</a></li><li><a id="rev:Test-execution" href="#Test-execution">Test execution</a></li><li><a id="rev:Helper-libraries" href="#Helper-libraries">Helper libraries</a></li></ul></li><li>3.3.6 <a id="rev:Publish-your-project" href="#Publish-your-project">Publish your project</a><ul><li>3.3.6.1 <a id="rev:Build-a-RubyGem" href="#Build-a-RubyGem">Build a RubyGem</a></li><li>3.3.6.2 <a id="rev:Publish-a-RubyGem" href="#Publish-a-RubyGem">Publish a RubyGem</a></li><li>3.3.6.3 <a id="rev:Announce-a-release" href="#Announce-a-release">Announce a release</a><ul><li><a id="rev:Login-information" href="#Login-information">Login information</a></li><li>3.3.6.3.1 <a id="rev:Manual-release-announcement" href="#Manual-release-announcement">Manual release announcement</a></li></ul></li><li>3.3.6.4 <a id="rev:Publish-the-documentation" href="#Publish-the-documentation">Publish the documentation</a></li></ul></li></ul></li></ul></li><li>4 <a id="rev:history" href="#history">History</a><ul><li>4.1 <a id="rev:Version-0.2.0-2009-01-25" href="#Version-0.2.0-2009-01-25">Version 0.2.0 (2009-01-25)</a><ul><li><a id="rev:Contributor-kudos" href="#Contributor-kudos">Contributor kudos</a></li><li><a id="rev:New-features" href="#New-features">New features</a></li><li><a id="rev:Bug-fixes" href="#Bug-fixes">Bug fixes</a></li><li><a id="rev:Housekeeping" href="#Housekeeping">Housekeeping</a></li></ul></li><li>4.1 <a id="rev:Version-0.1.0-2009-01-13" href="#Version-0.1.0-2009-01-13">Version 0.1.0 (2009-01-13)</a><ul><li><a id="rev:New-features-608879868" href="#New-features-608879868">New features</a></li><li><a id="rev:Bug-fixes-608886358" href="#Bug-fixes-608886358">Bug fixes</a></li></ul></li><li>4.1 <a id="rev:Version-0.0.1-2009-01-13" href="#Version-0.0.1-2009-01-13">Version 0.0.1 (2009-01-13)</a><ul><li><a id="rev:Contributor-kudos-608900438" href="#Contributor-kudos-608900438">Contributor kudos</a></li><li><a id="rev:Bug-fixes-608905168" href="#Bug-fixes-608905168">Bug fixes</a></li><li><a id="rev:Housekeeping-608918928" href="#Housekeeping-608918928">Housekeeping</a></li></ul></li><li>4.1 <a id="rev:Version-0.0.0-2009-01-13" href="#Version-0.0.0-2009-01-13">Version 0.0.0 (2009-01-13)</a></li></ul></li>
|
667
667
|
|
668
668
|
</ul>
|
669
669
|
</div>
|
@@ -818,8 +818,6 @@
|
|
818
818
|
<p>The “inochi.png” image and its “inochi.svg” source utilize the <a href='http://openclipart.org/media/files/Peileppe/8978'>“3 flowers”</a> graphic, which was created and released into the public domain by <a href='http://openclipart.org/media/people/Peileppe'>Peileppe Production</a> on June 25, 2008.</p></div>
|
819
819
|
</div></p></div>
|
820
820
|
</div>
|
821
|
-
|
822
|
-
|
823
821
|
<div class="chapter">
|
824
822
|
<a name="Setup"/><div class="nav" id="Setup"><a title="Reverse jump to listing" href="#rev:Setup">≡</a><a title="Jump to previous segment" href="#Credits">△</a><a title="Jump to next segment" href="#Requirements">▽</a><a title="Jump to this segment" href="#Setup">◎</a></div>
|
825
823
|
<h1 class="title">
|
@@ -854,8 +852,8 @@
|
|
854
852
|
<p>If the installation was successful, you will see output like this:</p>
|
855
853
|
|
856
854
|
<p><pre>project: Inochi
|
857
|
-
version: 0.
|
858
|
-
release: 2009-01-
|
855
|
+
version: 0.2.0
|
856
|
+
release: 2009-01-25
|
859
857
|
website: http://snk.tuxfamily.org/lib/inochi
|
860
858
|
install: /home/sun/src/inochi</pre></p>
|
861
859
|
|
@@ -925,7 +923,13 @@ install: /home/sun/src/inochi</pre></p>
|
|
925
923
|
|
926
924
|
<p><pre>Inochi - Gives life to RubyGems-based software
|
927
925
|
|
928
|
-
|
926
|
+
Generates a project scaffold using the given information.
|
927
|
+
|
928
|
+
Existing files are backed up and NOT overwritten. It is your
|
929
|
+
responsibility to merge changes between the existing files and
|
930
|
+
the newly generated files. See the --merge option for details.
|
931
|
+
|
932
|
+
This tool announces its progress as it runs, using these indicators:
|
929
933
|
|
930
934
|
create: A file is being created because it does not exist.
|
931
935
|
|
@@ -939,7 +943,19 @@ Progress indicators:
|
|
939
943
|
|
940
944
|
Usage:
|
941
945
|
|
942
|
-
inochi [
|
946
|
+
inochi [Options] ProjectName [ProgramName]
|
947
|
+
|
948
|
+
|
949
|
+
ProjectName: Name of your project, which will be normalized
|
950
|
+
into the naame of a Ruby module that will serve
|
951
|
+
as a namespace for all code in your project.
|
952
|
+
|
953
|
+
ProgramName: (Optional) Name of the main project executable,
|
954
|
+
which also serves as the name of the generated
|
955
|
+
project directory and the main project library.
|
956
|
+
|
957
|
+
|
958
|
+
Options:
|
943
959
|
|
944
960
|
--merger, -m <s>: A command that invokes a text merging tool with three
|
945
961
|
arguments: (1) old file, (2) new file, (3) output file.
|
@@ -955,7 +971,7 @@ Usage:
|
|
955
971
|
<a name="Merging-files-with-kdiff3"/><div class="nav" id="Merging-files-with-kdiff3"><a title="Reverse jump to listing" href="#rev:Merging-files-with-kdiff3">≡</a><a title="Jump to previous segment" href="#Command-line-interface">△</a><a title="Jump to next segment" href="#Ruby-library-interface">▽</a><a title="Jump to this segment" href="#Merging-files-with-kdiff3">◎</a></div>
|
956
972
|
<p class="title">Tip 1. Merging files with <strong>kdiff3</strong></p>
|
957
973
|
<div class="content">
|
958
|
-
<img class="icon" src="&icon_tip;"
|
974
|
+
<img class="icon" alt="tip" src="&icon_tip;"/>
|
959
975
|
<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>
|
960
976
|
|
961
977
|
<ol>
|
@@ -973,7 +989,7 @@ shift
|
|
973
989
|
output_file=$1
|
974
990
|
shift
|
975
991
|
|
976
|
-
kdiff3 --
|
992
|
+
kdiff3 --merge "$old_file" "$new_file" --output "$output_file"</pre>
|
977
993
|
</li>
|
978
994
|
|
979
995
|
<li>
|
@@ -1072,7 +1088,7 @@ kdiff3 --auto "$old_file" "$new_file" --output "$output
|
|
1072
1088
|
|
1073
1089
|
<p><em>However</em>, you must go to work the next morning, so there isn’t much time. What can you do? Let’s see how <strong>Inochi</strong> can help us meet this challenge.</p></div>
|
1074
1090
|
</div> <div class="section">
|
1075
|
-
<a name="Generate-your-project"/><div class="nav" id="Generate-your-project"><a title="Reverse jump to listing" href="#rev:Generate-your-project">≡</a><a title="Jump to previous segment" href="#Have-a-brilliant-idea">△</a><a title="Jump to next segment" href="#
|
1091
|
+
<a name="Generate-your-project"/><div class="nav" id="Generate-your-project"><a title="Reverse jump to listing" href="#rev:Generate-your-project">≡</a><a title="Jump to previous segment" href="#Have-a-brilliant-idea">△</a><a title="Jump to next segment" href="#View-Rake-tasks">▽</a><a title="Jump to this segment" href="#Generate-your-project">◎</a></div>
|
1076
1092
|
<h3 class="title">
|
1077
1093
|
3.3.2 Generate your project
|
1078
1094
|
</h3>
|
@@ -1083,6 +1099,7 @@ kdiff3 --auto "$old_file" "$new_file" --output "$output
|
|
1083
1099
|
create word_count/Rakefile
|
1084
1100
|
create word_count/bin/word_count
|
1085
1101
|
create word_count/lib/word_count.rb
|
1102
|
+
create word_count/test/word_count.rb
|
1086
1103
|
create word_count/doc/index.erb
|
1087
1104
|
create word_count/doc/intro.erb
|
1088
1105
|
create word_count/doc/setup.erb
|
@@ -1095,10 +1112,11 @@ kdiff3 --auto "$old_file" "$new_file" --output "$output
|
|
1095
1112
|
|
1096
1113
|
<p><pre># cd word_count</pre></p>
|
1097
1114
|
|
1098
|
-
<p
|
1099
|
-
|
1100
|
-
<p
|
1101
|
-
|
1115
|
+
<p><div class="paragraph">
|
1116
|
+
<a name="View-Rake-tasks"/><div class="nav" id="View-Rake-tasks"><a title="Reverse jump to listing" href="#rev:View-Rake-tasks">≡</a><a title="Jump to previous segment" href="#Generate-your-project">△</a><a title="Jump to next segment" href="#Run-unit-tests">▽</a><a title="Jump to this segment" href="#View-Rake-tasks">◎</a></div>
|
1117
|
+
<p class="title">View Rake tasks</p>
|
1118
|
+
<div class="content"><p><pre># rake -T
|
1119
|
+
(in /tmp/Inochi20090125-24483-1xmgxqy-0/word_count)
|
1102
1120
|
rake ann # Build all release announcements.
|
1103
1121
|
rake ann:feed # Build RSS announcement: doc/ann.xml
|
1104
1122
|
rake ann:html # Build HTML announcement: ANN.html
|
@@ -1117,12 +1135,25 @@ rake pub:ann:raa # Announce to RAA (Ruby Application Archive).
|
|
1117
1135
|
rake pub:ann:talk # Announce to ruby-talk mailing list.
|
1118
1136
|
rake pub:doc # Publish documentation to project website.
|
1119
1137
|
rake pub:pak # Publish release packages to RubyForge.
|
1120
|
-
|
1121
|
-
|
1122
|
-
|
1123
|
-
|
1124
|
-
<p
|
1125
|
-
|
1138
|
+
rake test # Run all unit tests.
|
1139
|
+
</pre></p></div>
|
1140
|
+
</div> <div class="paragraph">
|
1141
|
+
<a name="Run-unit-tests"/><div class="nav" id="Run-unit-tests"><a title="Reverse jump to listing" href="#rev:Run-unit-tests">≡</a><a title="Jump to previous segment" href="#View-Rake-tasks">△</a><a title="Jump to next segment" href="#Run-project-executable">▽</a><a title="Jump to this segment" href="#Run-unit-tests">◎</a></div>
|
1142
|
+
<p class="title">Run unit tests</p>
|
1143
|
+
<div class="content"><p><pre># rake test
|
1144
|
+
(in /tmp/Inochi20090125-24483-1xmgxqy-0/word_count)
|
1145
|
+
Loaded suite word_count
|
1146
|
+
Started
|
1147
|
+
.
|
1148
|
+
Finished in 0.001064 seconds.
|
1149
|
+
|
1150
|
+
1 tests, 23 assertions, 0 failures, 0 errors, 0 skips
|
1151
|
+
</pre></p></div>
|
1152
|
+
</div> <div class="paragraph">
|
1153
|
+
<a name="Run-project-executable"/><div class="nav" id="Run-project-executable"><a title="Reverse jump to listing" href="#rev:Run-project-executable">≡</a><a title="Jump to previous segment" href="#Run-unit-tests">△</a><a title="Jump to next segment" href="#Show-user-manual">▽</a><a title="Jump to this segment" href="#Run-project-executable">◎</a></div>
|
1154
|
+
<p class="title">Run project executable</p>
|
1155
|
+
<div class="content"><p><pre># ruby bin/word_count
|
1156
|
+
Command-line options: {:manual=>false, :version=>false, :help=>false}
|
1126
1157
|
Command-line arguments: []
|
1127
1158
|
</pre></p>
|
1128
1159
|
|
@@ -1133,9 +1164,20 @@ WordCount - TODO: put a single line description of your project here.
|
|
1133
1164
|
|
1134
1165
|
TODO: Explain the command-line usage of this program here.
|
1135
1166
|
|
1167
|
+
|
1136
1168
|
Usage:
|
1137
1169
|
|
1138
|
-
word_count [
|
1170
|
+
word_count [Options] Param1 Param2 Param3...
|
1171
|
+
|
1172
|
+
|
1173
|
+
Param1: Description for the first parameter.
|
1174
|
+
|
1175
|
+
Param2: Description for the second parameter.
|
1176
|
+
|
1177
|
+
Param3: Description for the third parameter.
|
1178
|
+
|
1179
|
+
|
1180
|
+
Options:
|
1139
1181
|
|
1140
1182
|
--manual, -m: Show the user manual
|
1141
1183
|
--version, -v: Print version and exit
|
@@ -1147,20 +1189,25 @@ Usage:
|
|
1147
1189
|
<p><pre># ruby bin/word_count --version
|
1148
1190
|
project: WordCount
|
1149
1191
|
version: 0.0.0
|
1150
|
-
release: 2009-01-
|
1192
|
+
release: 2009-01-25
|
1151
1193
|
website: http://word_count.rubyforge.org
|
1152
|
-
install: /tmp/
|
1153
|
-
</pre></p>
|
1194
|
+
install: /tmp/Inochi20090125-24483-1xmgxqy-0/word_count
|
1195
|
+
</pre></p></div>
|
1196
|
+
</div> <div class="paragraph">
|
1197
|
+
<a name="Show-user-manual"/><div class="nav" id="Show-user-manual"><a title="Reverse jump to listing" href="#rev:Show-user-manual">≡</a><a title="Jump to previous segment" href="#Run-project-executable">△</a><a title="Jump to next segment" href="#Configure-your-project">▽</a><a title="Jump to this segment" href="#Show-user-manual">◎</a></div>
|
1198
|
+
<p class="title">Show user manual</p>
|
1199
|
+
<div class="content"><p>Build the user manual (please disregard any “unclosed span” warnings):</p>
|
1154
1200
|
|
1155
|
-
<p
|
1201
|
+
<p><pre># rake doc:man</pre></p>
|
1156
1202
|
|
1157
|
-
<p
|
1203
|
+
<p>Launch the user manual:</p>
|
1158
1204
|
|
1159
|
-
|
1205
|
+
<p><pre># ruby bin/word_count --manual</pre></p>
|
1160
1206
|
|
1161
1207
|
<p>The manual will now appear in your default web browser.</p></div>
|
1208
|
+
</div></p></div>
|
1162
1209
|
</div> <div class="section">
|
1163
|
-
<a name="Configure-your-project"/><div class="nav" id="Configure-your-project"><a title="Reverse jump to listing" href="#rev:Configure-your-project">≡</a><a title="Jump to previous segment" href="#
|
1210
|
+
<a name="Configure-your-project"/><div class="nav" id="Configure-your-project"><a title="Reverse jump to listing" href="#rev:Configure-your-project">≡</a><a title="Jump to previous segment" href="#Show-user-manual">△</a><a title="Jump to next segment" href="#Project-information">▽</a><a title="Jump to this segment" href="#Configure-your-project">◎</a></div>
|
1164
1211
|
<h3 class="title">
|
1165
1212
|
3.3.3 Configure your project
|
1166
1213
|
</h3>
|
@@ -1197,7 +1244,7 @@ require <span style="background-color:#fff0f0;color:#D20"><span style="color:#71
|
|
1197
1244
|
<span style="color:#036;font-weight:bold">Inochi</span>.init <span style="color:#A60">:WordCount</span>,
|
1198
1245
|
<span style="color:#A60">:project</span> => <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">WordCount</span><span style="color:#710">'</span></span>,
|
1199
1246
|
<span style="color:#A60">:version</span> => <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">0.0.0</span><span style="color:#710">'</span></span>,
|
1200
|
-
<span style="color:#A60">:release</span> => <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">2009-01-
|
1247
|
+
<span style="color:#A60">:release</span> => <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">2009-01-25</span><span style="color:#710">'</span></span>,
|
1201
1248
|
<span style="color:#A60">:website</span> => <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">http://word_count.rubyforge.org</span><span style="color:#710">'</span></span>,
|
1202
1249
|
<span style="color:#A60">:tagline</span> => <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">TODO: put a single line description of your project here.</span><span style="color:#710">'</span></span>,
|
1203
1250
|
<span style="color:#A60">:require</span> => {
|
@@ -1223,9 +1270,20 @@ require <span style="background-color:#fff0f0;color:#D20"><span style="color:#71
|
|
1223
1270
|
<span style="color:#666">#</span>
|
1224
1271
|
<span style="color:#666"># TODO: Explain the command-line usage of this program here.</span>
|
1225
1272
|
<span style="color:#666">#</span>
|
1273
|
+
<span style="color:#666">#</span>
|
1226
1274
|
<span style="color:#666"># Usage:</span>
|
1227
1275
|
<span style="color:#666">#</span>
|
1228
|
-
<span style="color:#666"># word_count [
|
1276
|
+
<span style="color:#666"># word_count [Options] Param1 Param2 Param3...</span>
|
1277
|
+
<span style="color:#666">#</span>
|
1278
|
+
<span style="color:#666">#</span>
|
1279
|
+
<span style="color:#666"># Param1: Description for the first parameter.</span>
|
1280
|
+
<span style="color:#666">#</span>
|
1281
|
+
<span style="color:#666"># Param2: Description for the second parameter.</span>
|
1282
|
+
<span style="color:#666">#</span>
|
1283
|
+
<span style="color:#666"># Param3: Description for the third parameter.</span>
|
1284
|
+
<span style="color:#666">#</span>
|
1285
|
+
<span style="color:#666">#</span>
|
1286
|
+
<span style="color:#666"># Options:</span>
|
1229
1287
|
<span style="color:#666">#</span>
|
1230
1288
|
|
1231
1289
|
require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">rubygems</span><span style="color:#710">'</span></span>
|
@@ -1292,7 +1350,7 @@ require <span style="background-color:#fff0f0;color:#D20"><span style="color:#71
|
|
1292
1350
|
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> project_summary <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1293
1351
|
<span style="color:#F00;background-color:#FAA">></span> TODO: explain the purpose of your project
|
1294
1352
|
|
1295
|
-
|
1353
|
+
**<span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%></span></span>** is a __________ that __________.
|
1296
1354
|
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1297
1355
|
|
1298
1356
|
<span style="color:#F00;background-color:#FAA">></span> TODO: explain why your project is important
|
@@ -1379,9 +1437,9 @@ require <span style="background-color:#fff0f0;color:#D20"><span style="color:#71
|
|
1379
1437
|
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Requirements</span><span style="color:#710">"</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1380
1438
|
Your system needs the following software to run **<span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%></span></span>**.
|
1381
1439
|
|
1382
|
-
| Software | Description | Notes
|
1383
|
-
| -------- | ----------- | -----
|
1384
|
-
| [Ruby](http://ruby-lang.org) | Ruby language interpreter | Version 1.8.7 is required.
|
1440
|
+
| Software | Description | Notes |
|
1441
|
+
| -------- | ----------- | ----- |
|
1442
|
+
| [Ruby](http://ruby-lang.org) | Ruby language interpreter | Version 1.8.7 is required. |
|
1385
1443
|
| [RubyGems](http://rubygems.org) | Ruby packaging system | Version 1.3.1 is required. |
|
1386
1444
|
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1387
1445
|
|
@@ -1450,7 +1508,7 @@ require <span style="background-color:#fff0f0;color:#D20"><span style="color:#71
|
|
1450
1508
|
|
1451
1509
|
You will see this output:
|
1452
1510
|
|
1453
|
-
<span style="color:#070"><pre></span><span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> verbatim <span style="background-color:#f0fff0;color:#2B2"><span style="color:#161">`</span><span style="">ruby bin/</span><span style="background:#eee"><span style="font-weight:bold;color:#888">#{</span><span style="color:#d70;font-weight:bold">$
|
1511
|
+
<span style="color:#070"><pre></span><span style="background:#eee"><span style="font-weight:bold;color:#888"><%=</span> verbatim <span style="background-color:#f0fff0;color:#2B2"><span style="color:#161">`</span><span style="">ruby bin/</span><span style="background:#eee"><span style="font-weight:bold;color:#888">#{</span><span style="color:#d70;font-weight:bold">$program_name</span><span style="font-weight:bold;color:#888">}</span></span><span style=""> --help</span><span style="color:#161">`</span></span> <span style="font-weight:bold;color:#888">%></span></span><span style="color:#070"></pre></span>
|
1454
1512
|
|
1455
1513
|
<span style="color:#F00;background-color:#FAA">></span> TODO: explain the command-line arguments
|
1456
1514
|
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%></span></span>
|
@@ -1479,7 +1537,7 @@ require <span style="background-color:#fff0f0;color:#D20"><span style="color:#71
|
|
1479
1537
|
<span style="color:#F00;background-color:#FAA">></span> TODO: put release notes for your project
|
1480
1538
|
<span style="color:#F00;background-color:#FAA">></span> here -- newest first, oldest last.
|
1481
1539
|
|
1482
|
-
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Version 0.0.0 (2009-01-
|
1540
|
+
<span style="background:#eee"><span style="font-weight:bold;color:#888"><%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Version 0.0.0 (2009-01-25)</span><span style="color:#710">"</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%></span></span>
|
1483
1541
|
<span style="color:#F00;background-color:#FAA">></span> TODO: write a short summary of the changes in this release
|
1484
1542
|
|
1485
1543
|
This release changes __________, adds __________, and fixes __________.
|
@@ -1546,7 +1604,7 @@ require <span style="background-color:#fff0f0;color:#D20"><span style="color:#71
|
|
1546
1604
|
<h3 class="title">
|
1547
1605
|
3.3.4 Implement your project
|
1548
1606
|
</h3>
|
1549
|
-
<div class="content"><p>Add the following code to the bottom of the main project library:</p>
|
1607
|
+
<div class="content"><p>Add the following code to the bottom of <tt>lib/word_count.rb</tt>, the main project library:</p>
|
1550
1608
|
|
1551
1609
|
<p><pre class="code"><span style="color:#080;font-weight:bold">module</span> <span style="color:#B06;font-weight:bold">WordCount</span>
|
1552
1610
|
<span style="color:#666"># Returns the number of words in the given input.</span>
|
@@ -1556,13 +1614,45 @@ require <span style="background-color:#fff0f0;color:#D20"><span style="color:#71
|
|
1556
1614
|
<span style="color:#080;font-weight:bold">end</span>
|
1557
1615
|
</pre></p>
|
1558
1616
|
|
1559
|
-
<p>Add the following code to the bottom of the main project executable:</p>
|
1617
|
+
<p>Add the following code to the bottom of <tt>bin/word_count</tt>, the main project executable:</p>
|
1560
1618
|
|
1561
1619
|
<p><pre class="code">input = <span style="color:#038;font-weight:bold">ARGF</span>.read
|
1562
1620
|
total = <span style="color:#036;font-weight:bold">WordCount</span>.count(input)
|
1563
1621
|
puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">There are </span><span style="background:#eee"><span style="font-weight:bold;color:#888">#{</span>total<span style="font-weight:bold;color:#888">}</span></span><span style=""> words in the input.</span><span style="color:#710">"</span></span>
|
1564
1622
|
</pre></p>
|
1565
1623
|
|
1624
|
+
<p>Add the following code to the bottom of <tt>test/word_count.rb</tt>, a unit test for the main project library:</p>
|
1625
|
+
|
1626
|
+
<p><pre class="code">describe <span style="color:#036;font-weight:bold">WordCount</span> <span style="color:#080;font-weight:bold">do</span>
|
1627
|
+
it <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">handles empty input</span><span style="color:#710">'</span></span> <span style="color:#080;font-weight:bold">do</span>
|
1628
|
+
<span style="color:#036;font-weight:bold">WordCount</span>.count(<span style="color:#038;font-weight:bold">nil</span>).must_equal(<span style="color:#00D;font-weight:bold">0</span>)
|
1629
|
+
<span style="color:#036;font-weight:bold">WordCount</span>.count(<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="color:#710">'</span></span>).must_equal(<span style="color:#00D;font-weight:bold">0</span>)
|
1630
|
+
<span style="color:#036;font-weight:bold">WordCount</span>.count(<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style=""> </span><span style="color:#710">'</span></span>).must_equal(<span style="color:#00D;font-weight:bold">0</span>)
|
1631
|
+
<span style="color:#080;font-weight:bold">end</span>
|
1632
|
+
|
1633
|
+
it <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">handles single words</span><span style="color:#710">'</span></span> <span style="color:#080;font-weight:bold">do</span>
|
1634
|
+
<span style="color:#036;font-weight:bold">WordCount</span>.count(<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">a</span><span style="color:#710">'</span></span>).must_equal(<span style="color:#00D;font-weight:bold">1</span>)
|
1635
|
+
<span style="color:#036;font-weight:bold">WordCount</span>.count(<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">foo</span><span style="color:#710">'</span></span>).must_equal(<span style="color:#00D;font-weight:bold">1</span>)
|
1636
|
+
<span style="color:#036;font-weight:bold">WordCount</span>.count(<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">bar</span><span style="color:#710">'</span></span>).must_equal(<span style="color:#00D;font-weight:bold">1</span>)
|
1637
|
+
<span style="color:#080;font-weight:bold">end</span>
|
1638
|
+
|
1639
|
+
it <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">handles multiple words</span><span style="color:#710">'</span></span> <span style="color:#080;font-weight:bold">do</span>
|
1640
|
+
<span style="color:#036;font-weight:bold">WordCount</span>.count(<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">a b</span><span style="color:#710">'</span></span>).must_equal(<span style="color:#00D;font-weight:bold">2</span>)
|
1641
|
+
<span style="color:#036;font-weight:bold">WordCount</span>.count(<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">a-b</span><span style="color:#710">'</span></span>).must_equal(<span style="color:#00D;font-weight:bold">2</span>)
|
1642
|
+
<span style="color:#036;font-weight:bold">WordCount</span>.count(<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">a/b</span><span style="color:#710">'</span></span>).must_equal(<span style="color:#00D;font-weight:bold">2</span>)
|
1643
|
+
<span style="color:#080;font-weight:bold">end</span>
|
1644
|
+
|
1645
|
+
it <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">ignores punctuation and space</span><span style="color:#710">'</span></span> <span style="color:#080;font-weight:bold">do</span>
|
1646
|
+
<span style="color:#036;font-weight:bold">WordCount</span>.count(<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">!</span><span style="color:#710">'</span></span>).must_equal(<span style="color:#00D;font-weight:bold">0</span>)
|
1647
|
+
<span style="color:#036;font-weight:bold">WordCount</span>.count(<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">! @ # % #!@#</span><span style="color:#710">'</span></span>).must_equal(<span style="color:#00D;font-weight:bold">0</span>)
|
1648
|
+
<span style="color:#036;font-weight:bold">WordCount</span>.count(<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style=""> !</span><span style="color:#710">'</span></span>).must_equal(<span style="color:#00D;font-weight:bold">0</span>)
|
1649
|
+
<span style="color:#036;font-weight:bold">WordCount</span>.count(<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">! </span><span style="color:#710">'</span></span>).must_equal(<span style="color:#00D;font-weight:bold">0</span>)
|
1650
|
+
<span style="color:#036;font-weight:bold">WordCount</span>.count(<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style=""> ! </span><span style="color:#710">'</span></span>).must_equal(<span style="color:#00D;font-weight:bold">0</span>)
|
1651
|
+
<span style="color:#036;font-weight:bold">WordCount</span>.count(<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style=""> ! </span><span style="color:#710">'</span></span>).must_equal(<span style="color:#00D;font-weight:bold">0</span>)
|
1652
|
+
<span style="color:#080;font-weight:bold">end</span>
|
1653
|
+
<span style="color:#080;font-weight:bold">end</span>
|
1654
|
+
</pre></p>
|
1655
|
+
|
1566
1656
|
<p><div class="paragraph">
|
1567
1657
|
<a name="Goodbye-LOAD_PATH-hello-require"/><div class="nav" id="Goodbye-LOAD_PATH-hello-require"><a title="Reverse jump to listing" href="#rev:Goodbye-LOAD_PATH-hello-require">≡</a><a title="Jump to previous segment" href="#Implement-your-project">△</a><a title="Jump to next segment" href="#Test-your-project">▽</a><a title="Jump to this segment" href="#Goodbye-LOAD_PATH-hello-require">◎</a></div>
|
1568
1658
|
<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>
|
@@ -1578,19 +1668,58 @@ puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">
|
|
1578
1668
|
<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>
|
1579
1669
|
</div></p></div>
|
1580
1670
|
</div> <div class="section">
|
1581
|
-
<a name="Test-your-project"/><div class="nav" id="Test-your-project"><a title="Reverse jump to listing" href="#rev:Test-your-project">≡</a><a title="Jump to previous segment" href="#Goodbye-LOAD_PATH-hello-require">△</a><a title="Jump to next segment" href="#
|
1671
|
+
<a name="Test-your-project"/><div class="nav" id="Test-your-project"><a title="Reverse jump to listing" href="#rev:Test-your-project">≡</a><a title="Jump to previous segment" href="#Goodbye-LOAD_PATH-hello-require">△</a><a title="Jump to next segment" href="#Units-and-tests">▽</a><a title="Jump to this segment" href="#Test-your-project">◎</a></div>
|
1582
1672
|
<h3 class="title">
|
1583
1673
|
3.3.5 Test your project
|
1584
1674
|
</h3>
|
1585
|
-
<div class="content"><
|
1586
|
-
<p>TODO: show how to write a unit test for the code</p>
|
1587
|
-
</blockquote>
|
1675
|
+
<div class="content"><p>To reduce the amount of code you have to write, <strong>Inochi</strong> defines the following convention for unit tests.</p>
|
1588
1676
|
|
1589
|
-
<
|
1590
|
-
<
|
1591
|
-
</
|
1677
|
+
<p><div class="paragraph">
|
1678
|
+
<a name="Units-and-tests"/><div class="nav" id="Units-and-tests"><a title="Reverse jump to listing" href="#rev:Units-and-tests">≡</a><a title="Jump to previous segment" href="#Test-your-project">△</a><a title="Jump to next segment" href="#Test-execution">▽</a><a title="Jump to this segment" href="#Units-and-tests">◎</a></div>
|
1679
|
+
<p class="title">Units and tests</p>
|
1680
|
+
<div class="content"><p>Every Ruby source file in your project’s <tt>lib/</tt> directory is considered to be a <strong>unit</strong>. Likewise, every Ruby source file in your project’s <tt>test/</tt> is considered to be a <strong>test</strong>.</p>
|
1681
|
+
|
1682
|
+
<p>As a result, your project’s <tt>test/</tt> directory structure <em>mirrors</em> the structure of your project’s <tt>lib/</tt> directory. For example, if your project has a <tt>lib/foo/bar.rb</tt> unit, then <tt>test/foo/bar.rb</tt> would be its the corresponding test.</p></div>
|
1683
|
+
</div> <div class="paragraph">
|
1684
|
+
<a name="Test-execution"/><div class="nav" id="Test-execution"><a title="Reverse jump to listing" href="#rev:Test-execution">≡</a><a title="Jump to previous segment" href="#Units-and-tests">△</a><a title="Jump to next segment" href="#Helper-libraries">▽</a><a title="Jump to this segment" href="#Test-execution">◎</a></div>
|
1685
|
+
<p class="title">Test execution</p>
|
1686
|
+
<div class="content"><p><pre>rake test</pre></p>
|
1687
|
+
|
1688
|
+
<p>The above command begins the testing process, during which:</p>
|
1689
|
+
|
1690
|
+
<ul>
|
1691
|
+
<li>
|
1692
|
+
<p>Tests which lack corresponding units are <em>skipped</em> and not executed. A message specifying which test file was skipped is printed to the standard error stream whenever this occurs.</p>
|
1693
|
+
</li>
|
1694
|
+
|
1695
|
+
<li>
|
1696
|
+
<p>Before a test is executed, its corresponding unit is automatically loaded into the Ruby environment using <code class="code">require()</code>.</p>
|
1697
|
+
</li>
|
1698
|
+
</ul>
|
1699
|
+
|
1700
|
+
<p>As for the details of test execution:</p>
|
1701
|
+
|
1702
|
+
<ul>
|
1703
|
+
<li>
|
1704
|
+
<p>Tests are executed by the <a href='http://rubyforge.org/projects/bfts/'>minitest</a> library, which allows you to write unit tests in a combination of styles: traditional TDD, modern BDD, alternative rSpec BDD, and mock-based validation styles.</p>
|
1705
|
+
</li>
|
1706
|
+
|
1707
|
+
<li>
|
1708
|
+
<p>Within each test, test cases are executed in random order. This is the default behavior of the <a href='http://rubyforge.org/projects/bfts/'>minitest</a> library.</p>
|
1709
|
+
</li>
|
1710
|
+
</ul></div>
|
1711
|
+
</div> <div class="paragraph">
|
1712
|
+
<a name="Helper-libraries"/><div class="nav" id="Helper-libraries"><a title="Reverse jump to listing" href="#rev:Helper-libraries">≡</a><a title="Jump to previous segment" href="#Test-execution">△</a><a title="Jump to next segment" href="#Publish-your-project">▽</a><a title="Jump to this segment" href="#Helper-libraries">◎</a></div>
|
1713
|
+
<p class="title">Helper libraries</p>
|
1714
|
+
<div class="content"><p>Your project’s main directory is added to Ruby’s load path. So if your tests have helper libraries stored in your project’s <tt>test/</tt> directory, you can load them into your tests by adding a “test/” prefix.</p>
|
1715
|
+
|
1716
|
+
<p>For example, if your <tt>test/foo/bar.rb</tt> test has a <tt>test/foo/qux.rb</tt> helper library, then you would write the following code inside the test to load the helper library:</p>
|
1717
|
+
|
1718
|
+
<p><pre class="code">require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">test/foo/qux</span><span style="color:#710">'</span></span>
|
1719
|
+
</pre></p></div>
|
1720
|
+
</div></p></div>
|
1592
1721
|
</div> <div class="section">
|
1593
|
-
<a name="Publish-your-project"/><div class="nav" id="Publish-your-project"><a title="Reverse jump to listing" href="#rev:Publish-your-project">≡</a><a title="Jump to previous segment" href="#
|
1722
|
+
<a name="Publish-your-project"/><div class="nav" id="Publish-your-project"><a title="Reverse jump to listing" href="#rev:Publish-your-project">≡</a><a title="Jump to previous segment" href="#Helper-libraries">△</a><a title="Jump to next segment" href="#Build-a-RubyGem">▽</a><a title="Jump to this segment" href="#Publish-your-project">◎</a></div>
|
1594
1723
|
<h3 class="title">
|
1595
1724
|
3.3.6 Publish your project
|
1596
1725
|
</h3>
|
@@ -1606,8 +1735,14 @@ puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">
|
|
1606
1735
|
<div class="content"><p>Build a RubyGem by running:</p>
|
1607
1736
|
|
1608
1737
|
<p><pre># rake pak
|
1609
|
-
(in /tmp/
|
1610
|
-
(in /tmp/
|
1738
|
+
(in /tmp/Inochi20090125-24483-1xmgxqy-0/word_count)
|
1739
|
+
(in /tmp/Inochi20090125-24483-1xmgxqy-0/word_count)
|
1740
|
+
Loaded suite word_count
|
1741
|
+
Started
|
1742
|
+
.
|
1743
|
+
Finished in 0.001073 seconds.
|
1744
|
+
|
1745
|
+
1 tests, 23 assertions, 0 failures, 0 errors, 0 skips
|
1611
1746
|
Successfully built RubyGem
|
1612
1747
|
Name: word_count
|
1613
1748
|
Version: 0.0.0
|
@@ -1628,7 +1763,7 @@ puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">
|
|
1628
1763
|
<span style="color:#808">bindir</span>: <span style="background-color:#fff0f0;color:#D20">bin</span>
|
1629
1764
|
<span style="color:#808">cert_chain</span>: <span style="background-color:#fff0f0;color:#D20">[]</span>
|
1630
1765
|
|
1631
|
-
<span style="color:#808">date</span>: <span style="background-color:#fff0f0;color:#D20">2009-01-
|
1766
|
+
<span style="color:#808">date</span>: <span style="background-color:#fff0f0;color:#D20">2009-01-25 00:00:00 -08:00</span>
|
1632
1767
|
<span style="color:#808">default_executable</span>:
|
1633
1768
|
<span style="color:#808">dependencies</span>:
|
1634
1769
|
- <span style="color:#339;font-weight:bold">!ruby/object</span>:<span style="color:#B06;font-weight:bold">Gem::Dependency</span>
|
@@ -1652,6 +1787,8 @@ puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">
|
|
1652
1787
|
<span style="color:#808">files</span>:
|
1653
1788
|
- <span style="background-color:#fff0f0;color:#D20">lib</span>
|
1654
1789
|
- <span style="background-color:#fff0f0;color:#D20">lib/word_count.rb</span>
|
1790
|
+
- <span style="background-color:#fff0f0;color:#D20">test</span>
|
1791
|
+
- <span style="background-color:#fff0f0;color:#D20">test/word_count.rb</span>
|
1655
1792
|
- <span style="background-color:#fff0f0;color:#D20">bin</span>
|
1656
1793
|
- <span style="background-color:#fff0f0;color:#D20">bin/word_count</span>
|
1657
1794
|
- <span style="background-color:#fff0f0;color:#D20">Rakefile</span>
|
@@ -1747,7 +1884,7 @@ puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">
|
|
1747
1884
|
<div class="content"><p>Build release announcements by running:</p>
|
1748
1885
|
|
1749
1886
|
<p><pre># rake ann
|
1750
|
-
(in /tmp/
|
1887
|
+
(in /tmp/Inochi20090125-24483-1xmgxqy-0/word_count)
|
1751
1888
|
</pre></p>
|
1752
1889
|
|
1753
1890
|
<p>This produces the following files in your project directory:</p>
|
@@ -1776,31 +1913,104 @@ puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">
|
|
1776
1913
|
</div></p></div>
|
1777
1914
|
</div></p></div>
|
1778
1915
|
</div><div class="chapter">
|
1779
|
-
<a name="history"/><div class="nav" id="history"><a title="Reverse jump to listing" href="#rev:history">≡</a><a title="Jump to previous segment" href="#Publish-the-documentation">△</a><a title="Jump to next segment" href="#Version-0.
|
1916
|
+
<a name="history"/><div class="nav" id="history"><a title="Reverse jump to listing" href="#rev:history">≡</a><a title="Jump to previous segment" href="#Publish-the-documentation">△</a><a title="Jump to next segment" href="#Version-0.2.0-2009-01-25">▽</a><a title="Jump to this segment" href="#history">◎</a></div>
|
1780
1917
|
<h1 class="title">
|
1781
1918
|
Chapter 4
|
1782
1919
|
<br/>
|
1783
1920
|
<big>History</big>
|
1784
1921
|
</h1>
|
1785
1922
|
<div class="content"><p><p><div class="section">
|
1786
|
-
<a name="Version-0.
|
1923
|
+
<a name="Version-0.2.0-2009-01-25"/><div class="nav" id="Version-0.2.0-2009-01-25"><a title="Reverse jump to listing" href="#rev:Version-0.2.0-2009-01-25">≡</a><a title="Jump to previous segment" href="#history">△</a><a title="Jump to next segment" href="#Contributor-kudos">▽</a><a title="Jump to this segment" href="#Version-0.2.0-2009-01-25">◎</a></div>
|
1924
|
+
<h2 class="title">
|
1925
|
+
4.1 Version 0.2.0 (2009-01-25)
|
1926
|
+
</h2>
|
1927
|
+
<div class="content"><p>This release adds support for unit testing, improves the portability of <strong>Inochi</strong> and configurability of your projects, adds new content to the user manual, and fixes some bugs.</p>
|
1928
|
+
|
1929
|
+
<p><div class="paragraph">
|
1930
|
+
<a name="Contributor-kudos"/><div class="nav" id="Contributor-kudos"><a title="Reverse jump to listing" href="#rev:Contributor-kudos">≡</a><a title="Jump to previous segment" href="#Version-0.2.0-2009-01-25">△</a><a title="Jump to next segment" href="#New-features">▽</a><a title="Jump to this segment" href="#Contributor-kudos">◎</a></div>
|
1931
|
+
<p class="title">Contributor kudos</p>
|
1932
|
+
<div class="content"><p>Florian Gilcher patched <strong>Inochi</strong> to:</p>
|
1933
|
+
|
1934
|
+
<ul>
|
1935
|
+
<li>
|
1936
|
+
<p>Run on both JRuby and normal Ruby in multiple versions and with different executable names on Windows.</p>
|
1937
|
+
</li>
|
1938
|
+
|
1939
|
+
<li>
|
1940
|
+
<p>Allow project authors to be specified by hand instead of always relying on the license file to be in expected form, because his license template doesn’t follow that form.</p>
|
1941
|
+
</li>
|
1942
|
+
</ul></div>
|
1943
|
+
</div> <div class="paragraph">
|
1944
|
+
<a name="New-features"/><div class="nav" id="New-features"><a title="Reverse jump to listing" href="#rev:New-features">≡</a><a title="Jump to previous segment" href="#Contributor-kudos">△</a><a title="Jump to next segment" href="#Bug-fixes">▽</a><a title="Jump to this segment" href="#New-features">◎</a></div>
|
1945
|
+
<p class="title">New features</p>
|
1946
|
+
<div class="content"><ul>
|
1947
|
+
<li>
|
1948
|
+
<p>Added support for unit testing via the <a href='http://rubyforge.org/projects/bfts/'>minitest</a> library. See <a class="xref" href="#Test-your-project">Section 3.3.5. Test your project</a> for documentation.</p>
|
1949
|
+
|
1950
|
+
<p>Also, in related news, the scaffold generator now emits a default unit test for the main project library.</p>
|
1951
|
+
</li>
|
1952
|
+
|
1953
|
+
<li>
|
1954
|
+
<p>Added optional ProgramName parameter to the scaffold generator. This allows you to specify reasonable program names when your project module has a strange capitalization:</p>
|
1955
|
+
|
1956
|
+
<pre>> inochi ERBook
|
1957
|
+
create er_book/LICENSE
|
1958
|
+
|
1959
|
+
> inochi ERBook erbook
|
1960
|
+
create erbook/LICENSE
|
1961
|
+
|
1962
|
+
> inochi ERBook foobar
|
1963
|
+
create foobar/LICENSE</pre>
|
1964
|
+
</li>
|
1965
|
+
|
1966
|
+
<li>
|
1967
|
+
<p>Allow project authors to be specified via</p>
|
1968
|
+
|
1969
|
+
<p><code class="code"><span style="color:#036;font-weight:bold">Inochi</span>.init <span style="color:#A60">:YourProject</span>, <span style="color:#A60">:authors</span> => ...</code></p>
|
1970
|
+
</li>
|
1971
|
+
</ul></div>
|
1972
|
+
</div> <div class="paragraph">
|
1973
|
+
<a name="Bug-fixes"/><div class="nav" id="Bug-fixes"><a title="Reverse jump to listing" href="#rev:Bug-fixes">≡</a><a title="Jump to previous segment" href="#New-features">△</a><a title="Jump to next segment" href="#Housekeeping">▽</a><a title="Jump to this segment" href="#Bug-fixes">◎</a></div>
|
1974
|
+
<p class="title">Bug fixes</p>
|
1975
|
+
<div class="content"><ul>
|
1976
|
+
<li>
|
1977
|
+
<p>Use <code class="code"><span style="color:#036;font-weight:bold">Gem</span>::<span style="color:#036;font-weight:bold">RubyGemsVersion</span></code> instead of a shell command to determine rubygems version for generation of <tt>setup.erb</tt>. (Florian Gilcher)</p>
|
1978
|
+
</li>
|
1979
|
+
|
1980
|
+
<li>
|
1981
|
+
<p>Add blank lines between all list items, not just multi-line ones, in the plain-text version of the relase announcement for improved readability.</p>
|
1982
|
+
</li>
|
1983
|
+
|
1984
|
+
<li>
|
1985
|
+
<p>Omit LaTeX-style heading numbers from release announcements. They caused confusion, especially in plain-text announcements, when trying to determine which version of a project was released.</p>
|
1986
|
+
</li>
|
1987
|
+
</ul></div>
|
1988
|
+
</div> <div class="paragraph">
|
1989
|
+
<a name="Housekeeping"/><div class="nav" id="Housekeeping"><a title="Reverse jump to listing" href="#rev:Housekeeping">≡</a><a title="Jump to previous segment" href="#Bug-fixes">△</a><a title="Jump to next segment" href="#Version-0.1.0-2009-01-13">▽</a><a title="Jump to this segment" href="#Housekeeping">◎</a></div>
|
1990
|
+
<p class="title">Housekeeping</p>
|
1991
|
+
<div class="content"><ul>
|
1992
|
+
<li>Added unit tests for utility methods provided by the <strong>Inochi</strong> module: project name calculation and CamelCase to snake_case conversion.</li>
|
1993
|
+
</ul></div>
|
1994
|
+
</div></p></div>
|
1995
|
+
</div> <div class="section">
|
1996
|
+
<a name="Version-0.1.0-2009-01-13"/><div class="nav" id="Version-0.1.0-2009-01-13"><a title="Reverse jump to listing" href="#rev:Version-0.1.0-2009-01-13">≡</a><a title="Jump to previous segment" href="#Housekeeping">△</a><a title="Jump to next segment" href="#New-features-608879868">▽</a><a title="Jump to this segment" href="#Version-0.1.0-2009-01-13">◎</a></div>
|
1787
1997
|
<h2 class="title">
|
1788
1998
|
4.1 Version 0.1.0 (2009-01-13)
|
1789
1999
|
</h2>
|
1790
2000
|
<div class="content"><p>This release reattempts to fix the <a href='http://www.ruby-forum.com/topic/176173#771281'>circular dependency problem</a> that occurred when installing either <strong>Inochi</strong> or <strong>ERBook</strong>.</p>
|
1791
2001
|
|
1792
2002
|
<p><div class="paragraph">
|
1793
|
-
<a name="New-features"/><div class="nav" id="New-features"><a title="Reverse jump to listing" href="#rev:New-features">≡</a><a title="Jump to previous segment" href="#Version-0.1.0-2009-01-13">△</a><a title="Jump to next segment" href="#Bug-fixes">▽</a><a title="Jump to this segment" href="#New-features">◎</a></div>
|
2003
|
+
<a name="New-features-608879868"/><div class="nav" id="New-features-608879868"><a title="Reverse jump to listing" href="#rev:New-features-608879868">≡</a><a title="Jump to previous segment" href="#Version-0.1.0-2009-01-13">△</a><a title="Jump to next segment" href="#Bug-fixes-608886358">▽</a><a title="Jump to this segment" href="#New-features-608879868">◎</a></div>
|
1794
2004
|
<p class="title">New features</p>
|
1795
2005
|
<div class="content"><ul>
|
1796
|
-
<li><code class="code"
|
2006
|
+
<li><code class="code">**<span style="color:#036;font-weight:bold">Inochi</span>**.init()</code> now adds <code class="code"><span style="color:#666">#major()</span></code>, <code class="code"><span style="color:#666">#series()</span></code>, and <code class="code"><span style="color:#666">#requirement()</span></code> instance methods to a project’s <code class="code"><span style="color:#036;font-weight:bold">VERSION</span></code> constant.</li>
|
1797
2007
|
</ul></div>
|
1798
2008
|
</div> <div class="paragraph">
|
1799
|
-
<a name="Bug-fixes"/><div class="nav" id="Bug-fixes"><a title="Reverse jump to listing" href="#rev:Bug-fixes">≡</a><a title="Jump to previous segment" href="#New-features">△</a><a title="Jump to next segment" href="#Version-0.0.1-2009-01-13">▽</a><a title="Jump to this segment" href="#Bug-fixes">◎</a></div>
|
2009
|
+
<a name="Bug-fixes-608886358"/><div class="nav" id="Bug-fixes-608886358"><a title="Reverse jump to listing" href="#rev:Bug-fixes-608886358">≡</a><a title="Jump to previous segment" href="#New-features-608879868">△</a><a title="Jump to next segment" href="#Version-0.0.1-2009-01-13">▽</a><a title="Jump to this segment" href="#Bug-fixes-608886358">◎</a></div>
|
1800
2010
|
<p class="title">Bug fixes</p>
|
1801
2011
|
<div class="content"><ul>
|
1802
2012
|
<li>
|
1803
|
-
<p>Solved circular dependency problem by making inochi gem not dependent on erbook gem. However,
|
2013
|
+
<p>Solved circular dependency problem by making inochi gem not dependent on erbook gem. However, ERBook is still required during runtime and is supplied on the <code class="code">gem install</code> command for <strong>Inochi</strong>.</p>
|
1804
2014
|
|
1805
2015
|
<p><a class="xref" href="#Installation">Section 2.2. Installation</a> has been updated accordingly.</p>
|
1806
2016
|
</li>
|
@@ -1811,20 +2021,20 @@ puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">
|
|
1811
2021
|
</ul></div>
|
1812
2022
|
</div></p></div>
|
1813
2023
|
</div> <div class="section">
|
1814
|
-
<a name="Version-0.0.1-2009-01-13"/><div class="nav" id="Version-0.0.1-2009-01-13"><a title="Reverse jump to listing" href="#rev:Version-0.0.1-2009-01-13">≡</a><a title="Jump to previous segment" href="#Bug-fixes">△</a><a title="Jump to next segment" href="#Contributor-kudos">▽</a><a title="Jump to this segment" href="#Version-0.0.1-2009-01-13">◎</a></div>
|
2024
|
+
<a name="Version-0.0.1-2009-01-13"/><div class="nav" id="Version-0.0.1-2009-01-13"><a title="Reverse jump to listing" href="#rev:Version-0.0.1-2009-01-13">≡</a><a title="Jump to previous segment" href="#Bug-fixes-608886358">△</a><a title="Jump to next segment" href="#Contributor-kudos-608900438">▽</a><a title="Jump to this segment" href="#Version-0.0.1-2009-01-13">◎</a></div>
|
1815
2025
|
<h2 class="title">
|
1816
2026
|
4.1 Version 0.0.1 (2009-01-13)
|
1817
2027
|
</h2>
|
1818
2028
|
<div class="content"><p>This release fixes some show-stopper bugs.</p>
|
1819
2029
|
|
1820
2030
|
<p><div class="paragraph">
|
1821
|
-
<a name="Contributor-kudos"/><div class="nav" id="Contributor-kudos"><a title="Reverse jump to listing" href="#rev:Contributor-kudos">≡</a><a title="Jump to previous segment" href="#Version-0.0.1-2009-01-13">△</a><a title="Jump to next segment" href="#Bug-fixes-
|
2031
|
+
<a name="Contributor-kudos-608900438"/><div class="nav" id="Contributor-kudos-608900438"><a title="Reverse jump to listing" href="#rev:Contributor-kudos-608900438">≡</a><a title="Jump to previous segment" href="#Version-0.0.1-2009-01-13">△</a><a title="Jump to next segment" href="#Bug-fixes-608905168">▽</a><a title="Jump to this segment" href="#Contributor-kudos-608900438">◎</a></div>
|
1822
2032
|
<p class="title">Contributor kudos</p>
|
1823
2033
|
<div class="content"><ul>
|
1824
2034
|
<li>Florian Gilcher tried the first release of <strong>Inochi</strong> and reported bugs.</li>
|
1825
2035
|
</ul></div>
|
1826
2036
|
</div> <div class="paragraph">
|
1827
|
-
<a name="Bug-fixes-
|
2037
|
+
<a name="Bug-fixes-608905168"/><div class="nav" id="Bug-fixes-608905168"><a title="Reverse jump to listing" href="#rev:Bug-fixes-608905168">≡</a><a title="Jump to previous segment" href="#Contributor-kudos-608900438">△</a><a title="Jump to next segment" href="#Housekeeping-608918928">▽</a><a title="Jump to this segment" href="#Bug-fixes-608905168">◎</a></div>
|
1828
2038
|
<p class="title">Bug fixes</p>
|
1829
2039
|
<div class="content"><ul>
|
1830
2040
|
<li>
|
@@ -1842,14 +2052,14 @@ puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">
|
|
1842
2052
|
</li>
|
1843
2053
|
</ul></div>
|
1844
2054
|
</div> <div class="paragraph">
|
1845
|
-
<a name="Housekeeping"/><div class="nav" id="Housekeeping"><a title="Reverse jump to listing" href="#rev:Housekeeping">≡</a><a title="Jump to previous segment" href="#Bug-fixes-
|
2055
|
+
<a name="Housekeeping-608918928"/><div class="nav" id="Housekeeping-608918928"><a title="Reverse jump to listing" href="#rev:Housekeeping-608918928">≡</a><a title="Jump to previous segment" href="#Bug-fixes-608905168">△</a><a title="Jump to next segment" href="#Version-0.0.0-2009-01-13">▽</a><a title="Jump to this segment" href="#Housekeeping-608918928">◎</a></div>
|
1846
2056
|
<p class="title">Housekeeping</p>
|
1847
2057
|
<div class="content"><ul>
|
1848
2058
|
<li>Only add project libraries to <code class="code"><span style="color:#d70;font-weight:bold">$LOAD_PATH</span></code> if not already there.</li>
|
1849
2059
|
</ul></div>
|
1850
2060
|
</div></p></div>
|
1851
2061
|
</div> <div class="section">
|
1852
|
-
<a name="Version-0.0.0-2009-01-13"/><div class="nav" id="Version-0.0.0-2009-01-13"><a title="Reverse jump to listing" href="#rev:Version-0.0.0-2009-01-13">≡</a><a title="Jump to previous segment" href="#Housekeeping">△</a>▽<a title="Jump to this segment" href="#Version-0.0.0-2009-01-13">◎</a></div>
|
2062
|
+
<a name="Version-0.0.0-2009-01-13"/><div class="nav" id="Version-0.0.0-2009-01-13"><a title="Reverse jump to listing" href="#rev:Version-0.0.0-2009-01-13">≡</a><a title="Jump to previous segment" href="#Housekeeping-608918928">△</a>▽<a title="Jump to this segment" href="#Version-0.0.0-2009-01-13">◎</a></div>
|
1853
2063
|
<h2 class="title">
|
1854
2064
|
4.1 Version 0.0.0 (2009-01-13)
|
1855
2065
|
</h2>
|
@@ -1867,16 +2077,16 @@ puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">
|
|
1867
2077
|
|
1868
2078
|
<div id="footer">
|
1869
2079
|
|
1870
|
-
Generated by <a href="http://snk.tuxfamily.org/lib/erbook/">ERBook 6.0.1</a> on
|
2080
|
+
Generated by <a href="http://snk.tuxfamily.org/lib/erbook/">ERBook 6.0.1</a> on Sun Jan 25 10:26:44 -0800 2009.
|
1871
2081
|
|
1872
2082
|
<div id="footer-credits">
|
1873
2083
|
<p>
|
1874
|
-
<img class="icon" src="&icon_caution;"
|
1875
|
-
<img class="icon" src="&icon_tip;"
|
1876
|
-
<img class="icon" src="&icon_important;"
|
1877
|
-
<img class="icon" src="&icon_note;"
|
1878
|
-
<img class="icon" src="&icon_warning;"
|
1879
|
-
<img class="icon" src="&icon_quote;"
|
2084
|
+
<img class="icon" alt="caution" src="&icon_caution;"/>
|
2085
|
+
<img class="icon" alt="tip" src="&icon_tip;"/>
|
2086
|
+
<img class="icon" alt="important" src="&icon_important;"/>
|
2087
|
+
<img class="icon" alt="note" src="&icon_note;"/>
|
2088
|
+
<img class="icon" alt="warning" src="&icon_warning;"/>
|
2089
|
+
<img class="icon" alt="quote" src="&icon_quote;"/>
|
1880
2090
|
|
1881
2091
|
<br/>
|
1882
2092
|
|
@@ -1884,7 +2094,7 @@ puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">
|
|
1884
2094
|
</p>
|
1885
2095
|
|
1886
2096
|
<p>
|
1887
|
-
<img class="icon" src="&icon_link;"
|
2097
|
+
<img class="icon" alt="link" src="&icon_link;"/>
|
1888
2098
|
|
1889
2099
|
<br/>
|
1890
2100
|
|