inochi 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
|