inochi 0.3.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. data/CREDITS +1 -0
  2. data/bin/inochi +112 -104
  3. data/doc/api/classes/Array.html +370 -0
  4. data/doc/api/classes/File.html +110 -0
  5. data/doc/api/classes/Inochi.html +1493 -0
  6. data/doc/api/classes/Inochi/Manual.html +157 -0
  7. data/doc/api/classes/Inochi/Phrases.html +331 -0
  8. data/doc/api/classes/Inochi/Version.html +190 -0
  9. data/doc/api/classes/TempDir.html +164 -0
  10. data/doc/api/created.rid +1 -0
  11. data/doc/api/css/main.css +263 -0
  12. data/doc/api/css/panel.css +383 -0
  13. data/doc/api/css/reset.css +53 -0
  14. data/doc/api/files/CREDITS.html +61 -0
  15. data/doc/api/files/LICENSE.html +76 -0
  16. data/doc/api/files/lib/inochi/book_rb.html +96 -0
  17. data/doc/api/files/lib/inochi/init_rb.html +78 -0
  18. data/doc/api/files/lib/inochi/main_rb.html +52 -0
  19. data/doc/api/files/lib/inochi/rake_rb.html +52 -0
  20. data/doc/api/files/lib/inochi/test/bacon_rb.html +67 -0
  21. data/doc/api/files/lib/inochi/test/context_rb.html +69 -0
  22. data/doc/api/files/lib/inochi/test/dfect_rb.html +67 -0
  23. data/doc/api/files/lib/inochi/test/matchy_rb.html +69 -0
  24. data/doc/api/files/lib/inochi/test/minitest_rb.html +71 -0
  25. data/doc/api/files/lib/inochi/test/mocha_rb.html +67 -0
  26. data/doc/api/files/lib/inochi/test/rspec_rb.html +67 -0
  27. data/doc/api/files/lib/inochi/test/shoulda_rb.html +67 -0
  28. data/doc/api/files/lib/inochi/test/test_spec_rb.html +67 -0
  29. data/doc/api/files/lib/inochi/test/test_unit_rb.html +67 -0
  30. data/doc/api/files/lib/inochi/util/combo_rb.html +59 -0
  31. data/doc/api/files/lib/inochi/util/tempdir_rb.html +68 -0
  32. data/doc/api/files/lib/inochi/util_rb.html +59 -0
  33. data/doc/api/files/lib/inochi_rb.html +78 -0
  34. data/doc/api/i/arrows.png +0 -0
  35. data/doc/api/i/results_bg.png +0 -0
  36. data/doc/api/i/tree_bg.png +0 -0
  37. data/doc/api/index.html +14 -18
  38. data/doc/api/js/jquery-1.3.2.min.js +19 -0
  39. data/doc/api/js/jquery-effect.js +593 -0
  40. data/doc/api/js/main.js +22 -0
  41. data/doc/api/js/searchdoc.js +605 -0
  42. data/doc/api/panel/index.html +63 -0
  43. data/doc/api/panel/search_index.js +1 -0
  44. data/doc/api/panel/tree.js +1 -0
  45. data/doc/history.erb +75 -34
  46. data/doc/index.erb +10 -5
  47. data/doc/index.xhtml +806 -1145
  48. data/doc/intro.erb +33 -27
  49. data/doc/setup.erb +16 -15
  50. data/doc/usage.erb +86 -137
  51. data/lib/inochi.rb +25 -13
  52. data/lib/inochi/book.rb +13 -6
  53. data/lib/inochi/init.rb +41 -24
  54. data/lib/inochi/main.rb +17 -7
  55. data/lib/inochi/rake.rb +200 -59
  56. data/lib/inochi/test/bacon.rb +3 -0
  57. data/lib/inochi/test/context.rb +4 -0
  58. data/lib/inochi/test/dfect.rb +3 -0
  59. data/lib/inochi/test/matchy.rb +4 -0
  60. data/lib/inochi/test/minitest.rb +7 -0
  61. data/lib/inochi/test/mocha.rb +3 -0
  62. data/lib/inochi/test/rspec.rb +3 -0
  63. data/lib/inochi/test/shoulda.rb +3 -0
  64. data/lib/inochi/test/test_spec.rb +3 -0
  65. data/lib/inochi/test/test_unit.rb +3 -0
  66. data/lib/inochi/util.rb +23 -1
  67. data/lib/inochi/util/combo.rb +191 -0
  68. data/lib/inochi/util/tempdir.rb +29 -0
  69. data/rakefile +12 -0
  70. data/test/inochi.rb +5 -0
  71. metadata +119 -45
  72. data/Rakefile +0 -6
  73. data/doc/api/Inochi.html +0 -2574
  74. data/doc/api/Inochi/Manual.html +0 -230
  75. data/doc/api/Inochi/Phrases.html +0 -409
  76. data/doc/api/Inochi/Version.html +0 -222
  77. data/doc/api/all-methods.html +0 -180
  78. data/doc/api/all-namespaces.html +0 -28
  79. data/doc/api/app.js +0 -18
  80. data/doc/api/jquery.js +0 -11
  81. data/doc/api/readme.html +0 -38
  82. data/doc/api/style.css +0 -68
  83. data/doc/api/syntax_highlight.css +0 -21
  84. data/doc/theory.erb +0 -3
@@ -0,0 +1,63 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
3
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
4
+
5
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
6
+ <head>
7
+ <title>layout</title>
8
+ <link rel="stylesheet" href="../css/reset.css" type="text/css" media="screen" charset="utf-8" />
9
+ <link rel="stylesheet" href="../css/panel.css" type="text/css" media="screen" charset="utf-8" />
10
+ <script src="search_index.js" type="text/javascript" charset="utf-8"></script>
11
+ <script src="tree.js" type="text/javascript" charset="utf-8"></script>
12
+ <script src="../js/jquery-1.3.2.min.js" type="text/javascript" charset="utf-8"></script>
13
+ <script src="../js/searchdoc.js" type="text/javascript" charset="utf-8"></script>
14
+ <script type="text/javascript" charset="utf-8">
15
+ //<![CDATA[
16
+ function placeholder() {
17
+ if (jQuery.browser.safari) return;
18
+ $('#search-label').click(function() {
19
+ $('#search').focus();
20
+ $('#search-label').hide();
21
+ });
22
+
23
+ $('#search').focus(function() {
24
+ $('#search-label').hide();
25
+ });
26
+ $('#search').blur(function() {
27
+ this.value == '' && $('#search-label').show()
28
+ });
29
+
30
+ $('#search')[0].value == '' && $('#search-label').show();
31
+
32
+ setInterval(function() { $('#search')[0].value != '' && $('#search-label').hide() }, 100)
33
+ }
34
+ $(function() {
35
+ placeholder();
36
+ new Searchdoc.Panel($('#panel'), search_data, tree, top.frames[1]);
37
+ $('#search').focus();
38
+ })
39
+ //]]>
40
+ </script>
41
+ </head>
42
+ <body>
43
+ <div class="panel panel_tree" id="panel">
44
+ <div class="header">
45
+ <div>
46
+ <label for="search" id="search-label" style="display: none">Search</label>
47
+ <table>
48
+ <tr><td>
49
+ <input type="Search" placeholder="Search" autosave="searchdoc" results="10" id="search" autocomplete="off"/>
50
+ </td></tr>
51
+ </table></div>
52
+ </div>
53
+ <div class="tree">
54
+ <ul>
55
+ </ul>
56
+ </div>
57
+ <div class="result">
58
+ <ul>
59
+ </ul>
60
+ </div>
61
+ </div>
62
+ </body>
63
+ </html>
@@ -0,0 +1 @@
1
+ var search_data = {"index":{"info":[["Array","lib\/inochi\/util\/combo.rb","classes\/Array.html"," < Object"," ",1],["File","lib\/inochi\/util.rb","classes\/File.html"," < IO","",1],["Inochi","lib\/inochi\/init.rb","classes\/Inochi.html",""," ",1],["Manual","Inochi","classes\/Inochi\/Manual.html","","",1],["Phrases","Inochi","classes\/Inochi\/Phrases.html"," < Object","Interface to translations of human text used in a project. ",1],["Version","Inochi","classes\/Inochi\/Version.html","","",1],["TempDir","lib\/inochi\/util\/tempdir.rb","classes\/TempDir.html"," < Object","",1],["[]","Inochi::Phrases","classes\/Inochi\/Phrases.html#M000029","(phrase, *words)","Translates the given phrase into the target locale (see #locale and #locale=) and then substitutes the",2],["book","Inochi","classes\/Inochi.html#M000011","(project_symbol, book_template)","Provides a common configuration for the project's user manual: * Assigns the title, subtitle, date, and",2],["close","TempDir","classes\/TempDir.html#M000009","()","",2],["combination","Array","classes\/Array.html#M000002","(sample_size = self.length, &sampler)","Returns all possible combinations made from sample_size number of items from this list. ==== Parameters",2],["combinations","Array","classes\/Array.html#M000003","(&sampler)","Returns all possible combinations of all possible lengths. ==== Parameters [sampler] If given, each combination",2],["enumeration","Array","classes\/Array.html#M000000","(sample_size = self.length, &sampler)","Returns all possible enumerations made from sample_size number of items from this list. ==== Parameters",2],["enumerations","Array","classes\/Array.html#M000001","(&sampler)","Returns all possible enumerations of all possible lengths. ==== Parameters [sampler] If given, each enumeration",2],["history","Inochi::Manual","classes\/Inochi\/Manual.html#M000013","()","Contains release notes for all project releases. ",2],["init","Inochi","classes\/Inochi.html#M000022","(project_symbol, project_config = {})","Establishes your project in Ruby's runtime environment by defining the project module (which serves as",2],["locale=","Inochi::Phrases","classes\/Inochi\/Phrases.html#M000027","(locale)","",2],["main","Inochi","classes\/Inochi.html#M000010","(project_symbol, *trollop_args, &trollop_config)","Provides a common configuration for the main project executable: * The program description (the sequence",2],["major","Inochi::Version","classes\/Inochi\/Version.html#M000023","()","Returns the major number in this version. ",2],["method_missing","Inochi::Phrases","classes\/Inochi\/Phrases.html#M000030","(meth, *args)","Provides access to translations in any language, regardless of the target locale (see #locale and #locale=).",2],["new","Inochi::Phrases","classes\/Inochi\/Phrases.html#M000026","(project_install_dir)","",2],["new","TempDir","classes\/TempDir.html#M000006","(basename = nil, dirname = nil)","",2],["permutation","Array","classes\/Array.html#M000004","(sample_size = self.length, &sampler)","Returns all possible permutations made from sample_size number of items from this list. ==== Parameters",2],["permutations","Array","classes\/Array.html#M000005","(&sampler)","Returns all possible permutations of all possible lengths. ==== Parameters [sampler] If given, each permutation",2],["phrases","Inochi::Phrases","classes\/Inochi\/Phrases.html#M000028","()","Returns all phrases that underwent (or attempted) translation via this object. ",2],["project","Inochi::Manual","classes\/Inochi\/Manual.html#M000012","()","Defines a brief summary of this project. ",2],["rake","Inochi","classes\/Inochi.html#M000014","(project_symbol, options = {})","Provides Rake tasks for packaging, publishing, and announcing your project. * An AUTHORS constant (which",2],["requirement","Inochi::Version","classes\/Inochi\/Version.html#M000025","()","Returns a Gem::Requirement expression. ",2],["series","Inochi::Version","classes\/Inochi\/Version.html#M000024","()","Returns a string describing any version with the current major number. ",2],["write","File","classes\/File.html#M000021","(path, content)","Writes the given content to the given file. ",2],["CREDITS","files\/CREDITS.html","files\/CREDITS.html","","* Florian Gilcher ",3],["LICENSE","files\/LICENSE.html","files\/LICENSE.html","","(the ISC license) Copyright 2008 Suraj N. Kurapati <sunaku@gmail.com> Permission to use, copy, modify,",3],["inochi.rb","files\/lib\/inochi_rb.html","files\/lib\/inochi_rb.html",""," ",3],["book.rb","files\/lib\/inochi\/book_rb.html","files\/lib\/inochi\/book_rb.html",""," ",3],["init.rb","files\/lib\/inochi\/init_rb.html","files\/lib\/inochi\/init_rb.html",""," ",3],["main.rb","files\/lib\/inochi\/main_rb.html","files\/lib\/inochi\/main_rb.html",""," ",3],["rake.rb","files\/lib\/inochi\/rake_rb.html","files\/lib\/inochi\/rake_rb.html",""," ",3],["bacon.rb","files\/lib\/inochi\/test\/bacon_rb.html","files\/lib\/inochi\/test\/bacon_rb.html","","Integration for the [Bacon library](http:\/\/github.com\/chneukirchen\/bacon). ",3],["context.rb","files\/lib\/inochi\/test\/context_rb.html","files\/lib\/inochi\/test\/context_rb.html","","Integration for the [Context library](http:\/\/github.com\/jeremymcanally\/context). ",3],["dfect.rb","files\/lib\/inochi\/test\/dfect_rb.html","files\/lib\/inochi\/test\/dfect_rb.html","","Integration for the [Dfect library](http:\/\/snk.tuxfamily.org\/lib\/dfect\/). ",3],["matchy.rb","files\/lib\/inochi\/test\/matchy_rb.html","files\/lib\/inochi\/test\/matchy_rb.html","","Integration for the [Matchy library](http:\/\/github.com\/jeremymcanally\/matchy) ",3],["minitest.rb","files\/lib\/inochi\/test\/minitest_rb.html","files\/lib\/inochi\/test\/minitest_rb.html","","Integration for the [Minitest library](http:\/\/blog.zenspider.com\/minitest\/). ",3],["mocha.rb","files\/lib\/inochi\/test\/mocha_rb.html","files\/lib\/inochi\/test\/mocha_rb.html","","Integration for the [Mocha library](http:\/\/mocha.rubyforge.org). ",3],["rspec.rb","files\/lib\/inochi\/test\/rspec_rb.html","files\/lib\/inochi\/test\/rspec_rb.html","","Integration for the [RSpec library](http:\/\/rspec.info). ",3],["shoulda.rb","files\/lib\/inochi\/test\/shoulda_rb.html","files\/lib\/inochi\/test\/shoulda_rb.html","","Integration for the [Shoulda library](http:\/\/thoughtbot.com\/projects\/shoulda\/). ",3],["test_spec.rb","files\/lib\/inochi\/test\/test_spec_rb.html","files\/lib\/inochi\/test\/test_spec_rb.html","","Integration for the [test\/spec library](http:\/\/chneukirchen.org\/repos\/testspec\/README). ",3],["test_unit.rb","files\/lib\/inochi\/test\/test_unit_rb.html","files\/lib\/inochi\/test\/test_unit_rb.html","","Integration for the [Test::Unit library](http:\/\/test-unit.rubyforge.org). ",3],["util.rb","files\/lib\/inochi\/util_rb.html","files\/lib\/inochi\/util_rb.html",""," ",3],["combo.rb","files\/lib\/inochi\/util\/combo_rb.html","files\/lib\/inochi\/util\/combo_rb.html",""," ",3],["tempdir.rb","files\/lib\/inochi\/util\/tempdir_rb.html","files\/lib\/inochi\/util\/tempdir_rb.html",""," ",3]],"longSearchIndex":["combo.rb","util.rb","init.rb","inochi","inochi","inochi","tempdir.rb","phrases","inochi","tempdir","array","array","array","array","manual","inochi","phrases","inochi","version","phrases","phrases","tempdir","array","array","phrases","manual","inochi","version","version","file","files\/credits.html","files\/license.html","files\/lib\/inochi_rb.html","files\/lib\/inochi\/book_rb.html","files\/lib\/inochi\/init_rb.html","files\/lib\/inochi\/main_rb.html","files\/lib\/inochi\/rake_rb.html","files\/lib\/inochi\/test\/bacon_rb.html","files\/lib\/inochi\/test\/context_rb.html","files\/lib\/inochi\/test\/dfect_rb.html","files\/lib\/inochi\/test\/matchy_rb.html","files\/lib\/inochi\/test\/minitest_rb.html","files\/lib\/inochi\/test\/mocha_rb.html","files\/lib\/inochi\/test\/rspec_rb.html","files\/lib\/inochi\/test\/shoulda_rb.html","files\/lib\/inochi\/test\/test_spec_rb.html","files\/lib\/inochi\/test\/test_unit_rb.html","files\/lib\/inochi\/util_rb.html","files\/lib\/inochi\/util\/combo_rb.html","files\/lib\/inochi\/util\/tempdir_rb.html"],"searchIndex":["array","file","inochi","manual","phrases","version","tempdir","[]()","book()","close()","combination()","combinations()","enumeration()","enumerations()","history()","init()","locale=()","main()","major()","method_missing()","new()","new()","permutation()","permutations()","phrases()","project()","rake()","requirement()","series()","write()","credits","license","inochi.rb","book.rb","init.rb","main.rb","rake.rb","bacon.rb","context.rb","dfect.rb","matchy.rb","minitest.rb","mocha.rb","rspec.rb","shoulda.rb","test_spec.rb","test_unit.rb","util.rb","combo.rb","tempdir.rb"]}}
@@ -0,0 +1 @@
1
+ var tree = [["Array","classes\/Array.html"," < Object",[]],["File","classes\/File.html"," < IO",[]],["Inochi","classes\/Inochi.html","",[["Manual","classes\/Inochi\/Manual.html","",[]],["Phrases","classes\/Inochi\/Phrases.html"," < Object",[]],["Version","classes\/Inochi\/Version.html","",[]]]],["TempDir","classes\/TempDir.html"," < Object",[]]]
@@ -1,9 +1,67 @@
1
- <% chapter "History" do %>
2
- <% project_history do %>
3
- <% section "Version 0.3.0 (2009-02-12)" do %>
1
+ %#--
2
+ %# Copyright 2009 Suraj N. Kurapati
3
+ %# See the LICENSE file for details.
4
+ %#++
5
+
6
+ %|chapter "History"
7
+ %|history
8
+ %|section "Version 1.0.0 (2009-05-03)"
9
+ This release allows your gems to not depend on <%= $project %>, lets you choose which unit testing library to use, adds new utility libraries and rake tasks, and fixes some bugs.
10
+
11
+ %|paragraph "Incompatible changes"
12
+ * Your program is no longer halted by `Inochi.init()` and `Inochi.rake()` if gem dependencies are not satified. A warning is issued instead.
13
+
14
+ * The `project_summary` and `project_history` nodes, which are provided by `Inochi.book()` to the user manual, have been renamed to `project` and "history" respectively.
15
+
16
+ * <%= ERBook::DISPLAY %> is now used for generating the user manual. This is a major step up from the previous version, and so it has incompatible changes. See its release notes for details.
17
+
18
+ * [SDoc](http://github.com/voloko/sdoc/tree/master) is now used to generate API documentation instead of [YARD](http://yard.rubyforge.org). If you link to particular classes or methods in the generated API documentation, be sure to update your link addresses!
19
+
20
+ * Minitest is no longer the default testing library. You must specify which testing library you want to use via the `:test_with` option of the `Inochi.rake()` method. See <%= xref "Test execution" %> for details.
21
+
22
+ * The "pak" rake task, which is provided by `Inochi.rake()`, has been renamed to "gem".
23
+
24
+ %|paragraph "New features"
25
+ * Add `:inochi_consumer` and `:inochi_producer` options to `Inochi.rake()` which allows you to *avoid* having Inochi as a runtime and development dependency, respectively, for your project's gem.
26
+
27
+ This is useful if you just want to use Inochi facilities for building a gem for a pure Ruby library that does not have any need for Inochi's runtime convenience facilities.
28
+
29
+ * Add `:develop` option for `Inochi.init()` which lets you specify RubyGems as development dependencies in the same way as the `:require` option.
30
+
31
+ * Add "lint" rake task which reports [code quality statistics](http://www.infoq.com/news/2008/11/static-analysis-tool-roundup).
32
+
33
+ * Add "test:cov" rake task which reports code coverage statistics.
34
+
35
+ * Add "test:ruby" task which runs all tests with [multiruby](http://www.infoq.com/news/2008/02/multiruby-testing).
36
+
37
+ * Add 'rake opts=' environment variable, which lets you specify command-line arguments directly to the Ruby interpreter, for all test* rake tasks.
38
+
39
+ * Add <tt>inochi/util/combo</tt> combinatorics library for enumerations, permutations, and combinations which are all useful in exhaustive brute-force unit testing.
40
+
41
+ * Add <tt>inochi/util/tempdir</tt> library which really should be in the Ruby standard library.
42
+
43
+ %|paragraph "Bug fixes"
44
+ * The "enable email notification" checkbox was not activated properly when posting announcement to ruby-talk mailing list via Ruby-Forum.
45
+
46
+ * Mark gems needed by `Inochi.rake()` as *development* dependencies.
47
+
48
+ A user would now have to install Inochi using <pre>gem install --development</pre> to install all these gems. This also solves the recursive dependency problem between Inochi and ERBook.
49
+
50
+ * Set executable in gem specification only if it exists.
51
+
52
+ * Fix parsing of stack trace in Ruby 1.9.
53
+
54
+ %|paragraph "Housekeeping"
55
+ * Write contributor names in <tt>CREDITS</tt> file instead of in the user manual.
56
+
57
+ * Use completely lowercase name for <tt>Rakefile</tt>.
58
+
59
+ * Add copyright statement at the top of every source file.
60
+
61
+ %|section "Version 0.3.0 (2009-02-12)"
4
62
  This release adds support for <%= xref "Translate your project", "language translations / internationalization / multilingualization" %>, improves the user interface, and fixes a show-stopper bug for Windows users.
5
63
 
6
- <% paragraph "New features" do %>
64
+ %|paragraph "New features"
7
65
  * Add support for <%= xref "Translate your project", "language translations" %> of phrases used in a project.
8
66
 
9
67
  * Add "lang:dump" Rake task for extracting language phrases from project.
@@ -13,9 +71,8 @@
13
71
  * Add <tt>--locale</tt> option to a project's main executable for setting user's preferred language in spite of the user's locale environment.
14
72
 
15
73
  * Notify user when attempting to publish announcements in the "pub" Rake tasks.
16
- <% end %>
17
74
 
18
- <% paragraph "Bug fixes" do %>
75
+ %|paragraph "Bug fixes"
19
76
  * In Windows, `ENV['USERPROFILE']` gives the path to the user's home directory and `ENV['HOME']` is not defined.
20
77
 
21
78
  * The only real solution to the circular gem dependency problem is:
@@ -23,9 +80,8 @@
23
80
  gem install --force
24
81
 
25
82
  You should update <%= xref "Setup" %> in your projects' user manuals accordingly.
26
- <% end %>
27
83
 
28
- <% paragraph "Housekeeping" do %>
84
+ %|paragraph "Housekeeping"
29
85
  * Break the huge <tt>lib/inochi/inochi.rb</tt> library into smaller files.
30
86
 
31
87
  * Instead of adding methods to singleton classes directly, define modules and extend to them so that YARDoc documents the methods appropriately.
@@ -35,13 +91,11 @@
35
91
  * Remove "Contributor kudos" paragraph in release notes in favor of crediting contributors inline with each item in the release notes.
36
92
 
37
93
  * Mention that the project license is ISC for the reader's convenience.
38
- <% end %>
39
- <% end %>
40
94
 
41
- <% section "Version 0.2.0 (2009-01-25)" do %>
95
+ %|section "Version 0.2.0 (2009-01-25)"
42
96
  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.
43
97
 
44
- <% paragraph "New features" do %>
98
+ %|paragraph "New features"
45
99
  * Added <%= xref "Test your project", "support for unit testing" %> via the [minitest](http://rubyforge.org/projects/bfts/) library.
46
100
 
47
101
  * The scaffold generator now emits a default unit test for the main project library.
@@ -62,9 +116,8 @@
62
116
  `Inochi.init :YourProject, :authors => [['name', 'mail']]`
63
117
 
64
118
  (Florian Gilcher)
65
- <% end %>
66
119
 
67
- <% paragraph "Bug fixes" do %>
120
+ %|paragraph "Bug fixes"
68
121
  * Run on both JRuby and normal Ruby in multiple versions and with different executable names on Windows. (Florian Gilcher)
69
122
 
70
123
  * Use `Gem::RubyGemsVersion` instead of a shell command to determine rubygems version for generation of <tt>setup.erb</tt>. (Florian Gilcher)
@@ -72,33 +125,27 @@
72
125
  * Add blank lines between all list items, not just multi-line ones, in the plain-text version of the relase announcement for improved readability.
73
126
 
74
127
  * 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.
75
- <% end %>
76
128
 
77
- <% paragraph "Housekeeping" do %>
129
+ %|paragraph "Housekeeping"
78
130
  * Added unit tests for utility methods provided by the **Inochi** module: project name calculation and CamelCase to snake\_case conversion.
79
- <% end %>
80
- <% end %>
81
131
 
82
- <% section "Version 0.1.0 (2009-01-13)" do %>
132
+ %|section "Version 0.1.0 (2009-01-13)"
83
133
  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**.
84
134
 
85
- <% paragraph "New features" do %>
135
+ %|paragraph "New features"
86
136
  * `Inochi.init()` now adds `#major()`, `#series()`, and `#requirement()` instance methods to a project's `VERSION` constant.
87
- <% end %>
88
137
 
89
- <% paragraph "Bug fixes" do %>
138
+ %|paragraph "Bug fixes"
90
139
  * 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**.
91
140
 
92
141
  <%= xref "Installation" %> has been updated accordingly.
93
142
 
94
143
  * Add forgotten Rake dependency for **Inochi** gem.
95
- <% end %>
96
- <% end %>
97
144
 
98
- <% section "Version 0.0.1 (2009-01-13)" do %>
145
+ %|section "Version 0.0.1 (2009-01-13)"
99
146
  This release fixes some show-stopper bugs.
100
147
 
101
- <% paragraph "Bug fixes" do %>
148
+ %|paragraph "Bug fixes"
102
149
  * The name of the project library was [being determined incorrectly](http://www.ruby-forum.com/topic/176173#771351). (Florian Gilcher)
103
150
 
104
151
  * There was a [circular dependency problem](http://www.ruby-forum.com/topic/176173#771281) when installing the **Inochi** gem. (Florian Gilcher)
@@ -106,17 +153,11 @@
106
153
  The solution is to specify the <tt>--force</tt> option when installing the gem. <%= xref "Installation" %> has been updated accordingly.
107
154
 
108
155
  * Generated project scaffolds now check against the major version of the **Inochi** gem, to avoid runtime version conflicts.
109
- <% end %>
110
156
 
111
- <% paragraph "Housekeeping" do %>
157
+ %|paragraph "Housekeeping"
112
158
  * Only add project libraries to `$LOAD_PATH` if not already there.
113
- <% end %>
114
- <% end %>
115
159
 
116
- <% section "Version 0.0.0 (2009-01-13)" do %>
160
+ %|section "Version 0.0.0 (2009-01-13)"
117
161
  This is the first release of **Inochi**.
118
162
 
119
163
  Happy birthday!
120
- <% end %>
121
- <% end %>
122
- <% end %>
@@ -1,6 +1,11 @@
1
- <% Inochi.book :Inochi, self %>
1
+ %#--
2
+ %# Copyright 2009 Suraj N. Kurapati
3
+ %# See the LICENSE file for details.
4
+ %#++
2
5
 
3
- <%# include intro.erb #%>
4
- <%# include setup.erb #%>
5
- <%# include usage.erb #%>
6
- <%# include history.erb #%>
6
+ % Inochi.book :Inochi, self
7
+
8
+ %+ "intro.erb"
9
+ %+ "setup.erb"
10
+ %+ "usage.erb"
11
+ %+ "history.erb"
@@ -1,610 +1,46 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
2
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3
3
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" [
4
- <!ENTITY icon_caution "data:image/png;base64,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">
5
- <!ENTITY icon_tip "data:image/png;base64,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">
6
- <!ENTITY icon_important "data:image/png;base64,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">
7
- <!ENTITY icon_note "data:image/png;base64,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">
8
- <!ENTITY icon_warning "data:image/png;base64,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">
9
- <!ENTITY icon_quote "data:image/png;base64,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">
10
- <!ENTITY icon_link "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAFVBMVEVmmcwzmcyZzP8AZswAZv////////9E6giVAAAAB3RSTlP///////8AGksDRgAAADhJREFUGFcly0ESAEAEA0Ei6/9P3sEcVB8kmrwFyni0bOeyyDpy9JTLEaOhQq7Ongf5FeMhHS/4AVnsAZubxDVmAAAAAElFTkSuQmCC">
4
+ <!ENTITY icon_here_frag "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAIkSURBVDiNjZJNSxtRFIbfc+cjmZkkfjSCEFuQtghCwUWj0KXb/IQs3GlBKBQ3waWLoNBfIBSkJYI/ILsupIsuGrIqLQGRoEak6KLNmExzZ+aeLuJMZ4oLz+7e97nPORwuMTMeUvOVvTrAW0TUZua1brN2AgAUCVZeH9aZeUsToh2Eaq21Xz3593h3U9P1vcKjojPyPDV0+z0wL3abtYEAgOWNxmYmY7x5ufTMnCsVV4QQn8rrDSduT7STny46mm7AzheEputTAFYBQIxz2llceOxYVgZP5maEbZkxMF/ZnQVg64YR+8xM1gbwCgBEeb0xC8B27GwMTE7mbKIxAKCsG8YouQ/dNDUiEU9QzjnZFFDIWZqmaauRwDAzuf8EYFYvYsFEwUkB+ZyFMBwDADwAKpmzYoDIiwQeM6eAMFQggnd37ARSDpN54EsQqB0JOreDPynAHXgQQrRjQeBrKYGUklkdA4AOoDMcjlKA63oyCMLju+MpK2XfXF4kERPA10hwKv3A/vzl+71At1mTAFINkkUP+crzld0egFLiyu82a2Y0AZY3DnvMnAJa+1Uz7kJ0npuaLmUsG74coX9zfRVlOgBogs6fPy2VZooT6LtDfPtxdpWQgZkPPLe/JDTdGvb7koGjKBMAEITq4OLyxnNvPZxdXEtmPkK6PgS+/+739c9bX47eg7me2kF5vZElom0Ab4noo1Jqu7Vf/XXPLkS3WUv9mb/vR+THZPMfuQAAAABJRU5ErkJggg==">
5
+ <!ENTITY icon_caution "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAiESURBVGiB7ZpdbBzVFcd/Z2Znd2d3vbtm/RWvsbEdfyauSWzq2MZWEFVD5AqBaBpRVyaKoaakEBMEBRRVBaukKiqhQF+iioRU9MVUah+ChCIeEiXEIcRECShxxJflOqmxk8gmXq/Xu3v7sB84ju049oYUqUe6ujM7d+75/e+ZO/fMzIpSiu+zaTcbYKn2fwE32773Aiw3pFcR2QsvCWxSYAj8yw6/2qBUKNWuboiAv8FffIWFm8qam03Rdb744IOf/+fMmWzgJ6n2lfJL6E2RaqvL9VDVvfeak0ePEnj/fcruvttudbvX7hZZl2p/KRdghddKm5vN4MmTBM+cIdTfT+D4cSoaG50avI6IpNJfSgW8KXKn3eer9RUXy+XDh5O/Bz76CI/fjzszc9lu+FkqfaZUgAFvlDU1OQI9PajQt/NVhcOM9/RQWl/vssDOF0RSNvdSJuAtkRbnsmXLPbm5BHp7AdBXr8ZSXw/AxKef4vR4SPf73bfBI6nymxoBIqLBa+XNzc7Lhw6hIhHQNMwXX8SxYwcYBijF5SNHKK6rcwq8tEvEkQrXKRGwBx5MLyjIdrrdTJw6BYDR0oKlvBwtLw/bgw8CMPnZZ9hEyCwstFnhqVT4XrKAXSKGwCslzc3OywcPglKg65idnQCICPYtWxBHbMAv9/RQVFtraiK/+btI+lL9L1mABX6ZXVKSZtM0gn19AFg3bEArKEjeMbWMDOwPPQTA1OAg+vg4/pISyxT8dqn+lyRgl4jDItK1vKnJ8c2BAwCIzYb98cevuN2LCPaODsTjAWD8ww/Jr662aZrWsVfEvxSGJQmwwZP+FStMPRAg9NVXAFhbW9FzcpJtklHweDA7OgAIj4yghocpqKiwAH9YCsOiBewR8Wq6/mxhQ4P9m4MHY7BOJ+ZjjyXbJOATtX3TJrTMTAACvb3kVlYaumE8sFek9DsXoMP2/Ntvt6rhYabOnQPAtnkzkp4+KzyA5nDgeOIJACJjY4QHBritosKmwauL5ZDFPBPvEcmxGMbndz78sGO0u5vwyAji9eI5cABxuRAR3nvvPc7FheXm5rJ+/fqYw0iEi2vXEhkYQDNN0tav58N3350IBoPNm5X66HpZFhUBDV4qqq01wv39hEdGAGKTNA4P0N3dTVdXF11dXbzzzjsxeBGwWHBs2wZAdGKC0OefU1xZabfC64tkuT7bLVKk2+0bc1etMhIJm5aVha2t7YrLJi0tLXmOa5owAPP++7GUlQEQPH0an98vhtNZtVvkRzdcgAX+tHzNGluor4/I6CgA9i1b0EwzCQ/gdDqvEJAwEQFNw/XMMwCoUIjJs2cprqx0WhYRhesSsFfkB4bL9eOcykp9/MiRWAe33oo9nipMH+WZEUgcTxT7unUYq1YBsRTD4/Nher35u0V+esMEaPDnkvp6M3jyJNFAAABz61awWK5auKaPelpaWhJ8ulD3888DoCIRgmfOUFRe7tDh1etJtxcs4C2RRtstt/wwo7hYxo8dA0AvKcF2331XwcOVl830OTC9tjY0YGtqAiDU34/L4cDt86XfBptTLkDgjdL6esfE8eOoyUkAzG3bEF2/Cn62CMw8nqjdzz0Xa6QUwdOnKSwtdQjs6BYxUyZgr8h6Z1ZWiTc3l8DHHwNgqarCds89SZCZcNPngNPpnBUewLpqFWZLCwBT589jF+GW7GwzCFtTIyDm6fWyxkbn+NGjqHAYAMfTT18BMhNuoREQEdzPPgvxSAb7+sgvLjaVyPY9It4lC9gDG715eTkur5eJTz4BwKirw2hqmhMeoKioiPb2dtrb2yksLJwTHsBaWopzwwYAwhcuYASDZC1bZtFh+7X45k0lXhCxFMLAHRs35kRPnEjm+57ubow77pgTPlEPDAwAUFBQMCd8oo4MDnJ+zRpUKITudmOsXMnxnp6gFo0W/UKp83MxzhuBfHgko7jYbTcMgmfPAmC9664Fwb/88ss0NDTQ2NjIzp0754UXESx5ebja2mJixsaQ0VFy/X49CjvmY5wzAt0iZlBksK61NT10+DCTX34JInj37cNSWTkvvIhQU1PD0NAQADk5OfT29s4Jn6gjIyMM1tSgAgE008RaXU3vsWPBUCRS1a7UZ7NxzhmBCXgyp7zctExOxuABW0vLguABamtrk31VV1dfEx7AkpmJ59FHgViip0ZGyPP7DSu8MhfnrBHYJeIxNe3f9W1trsD+/UwNDoKuk75/P3pR0TVBRIQLFy7w9ttvA9Da2kpWVtY1zxERomNjDKxeTfTSJcRqxVZdzYkTJ4KRqamGNqU+nsk6awTssD2vqsqQixdj8ID9gQcWDA+QkZFBZ2cnnZ2dC4YH0D0evFtjS4AKhYgODZHv99u0ORK9qwT8VSRbdP2xgtpa2+V4wiZWK47OzgXBTy8LETpbW29HB3p2NhB7i+FLTxfdZlu9R2TtvAJExKrgd/kVFUZ0aIjw8HBsVMrKkg/q1wOyWKFit2PW1QGxRC88NMStOTmmBn+U6YsP0z5wiIgdcBmwLnvlSmPi0KFko/CpUwwXFc0U/51Z+Ouv8a5Ygervr/aCR0RGVXzyagAiogN2wBGFaGRyEt3nQwzjpkEnTdPQnE7CU1MAwakYZzLRS0RAj29bzsE/+w4f/nVlc7PNV1MDmhZ7WasURKOoaDS5jVKx/dm2E22i0W+3Z2s/89gsfoKTk3zR3z9xEf4xHmNNpsCilEJiDxBuIA1I+z08lQP3aeBFBNHmWbBT/aV/Wn8qvh+F0Uuw73noCsEocEkpFUwKABARJ+CKFwexMFmBqURf37Fpcf9hIAgEgHFgDBhLzIHkJFZKjYuIAiJACJiIH79ZAhKXdSTOECQGPj690VUrcfw2ZYuXhICbYRZiUUhEYFLNkjYs6s3c/5J97/9q8F/RUcwR4xicOQAAAABJRU5ErkJggg==">
6
+ <!ENTITY icon_nav_here "data:image/png;base64,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">
7
+ <!ENTITY icon_nav_prev "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAABGBJREFUWIXtlltsFVUUhr81e09Pe2pD0VjlFhBEqSRKWk2hpQQxVOIlpURMRNFEojHBS5ACTxIMxhgTjCTGB8ITweCDUQzhARMMUdLqg8QLaRQRpLS0tgV6oe3pOTN7+TDnlHJ6BzU+sJKVPZc96//W2mvPDNy067SFO8gp32KrbjSOd70PFvaZPb7kHCmv9V//zwEqNvuvzLx9/tpXn36bW/IK3i2vtSv+M4CKLbZySsGtu6qXPRvvDS6y+uHn8q31P1+yKXb3vw6w7E1m+Sbn0FOPbIhfuHKK42c+IzAJqpasLvBs8FXpNqZMFsBMdGLpDuImtHVrlr84LRa30tDyLU5DWrv/YMH0h8SaWH5be1P54uluf0MDOtG4E62A5PbaA8sXPTFn1p1zvIbW44AgIjgN+f7cIRYtWJxz17T5Zc1z7K6JisMEK1BRa98qnl3ywsqyNbknmo4wkOrDaZj2gGTQT0dvI0vve9I/23Tq/jtKEk2N9frTPwJQXmseL5o6Y/czVRvjv7bV051oHxQPNRg87h3opD/VQ9mClf5v505WzVzM0cY61zxe/DGXoGJr7N5YLP7p+lWb4i09p+ns/2vMYH9e+oXW3tM8urQmXz0Ol21l5nUDlG5jirrg6POr3sgPpI8LXb9fc18H++xqv6k6fm7+GpsLlSUrC321R0p3EJ80wNq1mJizX1ZXri8qmjpdTrefQFUjUVHEA2MEz4JnBTFKQAKVEEWpP3uQ2TPmmuK5D8zL7bUHABkNYMQeKHzMfvhg8bLqFSU1sZOt35AMo+BOApAQNSHOc6ikSLhuEmEPeA7PE8QDpwEtXWepXFhtW9ubZ9226IrfWOeOjaQ1jGxprVk3o2je3o01O/MQIRX24wgxnuHYmX0EDBC4JD2pDroTbTgNUUAdqCo1xdtQjY7VgQuV/Yc/7u8Z6FxX/354MFvPZl9wKp+0dJxn+94NEaHgVPG2v/QRYhRB6UpeoDe4jPhg8GBQUPCMsHvfO4iSwiMkgssT5IuREh4GULcrEAgGz0tfxo8V2CSegnFc7D9HQjuxOQKSjpcWd04RA6KEYWjvsX6iC0AMhAMkRlqCYQDZ9sMeUuWbAZRLA+dJaBfGFyS93lGGgjpFnOB5Ah5hyiYuf/ceXePFHxcgYylN0BO2YWxUZs+ApCugqrhQkFARb9SGvzGAvqATz4BnJIKwgpeugHOCSPQ+kMnpTxwg6frwbQy81FUIE6lJqFEjOh1jx98ggKIIggqRiDAI4DLCMmn9CQHYNEF6f0eZaiiEuOhWmL6mV1/MHT8SBwaItlQwUuCxAAzgD3Gs5FA1+zU8j2gHyLVNmAFzDlDkSjOFgANSWR6OB2CAnCzng707Ry3RCOYn2rFAXlrDEH13hKgqLjNxpCUTIJbOPAPgDxkzPjSwS2cWZGWbHDIm0+LJbLHRzMuCsENEM8JDv6ZuCMhQmIxoAMP/FSfTtJkSZo+kA2c8A5I5v2n/b/sb+uLjgZR8ftUAAAAASUVORK5CYII=">
8
+ <!ENTITY icon_tip "data:image/png;base64,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">
9
+ <!ENTITY icon_important "data:image/png;base64,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">
10
+ <!ENTITY icon_nav_list "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAABSlJREFUWIXdl1lsVUUYx/8zc7a7daUroXQhlkpoQ4sVA8b6gilbIEIDggEiEiSRFwzEJ/pCXXjgQR8sAW0I0QQSicZIiC9IsClFFqlC6HorXW/Xe+/p7b3nnpnxobbpJW1pS+uD3+N3vpn/b2b+c853gP9rrNp1WZtNHVlo4ZLDl/YzkC+lhAMUZ+9Uv3MCIHK6eraQ4sXvX9ri0tVvD2wtMt4oyaZPvP1rE1bf93ff/f72dGMWbAcKj1xMNYTSeGh7cbxUFNhcQpE2Lvxwz1Sj4czfvn4vONU4ulAAGicni/LTjYR4Jxo7g2jzjSAzJQ5Ll3iUCDUqphu3IACF7150MUqPvr4mS2/sCkICEEKic3AUhfkZBlXJjkUF0HW6JTXJTVwOHYOmNZHv80eQlRYHSFLyQgCrdlXOeKUkIRtezklVff5ITH7U4vC4dAjO00sOVzvnASDJ8vJPz5ghPZSz+ZNg9uaq/VNOQkmypjMaifKYvC0kKBn3eaI6Z4DsTZ9/mBTvOHZ0TxnbVV7q1hXlfO6mqi3P1nEhvIFg2NbU2Ol0hcIM2yAgPHcI5pwA8rd95iFEnN5UVqS19piQTMHO8lJFEHIpb+OZ1Mm1DLjT1jVsexyxizQ0hkF/CJSSlitXKmK353kAYc4rUpPilbQlcXjQ5MOv9zvgdjuwesVSw1b4yRgAxut7B4KGxgjIpDdLSpyOx20+Swh5dTqdaQEo2I6VKzKNJ0+HwIWEkBJ1j7rx6ppcnVIcTdt4xjVeawmHyYVE1BYTZ+5xqFCpxMOmHoVSXJgzAICSrPREtHX7JxKdfSaYoiIj2UMczJ7kBVuldExY/Gu83FQXrtc2WlLImtvVe5vmBJC5tdIppUh3OjUEQ1bMM29PAMsyl6gScgMAFB+6WECkuOlxaLBsCQkgM8lAR++wbO0cClpW9PgMi5wawBg1VACghMJ65mqFLRuMMUooSwYAytgxl6EWFOSlcv9oFJpCkehScb22kQsujzyoOTg8Z4DWxFxTEvDASBhOI9bZDk1BYCRsQwovADCCbbvfKsS6wizW548gJU5HQ4tPhsJRJcevTWu+GQFwpYJT0BbfoIl4V+xL0O3Q0NfvtyXFnZLD1SrnMlNRGf78O4BwlCMlXofKxhcisucHAEAKcbW1vdfKSHZP5AgBDI2if9g0OHi9orscACAkgS3Geo5AKIqoJSVltPbuud0t8wagjF3wdvUpTo0izjm2C4yOeYJzAS2smLe/2BdglA72Do0gwaki2aMhErFQ+9ArbFvMaL7nArT+dKKJc1FT/0eztTI7GZQQcCEmrpniUFQAICBnb/7eEtaZBOwofrzxyLI5P3Xv/L662QDM2BFlb69MQFRvXlf8UlIUKmnvCWBtfhpu1TXADEUeS0LfznmltCnU3V0jBN9DKIsQKU7Xn9tbNVMfOGsAAMgpr9qpG9p3b64vUhraBpCe5IQ5PMzbO3xsNBL9yvvzxx8AQNmBb4wbNQfDsxGdHM/tB9rcK66GI1Glpb1HZiS70DUwgrycpWx9aQEIJdvG6+YjPiuAZaY3GwA0hSHBrcOKcjxo9kGAQgqZWVJSPeV3fsEAnl470UIJqbVsLobNsY4nagtwPnbE/tRux6ICAIAQ5Hirt0sKbiPJY8Dj1DDoN0FABpuvVQYWHcB77WQdF/JUw1/Nlko44gyK5raOMICzLyIOzOHPaLjpl1vuvFuir3/otW7fAOO2vLw8FP7I670hXhRizpFdVmn856KLFf8AcP0p5DnhnVEAAAAASUVORK5CYII=">
11
+ <!ENTITY icon_note "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAmCSURBVGiB1ZltbJXlGcd/9/N+Tlssh1JahNEJaK2UFxFptqC2wGCSTWdM3DSQzWVDEzVxy4xfjNkHQ8xMnEEXviwZ62Rj6siWTcVBZeJA5yBQpOWlKNZSaEvpyyk95zwv970Pp+fY5/S0tFBkXsmTc67neu77+f/u6349Ryil+Cqbdq0FXKldEuClp+3nfvVz/eJLT9vPXQv/igFc13tqw4/ujLqu99S18C9lRr6br7zyyi2WZb2eSqUqpVSUlE5BSmW8/PLL6sv2bdtuTiaT9z/++ONN486AZVm/XLiw+qZlt98Wun/bsqUhf+nSJSF/ya2LQv6ixQtD/sJFC0L+guqqkF91S2XIr6y6idlfm1Vp2/Yz+XSOCiCEqDJMQ3ze+hm6bnC+sx9d1zl+vBlN1znf2Y+m6TQfa0LTvvCbmo6G/KNHj4T8Ix83hvzGI4dD/uHGQyG/peUElmUJIURlPp2jAkgpiwXg+R5FM9dRv3U/heXrkFJSWHZ32i/7NlJKCsrWUr91P9EZa5FSEildQ/3W/USmfwspJc701dRv3Y9dshopJda0VdRv3Y8VW4mUEjO2kvqt+zCm1iGlxCiu5fe/24defBeu6yHSkopHAxD51oEtW7bEb1++rLC5+ShBEKCU+uJCgWJCvlJD9/iinlw/o2O4b5omixct4fixkz2PPPJILB9A3kEspYzOmjWbxYuWjIiNtfBdjdjg4EWam44XjhYf0YU2b948xTTNoGRaSbjlR2mlqx0rLCxC0zR98+bNdj6AERkIgiDmOI6nlDK/7NbOF1NKYdt2KplMxoCzufERAKZpxiKRSDC8wnfeeWfUl06W0FxbtWpV9tloNOoPDg6OD0BKGYtEIqGXrV69etKFXio2vGs5jqOklOMbxJqmxaLRqBheSRAEo77sSoWOZkKI7DORSERomjY+AKVULBKJGMMB3n333Uum/XK35aOVq6ury2YiEonoSqnxAziOYw0HqKurG5fIyR68mU/Hccyes8cq19cVbQB84Fh9Q/xgXgDTNGfYtq0NBxivkMmGAGg73cTOV58xe9tPPvnwuodUxFX89cOd/vq6orX1DfG9IwB0XS+zbTs0kHbt2jVhiMwscrkQrS2H+ce2TfSdPc2Dd9xN1cL7TK29E9rbWWBXWk9o+95eX1c0Jd9KXGqaZghg5cqVExIyEaG51tL0IW9u2wRuijVrf4JXXIHR1oZoaIC2NjhzBtHbS+lcTT9jBNPzAUyzLCvUBy9HyETLHm98nze3bWKw7xy1NZXcOG8JUmq0BgGtpaVoRUWUfPwxnb5Pl+/RJ6QAIvkGcXFuBq4mxNEDu3lr2yaUN8BdyyuZO/d2hNBQ0sPrf43C0yvoqqjic9umdXCQ85akeT6plMUL9f+Mf5pvIZtiGAa5g3gyIZRSNH74Nm/9cRO2HrByeSUVFRWAQAYpEj2nSF44hZI+F/tn4V0/n3hPJ+1Vym+KKFcY4lXPU89A/r1QgWEY+L6fvbd79+4rhkg/Izlz8j+c/O/rlBRHufuOBcyeNRsA6Q+S6G4h1XcaJdMLZ0evT3tXG/65VznU9j5eofqN5/N8/c7+9kydofPAiy++GIlGo/ENGzborutOWOhosSDw+ehfb7Dzzy9QVjKFO5bdTHl5eTrmxklcOEmq73NQEqmgvduj5axLR5/GRVdQd89G2uMFsqd3wH722Wf94XWHMhCJRGK2bbtAZDLmc99z+aDhT+x6/dfMmTWdH3znG5ROL03HUr0kzp/AjbcDikAqWrt8TrWn6IgbSC1K3b2PsbzuAQqLrmP79u2u0KypQNeoAL7vxxzH8XMHb0NDw4Qh2k99RPO//0DlvNlsuL+WabFpAHiJbpLdx3EHOgBwfcVnnR4t7SnO9Qk0q5Ablt7Lgz/+BZqmZ+uzbdsfGBiIjQkwtI1QuTNQbW3tJVt7uB14bwcfHdnBxofvoTgaBQTuxXMkuk/gD3YDkHAVn55z+eRcis64QUnZXB7Y8DNuXnzXiNlvaD+kDMMYsR8akQHTNIWU8rJnoAN7d7DrtefZ+MSjRGfMI/HpPuInd+EnewGIJySnzrp81unRGRdU3LiUHz76JBU3LhkhOmNSShzHId+WOgSQTCZjlmWFdqIAe/bsGdcs03ZiH62H/sJPH12PXXAd0r2IXVZFz5E36BkIaDnr0trl09kXUF6xiOW191BYXM7p9j5Ot+8J1XXnnXeGYEzT1F3XHRsgCIKYZVlmLsCKFStGtMqwMvi+z4H3dtD1yXus+e59WJaBn+hBc+MoBUfaFM2nk1y4KKlaupq1teuZWjITwzDQdR3DMDAMA9M0s/UOFy+lxLZtw/f9sQE8z5tu27aR24UyhwshROiQ47ourutyaN/f2Pv3Lew9fJ7Dxzr4/pqv0xt36e4ZoOt8D6mUy7zFa6m5dR0FRVPxlUFvby+maWJZFqZpZr9blkVmIR0OY5qm6XnetDEBlFLllmWNaO29e/eS8xy+7+P7Pm0nPuD4B9soKCxkzTdvoOC6Ms755TglMWZ+bSpzIsWYzhR0XSdQOslkksw7hBAIIdA0LfuZ2cbkvs80TaGUKh8TwPf9UsuykFKGIGpqanLLZVPbffNcvvfQY3heGsjzPDzPy3at3Exqmoau6+i6jmmaGIaB4zg4joNhGKEsZ0xKyZCuGZcCKMnsRIf3QV3XRwBkYmUzK0JAmSsIguz3fK2t6zqapqFp2og6873Hsiw8z5s+JkAqlZqaycDlTKO5gsZTbjynvkwGXNedOiaA67pT8gFMBOJqxDIAqVRqxI+8IYBEIlE4lKoJn4evZiwDkEgkinKfyeZ748aNpuu6pmma2QzkXplKv+yYlBLTNEkmk86CBQus4QDZDDQ2Nl4/f/5817Isp7S0NDv3T6aNZzUfzXzfRwjhK6XmCCHOAoNKKWkACCEKqqurpwkhZEtLC42NjZOledKsuroaTdOU67olwACgCSEGDCGEBdiu6zq+75NMJkNL+v+LJRIJfN8nkUhEgAgQAK5BehzoPT098e7ubj2VSjFnzpxrKjafSSm5cOEC/f39KUAnrVsTgAkUAYU1NTUPx2KxjUEQTLmWYvOZpmnxjo6O3x48eHA76S4UB3qEUgohRBQoGLoyKTJJp+nyR97kmA1IwANSwODQ1auUSmYP9UNjoQBwAIv0DBUMFb6WZpNuRB9wSYsfUEr5kOdfSiGETrr1DUCQhrhWJkj394A0gKeUCjVo3r9Zv0r2P3yyQqPd16MPAAAAAElFTkSuQmCC">
12
+ <!ENTITY icon_hyperlink "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAFVBMVEVmmcwzmcyZzP8AZswAZv////////9E6giVAAAAB3RSTlP///////8AGksDRgAAADhJREFUGFcly0ESAEAEA0Ei6/9P3sEcVB8kmrwFyni0bOeyyDpy9JTLEaOhQq7Ongf5FeMhHS/4AVnsAZubxDVmAAAAAElFTkSuQmCC">
13
+ <!ENTITY icon_warning "data:image/png;base64,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">
14
+ <!ENTITY icon_quote "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAU3SURBVGiB7VlPaBRXHP5+82aTSLIrkY3YJR68VmuSPXlRPPQPGg05iD14sZfEUkpbPJQqQVJs0yQlkEDobaE9CaloTlI0InhYNOBi2yAFT0JxZW2ysn/cmTczvx4ym+7Ozs7uzK6kQj54zOzvzbz3fe/3583MEjPjbYay3QRaxY6A7caOgO2G2uoAExMTB4QQVy3LGrEsq+XxnFAUpcDMCVVVv71y5Ure2d/yhKqqLgwPDw8PDg6SEMLzWj8lu3ytlLLr9u3bXzx48OAlgJma+f3Rrcb4+HgoGo1+FI/HSUoJKWVDQpXnThsR1fSHQiEcP36849GjR2NtFxCLxYSu64qiKDBNsyXyAGBZVo3NNE2EQiEA2OU2dttj1gkvwn766+GNCvAi50eQF96IgCCrHVRQ2wW0Sq7tHhgfHw/FYrF69bELAAzDgGEYvsipqtoU+cA5MDExcUBV1Z/27t37vld97+rqEtPT056TOCGlRF9fH44dO4b9+/cHTmDAQ4AQ4uqpU6c+jMfj5Itdk0in07h27RrOnz+/ZWurByzLGjl8+DBpmlZVn5tBo/AhIuzbtw+GYSCfz6OnpycQ+UYCVCEEDMNoG/GKscHM6O7ursodv+Q9BfhBOypL0ErUsoBmCDda2WbKLTO75mJgAX43paB7QYWdiIjYsQK+X2gqB3WbqFmbc0wvQfZvBUC3815fHggaLl4hREQgoq1KV36kLh/LhYSZNQCdAKpeapoS0I5wqSciEokgEokgm80CAHbv3g0hxNY1hmHg3r17xvr6+q9u3BoKCLrCzfRJKTE3N2devHhRhMNh5HI5qKqKyclJSCl1+7bSxsbG8srKys8AXgcS4IzddnmEiEpPnjz5anFxcebChQvhPXv2AAA0TeOFhYUjxWJRBWAAKADYcBPQVBK3kqxeNgD86tWr35PJ5Oj8/PxGMpnUmRnRaLR09uzZAQAv7ZYB8I+zAgFtDiG/HiEi7u3tzV+/fn0tm82+p+v6lw8fPvyso6Ojo7+///uDBw8eWltbKwKo+7Ld0AOVIeRczRZXHwAgpRQA1GQy+Xp2dva7W7duHXr+/HnCNM2+EydOfAqAsLnQgohUIqri/EZDyE20Y1wqFoudAEI2SfXOnTvZqampr58+fTrAzO+cPn26z+ap2GIUKtdY1AkhIlIvX75cQ8rt6MfmNlWpVOqyyVU+8vLS0tLfAL5x2AGgasB6OdBJRKZpmnB+MqncdCptdlWpjO8tmxOKokBRFORyOWiaxrYAaZOz7GP53Ko4N5m5avIaAUQkAKi6rv+WSqVG4/G4UvlGJqVEPp+HEAKRSKSOfm9YloVnz56hUCi8XF1dTdvkpIN8pQDLrQK5CijrSCaT05ZldS4vL3/AzAIADQ0NWaOjoyoRIRwO4+7du3JlZUXA4dZGsPPhz8ePH/8AQLPb6zLxemRdibo8mxCAHrt1A+gAwGfOnDly7ty5xZGRkV0AsLq6Km/cuLGWSCQ+yWQymh8B+C8hS9jcpHLMXPPhthnUeICZmYh0bK4KAdABcCwWG+jv71dN08TNmzdLqVTqr6WlpY8zmUzN7uhDgG6LKAYhD7h4YKuDqBObn03EyZMno4ODg38cPXpUSaVShRcvXkwmEolfcrlc/Q+i3ignlQ6gyMxBx6m/EzOzZntCDAwM/AgA9+/fn02n01OJRKIQdEIbyuYUwYmXUdcDZVy6dOldZv7cNM3JmZmZdKsTth3OXdPZxsbGQo2u2c7W0AP/d7z1f/LtCNhu7AjYbrz1Av4F8/cV1apw1zkAAAAASUVORK5CYII=">
15
+ <!ENTITY icon_nav_next "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAABFpJREFUWIXtl0tsVFUYx3/n3HunLYhQwDRqpKZKhSYIMSAGI+ICI02UBejGBBMUURdu0Lgl7gg0QWNiYtDEBBcErZhACOKjPNqC8jBCqTwDobS0Bfqgnce955zPxcy00zItFyNhw5f8c2fmnDn/3/edx70X7sc9DhWn06J1vvheAICIYJ257X8Sk0xZw3rSt+vnxwEA+HTN1zhnsWKwzmDF4JzBOosr+C2yId/U14X9KVMC/yMAwIEL24lMmshliGyGyKaJbIbQpolsSMYkWTb7XQQk7pg6bkeVmy2lbp21fBsS2/fOAeKEw909AMlVVYpkmW+Lszj/M0DOHUEQGal8m7ubACKCE5fLNi+GgCKXGarEXQHIWjlEHK5AkAVLR4N3bA5FtuGidX42DUUKQAkJIZ9pFkAQUILSgohhMLqOKIsa3gwlJdbvXvQRJsdeBtBUZ27ZQreeA6I+WFiz9PPli1eVgUPIZioiWLGgHQqHVkJoB+gNuxDP4nsaEUgkSljz+jrEESAEIsIPv3wbXuvt+KRYBYoexc9/7H25cvH7q5+orE6c6GjA2AgjIY4IKyEp28+NdBsZmxxxLogI4kCcoAh4qWoVx0/+mW49f6z+4Eb7ZjGvomsg3Wc/3NG45URPb4+tnDoHhwFtQVt6wja6UucwKoUfaPxA4ScUXqCGvnuB5tnKWq52d7hT549f9Cfat4v5jAlw9CuiyKRrt/78Wd8EPUUqJlci2nI9c5l+04kOwAt01jihc581Xs68umIBZbqchkO7B8SZV8a7KY25C5o20TUweHPZd3u+yMyYPIeEX0JfeBXP13j+cKZ+IluBbCU0Dz34GDPLF7Jrb30qMuaNpjoujeUB4I3X2HbIXZk6b6Cz9+b1pXOrnws6kq04HWUz9TWen71qT6E8RWkwkYUPr2RPw85kZ0/7pqaNZst4498WAOBysztWWtP+pFg165nqF/z2ZCvak2HzQON5Ck9rFlSsoKWlJTpx+q/Gxg1mzHkvjFgHUe9Eu/ZYa+M/Xe037LyKl9GeQnv5hafwEoqa6Uu42ZOUxiP7ulNEK4h5S44F0LKeUIWmdm/jzt5EOJWqyfNRGpRWaF/x6KTZlKsqftxVn4qsXnZ0A31xxo0NAHBgMx2ZTPjajt3bUzPK5jO99HEAHvCmMXPCEr7/aVvSZFJrD28K/447JsRYAzlIHwjaml3XtKej3qvdbS8umbc86AkvM7f8VX7d91v6wsUz2xrr7GYgyEkXJDjmdIwFkDctyak0ryt/uFOTavqfMsZULZ61wm89c9I0Hz5w7uhW854ZxAcSBRB+zsNj+NQdAVMMYCjjUUrkVNJ1VvarRzprk8nklKYjB5Nn94Rv9V0gVWCWz16NEjDysWm8CozW0CA2hRjjfk9P6Fh97Yx959J+OZ0b2AF21LVQZjTAeO8FOgdYWMbC7PJQ+ZBRZjZnmJejyFqI9WJS0LeYCgEKdedPqPfjXsS/6zUvFnaUbdsAAAAASUVORK5CYII=">
11
16
  ]>
12
17
  <html xmlns="http://www.w3.org/1999/xhtml">
13
18
  <head>
14
- <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
15
- <meta name="generator" content="ERBook 6.0.1"/>
19
+ <meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8"/>
20
+ <meta name="generator" content="ERBook 7.0.0"/>
16
21
 
17
- <title>Inochi 0.3.0</title>
22
+ <title>Inochi 1.0.0</title>
18
23
 
19
- <meta name="author" content="Suraj N. Kurapati"/>
24
+ <meta name="author" content="Suraj N. Kurapati"/>
20
25
 
21
- <meta name="date" content="12 February 2009"/>
26
+ <meta name="date" content="04 May 2009"/>
22
27
 
23
- <link rel="alternate" type="application/rss+xml" href="http://snk.tuxfamily.org/lib/inochi/ann.xml"/>
28
+ <link rel="alternate" type="application/rss+xml" href="http://snk.tuxfamily.org/lib/inochi/ann.xml"/>
24
29
 
25
- <style type="text/css" media="all">
26
- <![CDATA[/* general */
27
- body
28
- {
29
- color : #000000;
30
- background-color : #FFFFFF;
31
- line-height : 1.5em;
32
- font-family : Calibri, Verdana, sans-serif;
33
- }
34
-
35
- /* emphasis */
36
- blockquote
37
- {
38
- color : #333;
39
- font-style : italic;
40
- }
41
-
42
- em
43
- {
44
- font-family : Constantia, "Book Antiqua", "URW Bookman L", serif;
45
- font-size : 105%;
46
- }
47
-
48
- hr
49
- {
50
- height : 0;
51
- border : 0;
52
- border-top : thin dashed #000000;
53
- }
54
-
55
- /* source code */
56
- tt,
57
- code,
58
- pre
59
- {
60
- font-family : Monaco, Consolas, "Lucida Console", monospace;
61
- font-size : 100%; /* appears like "size: small" otherwise */
62
- }
63
-
64
- /* hyperlinks */
65
- a > img
66
- {
67
- border : none;
68
- }
69
-
70
- a img
71
- {
72
- _border : none; /* for IE6 */
73
- }
74
-
75
- /* headings */
76
- h1,
77
- h2,
78
- h3,
79
- h4,
80
- h5,
81
- h6,
82
- .title
83
- {
84
- font-weight : lighter;
85
- font-family : Constantia, "Book Antiqua", "URW Bookman L", serif;
86
- }
87
-
88
- #lof h1,
89
- #lof h2,
90
- #lof h3,
91
- #lof h4,
92
- #lof h5,
93
- #lof h6
94
- {
95
- margin-top : 1.25em;
96
- }
97
-
98
- #content h1,
99
- #content h2,
100
- #content h3,
101
- #content h4,
102
- #content h5,
103
- #content h6
104
- {
105
- margin-top : 2.5em;
106
- line-height : 1.25em;
107
- }
108
-
109
- #content h1
110
- {
111
- font-size : 2.0em;
112
- }
113
-
114
- #content h2
115
- {
116
- font-size : 1.8em;
117
- }
118
-
119
- #content h3
120
- {
121
- font-size : 1.6em;
122
- }
123
-
124
- #content h4
125
- {
126
- font-size : 1.4em;
127
- }
128
-
129
- #content h5
130
- {
131
- font-size : 1.2em;
132
- }
133
-
134
- #content h6
135
- {
136
- font-size : 1.0em;
137
- }
138
-
139
- /* tables */
140
- table
141
- {
142
- border-collapse : collapse; /* no spacing between cell borders */
143
- margin : auto; /* center horizontally */
144
- margin-top : 1em;
145
- }
146
-
147
- th,
148
- td
149
- {
150
- padding : 1em;
151
- border : 1px solid #bbb;
152
- vertical-align : top;
153
- background-color : #FFFFFF;
154
- _background-color : #FFFFFF; /* for IE6 */
155
- }
156
-
157
- th
158
- {
159
- background-color : #F5F5F5;
160
- }
161
-
162
- /* document structure */
163
- #header
164
- {
165
- text-align : center;
166
- }
167
-
168
- .logo,
169
- .header_outside_above,
170
- #header,
171
- .header_outside_below
172
- {
173
- margin-bottom : 5em;
174
- }
175
-
176
- .footer_outside_above,
177
- #footer,
178
- .footer_outside_below
179
- {
180
- margin-top : 5em;
181
- }
182
-
183
- #header .header_inside_above,
184
- #footer .footer_inside_above
185
- {
186
- margin-bottom : 4em;
187
- }
188
-
189
- #header .header_inside_below,
190
- #footer .footer_inside_below
191
- {
192
- margin-top : 4em;
193
- }
194
-
195
- #Abstract
196
- {
197
- margin-bottom : 5em;
198
- }
199
-
200
- #toc li
201
- {
202
- list-style-type : none;
203
- }
204
-
205
- #toc li ul
206
- {
207
- padding-bottom : 1em;
208
- border-left : thick solid #F5F5F5;
209
- _border-left : none; /* for IE6 */
210
- }
211
-
212
- #toc li ul:hover
213
- {
214
- border-color : #DCDCDC;
215
- }
216
-
217
- #toc > ul
218
- {
219
- padding-left : 1em;
220
- }
221
-
222
- #bib
223
- {
224
- margin-top : 5em;
225
- }
226
-
227
- #footer
228
- {
229
- border-top : thick dotted #DCDCDC;
230
- padding-top : 1em;
231
- text-align : center;
232
- }
233
-
234
- #footer-credits
235
- {
236
- margin-top : 2em;
237
- margin-bottom : 2em;
238
- }
239
-
240
- /* document nodes */
241
- .part > .title,
242
- .chapter > .title
243
- {
244
- padding-bottom : 0.5em;
245
- }
246
-
247
- .part > .title > big,
248
- .chapter > .title > big
249
- {
250
- display : block;
251
- margin-top : 0.25em;
252
- }
253
-
254
- .part .title big,
255
- .chapter .title big
256
- {
257
- _display : block; /* for IE6 */
258
- _margin-top : 0.25em; /* for IE6 */
259
- _margin-bottom : 0.75em; /* for IE6 */
260
- }
261
-
262
- .paragraph > .title,
263
- .tip > .title,
264
- .note > .title,
265
- .caution > .title,
266
- .warning > .title,
267
- .important > .title,
268
- .figure > .title,
269
- .table > .title,
270
- .example > .title,
271
- .equation > .title,
272
- .procedure > .title
273
- {
274
- font-size : large;
275
- margin-top : 2em;
276
- }
277
-
278
- .paragraph .title,
279
- .tip .title,
280
- .note .title,
281
- .caution .title,
282
- .warning .title,
283
- .important .title,
284
- .figure .title,
285
- .table .title,
286
- .example .title,
287
- .equation .title,
288
- .procedure .title
289
- {
290
- _font-size : large; /* for IE6 */
291
- _font-weight : bold; /* large is not bold in IE6 */
292
- _margin-top : 2em; /* for IE6 */
293
- }
294
-
295
- .tip ,
296
- .note ,
297
- .caution ,
298
- .warning ,
299
- .important,
300
- .figure ,
301
- .table ,
302
- .example ,
303
- .equation ,
304
- .procedure
305
- {
306
- margin : 3em;
307
- }
308
-
309
- .tip .nav,
310
- .note .nav,
311
- .caution .nav,
312
- .warning .nav,
313
- .important .nav,
314
- .figure .nav,
315
- .table .nav,
316
- .example .nav,
317
- .equation .nav,
318
- .procedure .nav
319
- {
320
- margin-left : -7.65em;
321
- }
322
-
323
- .tip > .content,
324
- .note > .content,
325
- .caution > .content,
326
- .warning > .content,
327
- .important > .content,
328
- .figure > .content,
329
- .table > .content,
330
- .example > .content,
331
- .equation > .content,
332
- .procedure > .content
333
- {
334
- min-height : 48px; /* 48px is height of icon */
335
- }
336
-
337
- .tip > .content > .icon,
338
- .note > .content > .icon,
339
- .caution > .content > .icon,
340
- .warning > .content > .icon,
341
- .important > .content > .icon
342
- {
343
- float : left;
344
- margin : 0 1em 1em 0; /* top right bottom left */
345
- }
346
-
347
- .tip .content .icon,
348
- .note .content .icon,
349
- .caution .content .icon,
350
- .warning .content .icon,
351
- .important .content .icon
352
- {
353
- _display : none; /* IE6 cannot display embedded images */
354
- }
355
-
356
- .figure > .title
357
- {
358
- text-align : center;
359
- }
360
-
361
- .figure .title
362
- {
363
- _text-align : center; /* for IE6 */
364
- }
365
-
366
- .figure > .content img
367
- {
368
- display : block;
369
- margin : auto;
370
- }
371
-
372
- .figure .content img
373
- {
374
- _display : block; /* for IE6 */
375
- _margin : auto; /* for IE6 */
376
- }
377
- ]]>
378
- </style>
379
- <style type="text/css" media="screen">
380
- <![CDATA[/* general */
381
- body
382
- {
383
- margin : 0;
384
- padding : 0;
385
- padding-left : 10em; /* room for local navigation menus */
386
- padding-right : 10em; /* keep #body visually centered */
387
- background-color : #808080;
388
- }
389
-
390
- /* the actual content of the <body> element */
391
- #body
392
- {
393
- margin : auto;
394
- max-width : 38em;
395
-
396
- background-color : #FFFFFF;
397
- border-left : 0.35em solid #696969;
398
- border-right : 0.35em solid #696969;
399
- padding : 2em;
400
- }
401
-
402
- /* source code */
403
- tt
404
- {
405
- background-color : #F0F8FF;
406
- }
407
-
408
- pre
409
- {
410
- cursor : text;
411
- line-height : normal;
412
- border : 1px solid #b1d827;
413
- background-color : #F5FFDF;
414
- padding : 1em;
415
-
416
- /* fit container to content; no overflow! */
417
- display : inline-block;
418
- margin : 0;
419
- min-width : 92.5%;
420
- }
421
-
422
- /* output of the syntax coloring library */
423
- pre.code
424
- {
425
- background-color : #FFFFE8;
426
- border-color : #EEDD88;
427
- }
428
-
429
- /* hyperlinks */
430
- a
431
- {
432
- text-decoration : none;
433
- }
434
-
435
- a:hover
436
- {
437
- text-decoration : underline;
438
- }
439
-
440
- a:link
441
- {
442
- color : #0038E1; /* maximum saturation of RoyalBlue */
443
- }
444
-
445
- a:visited
446
- {
447
- color : #800080;
448
- }
449
-
450
- #toc a:target:after,
451
- #lof a:target:after,
452
- #nav a:target:after
453
- {
454
- content : "★"; /* &#x2605; */
455
- color : #FF0000;
456
- font-size : x-large;
457
- padding-left : 0.125em;
458
- }
459
-
460
- /* document structure */
461
- /* mini navigation menu beside every block node */
462
- .nav
463
- {
464
- width : 4em;
465
- float : left; /* detach from main content */
466
- margin-left : -6.075em;
467
-
468
- font-size : 1.9em;
469
- letter-spacing : 0.25em;
470
- text-align : center;
471
-
472
- color : #696969; /* same colors to hide non-links */
473
- background-color : #696969;
474
- padding : 0.5em;
475
- margin-top : -0.5em;
476
- }
477
-
478
- .nav:target,
479
- .nav:hover
480
- {
481
- color : #333; /* same colors to hide non-links */
482
- background-color : #333;
483
- }
484
-
485
- .nav a:link,
486
- .nav a:visited
487
- {
488
- color : #D3D3D3;
489
- }
490
-
491
- .nav a:hover,
492
- #nav a:target:after {
493
- color : #9ACD32;
494
- text-decoration : none;
495
- }
496
-
497
- /* global navigation menu at the top of the page */
498
- #nav
499
- {
500
- font-size : 1em;
501
- letter-spacing : 0;
502
- width : 8.5em;
503
- margin-left : -11.5em;
504
- }
505
-
506
- #nav li
507
- {
508
- list-style-type : none;
509
- }
510
- ]]>
511
- </style>
512
- <style type="text/css" media="print">
513
- <![CDATA[/* source code */
514
- tt
515
- {
516
- font-weight : normal;
517
- }
518
-
519
- pre
520
- {
521
- border : none;
522
- }
523
-
524
- /* headings */
525
- h1,
526
- h2,
527
- h3,
528
- h4,
529
- h5,
530
- h6
531
- {
532
- font-weight : normal;
533
- clear : both;
534
- }
535
-
536
- /* hyperlinks */
537
- /* blend all hyperlinks with normal text */
538
- a:link,
539
- a:visited
540
- {
541
- color : #000000;
542
- text-decoration : none;
543
- }
544
-
545
- /* emphasize external and cross-reference hyperlinks */
546
- a[href]:not([href^="#"]):link,
547
- a[href]:not([href^="#"]):visited,
548
- a.xref[title]:link,
549
- a.xref[title]:visited
550
- {
551
- color : #0000FF;
552
- text-decoration : underline;
553
- font-weight : bolder;
554
- }
555
-
556
- /* show URL of destination for external hyperlinks */
557
- a[href]:not([href^="#"]):after
558
- {
559
- content : " " attr(href);
560
- font-family : Monaco, Consolas, "Lucida Console", monospace;
561
- }
562
-
563
- /* show name of destination for cross-references */
564
- a.xref[title]:after
565
- {
566
- content : " " attr(title);
567
- }
568
-
569
- a:after
570
- {
571
- font-weight : normal;
572
- font-size : smaller;
573
- }
574
-
575
- /* document structure */
576
- #nav,
577
- .nav,
578
- #lof
579
- {
580
- display : none;
581
- }
582
-
583
- #toc,
584
- .part,
585
- .chapter,
586
- #bib
587
- {
588
- page-break-before : always;
589
- }
30
+ <style type="text/css" media="all">
31
+ /*<![CDATA[*/ body{color:#000;background-color:#FFF;line-height:1.5em;font-family:Calibri, Verdana, sans-serif}blockquote{color:#333;font-style:italic}em,strong,dt{font-family:Constantia, "Book Antiqua", "URW Bookman L", serif}hr{height:0;border:0;border-top:thin dashed#000}tt,code,pre{font-family:Monaco, Consolas, "Lucida Console", monospace;font-size:100%}code.para{white-space:pre}a > img{border:none}dt{margin-top:1.5em;font-weight:bolder}h1,h2,h3,h4,h5,h6,.title{font-weight:lighter;font-family:Constantia, "Book Antiqua", "URW Bookman L", serif}#lof h1,#lof h2,#lof h3,#lof h4,#lof h5,#lof h6{margin-top:1.25em}#content h1,#content h2,#content h3,#content h4,#content h5,#content h6{margin-top:2.5em;line-height:1.25em}#content h1{font-size:2.0em}#content h2{font-size:1.8em}#content h3{font-size:1.6em}#content h4{font-size:1.4em}#content h5{font-size:1.2em}#content h6{font-size:1.0em}table{border-collapse:collapse;margin:auto;margin-top:1em}th,td{padding:1em;border:1px solid #bbb;vertical-align:top;background-color:#FFF}th{background-color:#F5F5F5}#header{text-align:center}#header > .title{font-size:2.25em}#header > .subtitle{}#header > .authors{margin-top:1.625em;margin-bottom:-0.25em}#header > .date{}.logo,.header_outside_above,#header,.header_outside_below{margin-bottom:5em}.footer_outside_above,#footer,.footer_outside_below{margin-top:5em}#header .header_inside_above,#footer .footer_inside_above{margin-bottom:4em}#header .header_inside_below,#footer .footer_inside_below{margin-top:4em}#Abstract{margin-bottom:5em}#toc li{list-style-type:none}#toc li ul{padding-bottom:1em;border-left:thick solid #F5F5F5}#toc li ul:hover{border-color:#DCDCDC}#toc > ul{padding-left:1em}#bib{margin-top:5em}#footer{border-top:thick dotted #DCDCDC;padding-top:1em;text-align:center}#footer-credits{margin-top:2em;margin-bottom:2em}.part > .title,.chapter > .title{padding-bottom:.5em}.part > .title > big,.chapter > .title > big{display:block;margin-top:.25em}.paragraph > .title,.tip > .title,.note > .title,.caution > .title,.warning > .title,.important > .title,.figure > .title,.table > .title,.example > .title,.equation > .title,.procedure > .title{font-size:large;margin-top:2em}.tip,.note,.caution,.warning,.important,.figure,.table,.example,.equation,.procedure{margin:3em}.tip .nav,.note .nav,.caution .nav,.warning .nav,.important .nav,.figure .nav,.table .nav,.example .nav,.equation .nav,.procedure .nav{margin-right:-3em}.tip > .content,.note > .content,.caution > .content,.warning > .content,.important > .content,.figure > .content,.table > .content,.example > .content,.equation > .content,.procedure > .content{min-height:48px}.tip > .content > .icon,.note > .content > .icon,.caution > .content > .icon,.warning > .content > .icon,.important > .content > .icon{float:left;margin:0 1em 1em 0}.figure > .title{text-align:center}.figure > .content img{display:block;margin:auto}/*]]>*/
32
+ </style>
590
33
 
591
- /* document nodes */
592
- .part > .title > big,
593
- .chapter > .title > big
594
- {
595
- padding-bottom : 0.5em;
596
- }
34
+ <style type="text/css" media="screen">
35
+ /*<![CDATA[*/ body{margin:0;padding:.5em;background-color:#FFF}#body{margin:auto;max-width:38em}tt{background-color:#F0F8FF}pre,code.para{cursor:text;line-height:normal;border:1px solid #b1d827;background-color:#F5FFDF;padding:1em;display:inline-block;margin:0;min-width:92.5%}code.para,pre.para{background-color:#FFFFE8;border-color:#ED8}a{text-decoration:none}a:hover{text-decoration:underline}a:link{color:#0038E1}a:visited{color:#800080}#toc a:target,#lof a:target,#nav a:target{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAIkSURBVDiNjZJNSxtRFIbfc+cjmZkkfjSCEFuQtghCwUWj0KXb/IQs3GlBKBQ3waWLoNBfIBSkJYI/ILsupIsuGrIqLQGRoEak6KLNmExzZ+aeLuJMZ4oLz+7e97nPORwuMTMeUvOVvTrAW0TUZua1brN2AgAUCVZeH9aZeUsToh2Eaq21Xz3593h3U9P1vcKjojPyPDV0+z0wL3abtYEAgOWNxmYmY7x5ufTMnCsVV4QQn8rrDSduT7STny46mm7AzheEputTAFYBQIxz2llceOxYVgZP5maEbZkxMF/ZnQVg64YR+8xM1gbwCgBEeb0xC8B27GwMTE7mbKIxAKCsG8YouQ/dNDUiEU9QzjnZFFDIWZqmaauRwDAzuf8EYFYvYsFEwUkB+ZyFMBwDADwAKpmzYoDIiwQeM6eAMFQggnd37ARSDpN54EsQqB0JOreDPynAHXgQQrRjQeBrKYGUklkdA4AOoDMcjlKA63oyCMLju+MpK2XfXF4kERPA10hwKv3A/vzl+71At1mTAFINkkUP+crzld0egFLiyu82a2Y0AZY3DnvMnAJa+1Uz7kJ0npuaLmUsG74coX9zfRVlOgBogs6fPy2VZooT6LtDfPtxdpWQgZkPPLe/JDTdGvb7koGjKBMAEITq4OLyxnNvPZxdXEtmPkK6PgS+/+739c9bX47eg7me2kF5vZElom0Ab4noo1Jqu7Vf/XXPLkS3WUv9mb/vR+THZPMfuQAAAABJRU5ErkJggg==");background-position:center right;background-repeat:no-repeat;padding-right:20px}.nav{float:right;margin-top:-0.25em}.nav > a > img{border-top:thick solid#FFF}.nav > a > img:hover{border-top:thick solid #FA8072}#nav{margin-bottom:4em;text-align:center}/*]]>*/
36
+ </style>
597
37
 
598
- .part .title big,
599
- .chapter .title big
600
- {
601
- _padding-bottom : 0.5em; /* for IE6 */
602
- }
603
- ]]>
604
- </style>
38
+ <style type="text/css" media="print">
39
+ /*<![CDATA[*/ tt{font-weight:400}pre{border:none}h1,h2,h3,h4,h5,h6{font-weight:400;clear:both}a:link,a:visited{color:#000;text-decoration:none}a[href]:not([href^="#"]):link,a[href]:not([href^="#"]):visited,a.xref[title]:link,a.xref[title]:visited{color:#00F;text-decoration:underline;font-weight:bolder}a[href]:not([href^="#"]):after{content:" " attr(href);font-family:Monaco, Consolas, "Lucida Console", monospace}a.xref[title]:after{content:" " attr(title)}a:after{font-weight:400;font-size:smaller}#nav,.nav,#lof{display:none}#toc,.part,.chapter,#bib{page-break-before:always}.part > .title > big,.chapter > .title > big{padding-bottom:.5em}/*]]>*/
40
+ </style>
605
41
 
606
42
  <style type="text/css" media="screen">
607
- <![CDATA[
43
+ /*<![CDATA[*/
608
44
  /* decorate external hyperlinks with a visual indicator */
609
45
  a[href]:not([href^="#"])
610
46
  {
@@ -617,81 +53,146 @@
617
53
  /* display icon for blockquote elements */
618
54
  blockquote
619
55
  {
620
- background-image : url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAmCAYAAACCjRgBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPrQAAD60BqVrh5AAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAW+SURBVFiFvVldaBRXFP7u3PnZtbtxW0wtCSlKfCmIWHzIW0MfBKUQoeKDgb5EKYjWPhQpoy0UweyLICSQErAompdoKtg8SKUbsKT5EcW8SNS1SmxCJN2mTZf9m7kzpw87s93d7M9kNusHh71z7517vu/ec8+dmWVEBD/QdX0rY+wM5/yUEGKrr0G8gxRFmTBN83w0Gv21uIH5FXD27Nlvd+7c+c3hw4fVlpaW2t49+KjVx7IsxONxunHjRsqyrHej0WjGbZM2wLkEsiyfOnTokBqJRGBZVk2zbbtqmxACQoiq9UIIAMCePXtYe3s7B/BpCQ+/AoQQ77S0tBSc10Lx7Pota5qGHTt2SK9evWotHtu3AABgjNUNj0pk/IpgjK0bvyEBtbAZs15ergTfe6AW3hR5oAkCmkG+lpBNFfCmyQObuAfqEWiWiBIBuq6/zRj7XFGUYwCCtQjLsiwPDg7W6lITnZ2d2LdvH9xDcFNWQFXVHzo7Oz85cOCAGgzW5N8QDMPA7OwsxsbG0NfX19AmLgjQdb2VMdZz9OhRLklS3cOpGqo5La7XNA0HDx7EgwcPsLS0hLa2tprkvYZQu6qqlqIoPJPJeFJfjaQXIqqqYteuXVhbW0NbW5uneytxKgkhSfKXlPxsWiIq+NuI8HI0lIU2kkHqEXrjadRPeiwn42Pm1z0MbVhAM3O8lwkwDEP1JWAzwsVLhqrX3zAMlTEmE5HwLKDRcKlFyms/xpj7siMDUADUF7CZ4VKpjjGGYDCIUCiEZDJZaA+HwyXP/owxSJKEZ8+eSaurq08AcLetooDinNvMZxzbtrGysoLdu3cjHA4jmUxCkiQEAgHMz88X+gohMD09bSYSiT9GR0enAJg1BTRCbCN9hRD2xMTEQjwe7zh58qQcCoVgmiZyuRyuXbtG6XQ6RkQSEYmVlZV7d+/e/QmAUVdAM8KlvAwAjDFjeXl5yDCMD4eHh4/09fUp4XAYhmEAAAYGBr5EPt4JQBZACsAqEdnuGFWP3mrEvJS93geANE3LDgwM6M+fPx/p7+83nz59SrIsQ9M04/jx4x8B+LvI/iQio5hnRQGNEqt0X7WxAoFAFkDy0qVLXy0vL/eMjIzMXblyxYxEItr27dvP7927NwfgL0eAxcre7KsK8EvMq/iyawYAly9fnrlw4cLHjx496k0kEnHLslr3799/GvkQ4q4xxrgrpGYIbWa4lIWOCyaEUJCPcwX5PSkPDQ3FLl682JVKpY5JktTT29v7vsPVNQZAYoyxgoBsNsuJiDVCbAPECzAMQ3PIsyJyLJfLYXBw8MebN292c85V/P8cxIrK+RVgjEmpVEotPmCaES7lICJYliUhHxo2AMv5LdiLFy+M69ev/458GJUYEZGbRuXXr1+vbdu2jQshoGkahBAlBEzTLFwrirLuq1w9ssXgnIMxhoWFBZ7JZFadahv5/L6OqNPm/toAbNefG0J8fHx8hYim79y5Y6XTaUiSBM45JEnCli1bIMsyiAiBQAChUAicc8iyXDBFUTybbduYnJy0M5nM2vj4+H1n5i1HQLm5B5dJRIKI7OLJKjnIZmdnv06n01/MzMz0EJHqzCzXdR2cc6iqimAwiFu3bpkPHz7kzqz4gZ3NZicfP378vWEYaQA5ABmHrAvysqqMiMAYUwG85VgQgOqSO3fu3G+6rkc0TQPnHLFYzIrFYvGRkZHPFhcX0z7IE/Kb1kb+dE079m/xCesV7gq4S+VeCwB2V1dXq23boWAwCMuyMDY2Zs7Nzb28ffv2kcXFxWTFEb37dWPeAJD1Q74ggIiIMZZDPj1ZTr3V3d3d39HRgaWlJbp69aqdTCZHp6amvpufn/+nAfKuX0J+ojJElPU7UMlfTM7ppgKQT5w48UEkErkvSRID8EsikTgzPDz8pEHiLty0aRCRvw9QDqr+R6br+s+c8/csyzodjUbvNeKkmfgPodOV0Gw2CGgAAAAASUVORK5CYII=");
56
+ background-image : url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAU3SURBVGiB7VlPaBRXHP5+82aTSLIrkY3YJR68VmuSPXlRPPQPGg05iD14sZfEUkpbPJQqQVJs0yQlkEDobaE9CaloTlI0InhYNOBi2yAFT0JxZW2ysn/cmTczvx4ym+7Ozs7uzK6kQj54zOzvzbz3fe/3583MEjPjbYay3QRaxY6A7caOgO2G2uoAExMTB4QQVy3LGrEsq+XxnFAUpcDMCVVVv71y5Ure2d/yhKqqLgwPDw8PDg6SEMLzWj8lu3ytlLLr9u3bXzx48OAlgJma+f3Rrcb4+HgoGo1+FI/HSUoJKWVDQpXnThsR1fSHQiEcP36849GjR2NtFxCLxYSu64qiKDBNsyXyAGBZVo3NNE2EQiEA2OU2dttj1gkvwn766+GNCvAi50eQF96IgCCrHVRQ2wW0Sq7tHhgfHw/FYrF69bELAAzDgGEYvsipqtoU+cA5MDExcUBV1Z/27t37vld97+rqEtPT056TOCGlRF9fH44dO4b9+/cHTmDAQ4AQ4uqpU6c+jMfj5Itdk0in07h27RrOnz+/ZWurByzLGjl8+DBpmlZVn5tBo/AhIuzbtw+GYSCfz6OnpycQ+UYCVCEEDMNoG/GKscHM6O7ursodv+Q9BfhBOypL0ErUsoBmCDda2WbKLTO75mJgAX43paB7QYWdiIjYsQK+X2gqB3WbqFmbc0wvQfZvBUC3815fHggaLl4hREQgoq1KV36kLh/LhYSZNQCdAKpeapoS0I5wqSciEokgEokgm80CAHbv3g0hxNY1hmHg3r17xvr6+q9u3BoKCLrCzfRJKTE3N2devHhRhMNh5HI5qKqKyclJSCl1+7bSxsbG8srKys8AXgcS4IzddnmEiEpPnjz5anFxcebChQvhPXv2AAA0TeOFhYUjxWJRBWAAKADYcBPQVBK3kqxeNgD86tWr35PJ5Oj8/PxGMpnUmRnRaLR09uzZAQAv7ZYB8I+zAgFtDiG/HiEi7u3tzV+/fn0tm82+p+v6lw8fPvyso6Ojo7+///uDBw8eWltbKwKo+7Ld0AOVIeRczRZXHwAgpRQA1GQy+Xp2dva7W7duHXr+/HnCNM2+EydOfAqAsLnQgohUIqri/EZDyE20Y1wqFoudAEI2SfXOnTvZqampr58+fTrAzO+cPn26z+ap2GIUKtdY1AkhIlIvX75cQ8rt6MfmNlWpVOqyyVU+8vLS0tLfAL5x2AGgasB6OdBJRKZpmnB+MqncdCptdlWpjO8tmxOKokBRFORyOWiaxrYAaZOz7GP53Ko4N5m5avIaAUQkAKi6rv+WSqVG4/G4UvlGJqVEPp+HEAKRSKSOfm9YloVnz56hUCi8XF1dTdvkpIN8pQDLrQK5CijrSCaT05ZldS4vL3/AzAIADQ0NWaOjoyoRIRwO4+7du3JlZUXA4dZGsPPhz8ePH/8AQLPb6zLxemRdibo8mxCAHrt1A+gAwGfOnDly7ty5xZGRkV0AsLq6Km/cuLGWSCQ+yWQymh8B+C8hS9jcpHLMXPPhthnUeICZmYh0bK4KAdABcCwWG+jv71dN08TNmzdLqVTqr6WlpY8zmUzN7uhDgG6LKAYhD7h4YKuDqBObn03EyZMno4ODg38cPXpUSaVShRcvXkwmEolfcrlc/Q+i3ignlQ6gyMxBx6m/EzOzZntCDAwM/AgA9+/fn02n01OJRKIQdEIbyuYUwYmXUdcDZVy6dOldZv7cNM3JmZmZdKsTth3OXdPZxsbGQo2u2c7W0AP/d7z1f/LtCNhu7AjYbrz1Av4F8/cV1apw1zkAAAAASUVORK5CYII=");
621
57
  background-repeat : no-repeat;
622
58
  margin-left : 0;
623
59
  padding-left : 65px;
624
60
  min-height : 50px;
625
61
  }
626
- ]]>
62
+ /*]]>*/
627
63
  </style>
64
+
65
+ <script type="text/javascript">
66
+ //<![CDATA[
67
+ /*
68
+ * jQuery JavaScript Library v1.3.2
69
+ * http://jquery.com/
70
+ *
71
+ * Copyright (c) 2009 John Resig
72
+ * Dual licensed under the MIT and GPL licenses.
73
+ * http://docs.jquery.com/License
74
+ *
75
+ * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
76
+ * Revision: 6246
77
+ */
78
+ (function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
79
+ /*
80
+ * Sizzle CSS Selector Engine - v0.9.3
81
+ * Copyright 2009, The Dojo Foundation
82
+ * Released under the MIT, BSD, and GPL Licenses.
83
+ * More information: http://sizzlejs.com/
84
+ */
85
+ (function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML=' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();
86
+ /**
87
+ * jQuery.ScrollTo - Easy element scrolling using jQuery.
88
+ * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
89
+ * Dual licensed under MIT and GPL.
90
+ * Date: 3/9/2009
91
+ * @author Ariel Flesler
92
+ * @version 1.4.1
93
+ *
94
+ * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
95
+ */
96
+ ;(function($){var m=$.scrollTo=function(b,h,f){$(window).scrollTo(b,h,f)};m.defaults={axis:'xy',duration:parseFloat($.fn.jquery)>=1.3?0:1};m.window=function(b){return $(window).scrollable()};$.fn.scrollable=function(){return this.map(function(){var b=this,h=!b.nodeName||$.inArray(b.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!h)return b;var f=(b.contentWindow||b).document||b.ownerDocument||b;return $.browser.safari||f.compatMode=='BackCompat'?f.body:f.documentElement})};$.fn.scrollTo=function(l,j,a){if(typeof j=='object'){a=j;j=0}if(typeof a=='function')a={onAfter:a};if(l=='max')l=9e9;a=$.extend({},m.defaults,a);j=j||a.speed||a.duration;a.queue=a.queue&&a.axis.length>1;if(a.queue)j/=2;a.offset=n(a.offset);a.over=n(a.over);return this.scrollable().each(function(){var k=this,o=$(k),d=l,p,g={},q=o.is('html,body');switch(typeof d){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px)?$/.test(d)){d=n(d);break}d=$(d,this);case'object':if(d.is||d.style)p=(d=$(d)).offset()}$.each(a.axis.split(''),function(b,h){var f=h=='x'?'Left':'Top',i=f.toLowerCase(),c='scroll'+f,r=k[c],s=h=='x'?'Width':'Height';if(p){g[c]=p[i]+(q?0:r-o.offset()[i]);if(a.margin){g[c]-=parseInt(d.css('margin'+f))||0;g[c]-=parseInt(d.css('border'+f+'Width'))||0}g[c]+=a.offset[i]||0;if(a.over[i])g[c]+=d[s.toLowerCase()]()*a.over[i]}else g[c]=d[i];if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],u(s));if(!b&&a.queue){if(r!=g[c])t(a.onAfterFirst);delete g[c]}});t(a.onAfter);function t(b){o.animate(g,j,a.easing,b&&function(){b.call(this,l,a)})};function u(b){var h='scroll'+b;if(!q)return k[h];var f='client'+b,i=k.ownerDocument.documentElement,c=k.ownerDocument.body;return Math.max(i[h],c[h])-Math.min(i[f],c[f])}}).end()};function n(b){return typeof b=='object'?b:{top:b,left:b}}})(jQuery);
97
+ /**
98
+ * jQuery.LocalScroll - Animated scrolling navigation, using anchors.
99
+ * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
100
+ * Dual licensed under MIT and GPL.
101
+ * Date: 3/11/2009
102
+ * @author Ariel Flesler
103
+ * @version 1.2.7
104
+ **/
105
+ ;(function($){var l=location.href.replace(/#.*/,'');var g=$.localScroll=function(a){$('body').localScroll(a)};g.defaults={duration:1e3,axis:'y',event:'click',stop:true,target:window,reset:true};g.hash=function(a){if(location.hash){a=$.extend({},g.defaults,a);a.hash=false;if(a.reset){var e=a.duration;delete a.duration;$(a.target).scrollTo(0,a);a.duration=e}i(0,location,a)}};$.fn.localScroll=function(b){b=$.extend({},g.defaults,b);return b.lazy?this.bind(b.event,function(a){var e=$([a.target,a.target.parentNode]).filter(d)[0];if(e)i(a,e,b)}):this.find('a,area').filter(d).bind(b.event,function(a){i(a,this,b)}).end().end();function d(){return!!this.href&&!!this.hash&&this.href.replace(this.hash,'')==l&&(!b.filter||$(this).is(b.filter))}};function i(a,e,b){var d=e.hash.slice(1),f=document.getElementById(d)||document.getElementsByName(d)[0];if(!f)return;if(a)a.preventDefault();var h=$(b.target);if(b.lock&&h.is(':animated')||b.onBefore&&b.onBefore.call(b,a,f,h)===false)return;if(b.stop)h.stop(true);if(b.hash){var j=f.id==d?'id':'name',k=$('<a> </a>').attr(j,d).css({position:'absolute',top:$(window).scrollTop(),left:$(window).scrollLeft()});f[j]='';$('body').prepend(k);location=e.hash;k.remove();f[j]=d}h.scrollTo(f,b).trigger('notify.serialScroll',[f])}})(jQuery);
106
+
107
+ $(document).ready(
108
+ function(){
109
+ $.localScroll({
110
+ // the default 1000 is too slow, and 500 is too fast
111
+ duration: 700,
112
+
113
+ // allow the CSS ':target' pseudo-selector to work properly
114
+ hash: true, onAfter: function(){ location = location; }
115
+ });
116
+ }
117
+ );
118
+ //]]>
119
+ </script>
628
120
  </head>
629
121
  <body>
630
122
  <div id="body">
631
- <ul id="nav" class="nav">
632
- <li><a id="rev:Contents" href="#Contents">Contents</a></li>
633
- <li><a id="rev:Tips" href="#Tips">Tips</a></li>
634
- </ul>
123
+ <div id="nav"><a id="rev:Contents" href="#Contents">Contents</a> &middot; <a id="rev:Tips" href="#Tips">Tips</a></div>
635
124
 
636
125
  <br style="display: none"/>
637
126
  <hr style="display: none"/>
638
127
  <br style="display: none"/>
639
128
 
129
+
640
130
 
131
+
641
132
  <div id="header">
642
-
643
- <div class="logo"><img src='inochi.png' alt='project logo' /></div>
133
+
644
134
 
645
- <h1 class="title">Inochi 0.3.0</h1>
135
+ <div class="logo"><a class="xref" href="#Credits" title="Section 1.3. &quot;Credits&quot;"><img src='inochi.png' alt='Inochi logo' /></a></div>
646
136
 
647
- <h2 class="subtitle">Gives life to RubyGems-based software</h2>
137
+ <h1 class="title">Inochi 1.0.0</h1>
648
138
 
649
- <h3 class="authors"><a href="mailto:sunaku@gmail.com">Suraj N. Kurapati</a></h3>
139
+ <h2 class="subtitle">Gives life to RubyGems-based software</h2>
650
140
 
651
- <h3 class="date">12 February 2009</h3>
652
-
141
+ <h3 class="authors"><a href="mailto:sunaku@gmail.com">Suraj N. Kurapati</a></h3>
142
+
143
+ <h3 class="date">04 May 2009</h3>
144
+
145
+
653
146
  </div>
147
+
654
148
 
655
149
 
150
+
656
151
 
657
152
 
658
153
  <br style="display: none"/>
659
154
  <hr style="display: none"/>
660
155
  <br style="display: none"/>
661
156
 
662
- <div id="toc">
663
- <a name="Contents"/><div class="nav" id="Contents"><a title="Reverse jump to listing" href="#rev:Contents">&equiv;</a>&#x25B3;&#x25BD;<a title="Jump to this segment" href="#Contents">&#x25CE;</a></div>
664
- <h1 class="title">Contents</h1>
665
- <ul>
666
- <li>1&nbsp;&nbsp;<a id="rev:Introduction" href="#Introduction">Introduction</a><ul><li><a id="rev:Etymology" href="#Etymology">Etymology</a></li><li>1.1&nbsp;&nbsp;<a id="rev:Logistics" href="#Logistics">Logistics</a><ul><li><a id="rev:Version-numbers" href="#Version-numbers">Version numbers</a></li></ul></li><li>1.2&nbsp;&nbsp;<a id="rev:License" href="#License">License</a></li><li>1.3&nbsp;&nbsp;<a id="rev:Credits" href="#Credits">Credits</a></li></ul></li><li>2&nbsp;&nbsp;<a id="rev:Setup" href="#Setup">Setup</a><ul><li>2.1&nbsp;&nbsp;<a id="rev:Requirements" href="#Requirements">Requirements</a></li><li>2.2&nbsp;&nbsp;<a id="rev:Installation" href="#Installation">Installation</a></li><li>2.3&nbsp;&nbsp;<a id="rev:Manifest" href="#Manifest">Manifest</a></li></ul></li><li>3&nbsp;&nbsp;<a id="rev:Usage" href="#Usage">Usage</a><ul><li>3.1&nbsp;&nbsp;<a id="rev:Command-line-interface" href="#Command-line-interface">Command-line interface</a></li><li>3.2&nbsp;&nbsp;<a id="rev:Ruby-library-interface" href="#Ruby-library-interface">Ruby library interface</a></li><li>3.3&nbsp;&nbsp;<a id="rev:Tutorial" href="#Tutorial">Tutorial</a><ul><li>3.3.1&nbsp;&nbsp;<a id="rev:Have-a-brilliant-idea" href="#Have-a-brilliant-idea">Have a brilliant idea</a></li><li>3.3.2&nbsp;&nbsp;<a id="rev:Generate-your-project" href="#Generate-your-project">Generate your project</a><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&nbsp;&nbsp;<a id="rev:Configure-your-project" href="#Configure-your-project">Configure your project</a><ul><li>3.3.3.1&nbsp;&nbsp;<a id="rev:Project-information" href="#Project-information">Project information</a></li><li>3.3.3.2&nbsp;&nbsp;<a id="rev:Project-executable" href="#Project-executable">Project executable</a></li><li>3.3.3.3&nbsp;&nbsp;<a id="rev:Rake-tasks" href="#Rake-tasks">Rake tasks</a></li><li>3.3.3.4&nbsp;&nbsp;<a id="rev:User-manual" href="#User-manual">User manual</a><ul><li><a id="rev:doc-index.erb" href="#doc-index.erb"><tt>doc/index.erb</tt></a></li><li><a id="rev:doc-intro.erb" href="#doc-intro.erb"><tt>doc/intro.erb</tt></a></li><li><a id="rev:doc-setup.erb" href="#doc-setup.erb"><tt>doc/setup.erb</tt></a></li><li><a id="rev:doc-theory.erb" href="#doc-theory.erb"><tt>doc/theory.erb</tt></a></li><li><a id="rev:doc-usage.erb" href="#doc-usage.erb"><tt>doc/usage.erb</tt></a></li><li><a id="rev:doc-history.erb" href="#doc-history.erb"><tt>doc/history.erb</tt></a></li></ul></li></ul></li><li>3.3.4&nbsp;&nbsp;<a id="rev:Implement-your-project" href="#Implement-your-project">Implement your project</a><ul><li><a id="rev:Goodbye-LOAD_PATH-hello-require" href="#Goodbye-LOAD_PATH-hello-require">Goodbye <code class="code"><span style="color:#d70;font-weight:bold">$LOAD_PATH</span></code>, hello <code class="code">require()</code></a></li></ul></li><li>3.3.5&nbsp;&nbsp;<a id="rev:Test-your-project" href="#Test-your-project">Test your project</a><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&nbsp;&nbsp;<a id="rev:Translate-your-project" href="#Translate-your-project">Translate your project</a><ul><li>3.3.6.1&nbsp;&nbsp;<a id="rev:Language-phrases" href="#Language-phrases">Language phrases</a><ul><li><a id="rev:Parameterizing-language-phrases" href="#Parameterizing-language-phrases">Parameterizing language phrases</a></li><li><a id="rev:Explicit-translation-into-a-language" href="#Explicit-translation-into-a-language">Explicit translation into a language</a></li></ul></li><li>3.3.6.2&nbsp;&nbsp;<a id="rev:Translation-files" href="#Translation-files">Translation files</a></li><li>3.3.6.3&nbsp;&nbsp;<a id="rev:Extracting-language-phrases" href="#Extracting-language-phrases">Extracting language phrases</a><ul><li><a id="rev:Dynamic-analysis" href="#Dynamic-analysis">Dynamic analysis</a></li><li><a id="rev:Static-analysis" href="#Static-analysis">Static analysis</a></li></ul></li><li>3.3.6.4&nbsp;&nbsp;<a id="rev:Translating-language-phrases" href="#Translating-language-phrases">Translating language phrases</a></li></ul></li><li>3.3.7&nbsp;&nbsp;<a id="rev:Publish-your-project" href="#Publish-your-project">Publish your project</a><ul><li>3.3.7.1&nbsp;&nbsp;<a id="rev:Build-a-RubyGem" href="#Build-a-RubyGem">Build a RubyGem</a></li><li>3.3.7.2&nbsp;&nbsp;<a id="rev:Publish-a-RubyGem" href="#Publish-a-RubyGem">Publish a RubyGem</a></li><li>3.3.7.3&nbsp;&nbsp;<a id="rev:Announce-a-release" href="#Announce-a-release">Announce a release</a><ul><li><a id="rev:Login-information" href="#Login-information">Login information</a></li><li>3.3.7.3.1&nbsp;&nbsp;<a id="rev:Manual-release-announcement" href="#Manual-release-announcement">Manual release announcement</a></li></ul></li><li>3.3.7.4&nbsp;&nbsp;<a id="rev:Publish-the-documentation" href="#Publish-the-documentation">Publish the documentation</a></li></ul></li></ul></li></ul></li><li>4&nbsp;&nbsp;<a id="rev:History" href="#History">History</a><ul><li>4.1&nbsp;&nbsp;<a id="rev:Version-0.3.0-2009-02-12" href="#Version-0.3.0-2009-02-12">Version 0.3.0 (2009-02-12)</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><li><a id="rev:Housekeeping" href="#Housekeeping">Housekeeping</a></li></ul></li><li>4.1&nbsp;&nbsp;<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:New-features-608879778" href="#New-features-608879778">New features</a></li><li><a id="rev:Bug-fixes-608927278" href="#Bug-fixes-608927278">Bug fixes</a></li><li><a id="rev:Housekeeping-608956548" href="#Housekeeping-608956548">Housekeeping</a></li></ul></li><li>4.1&nbsp;&nbsp;<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-609008278" href="#New-features-609008278">New features</a></li><li><a id="rev:Bug-fixes-609028008" href="#Bug-fixes-609028008">Bug fixes</a></li></ul></li><li>4.1&nbsp;&nbsp;<a id="rev:Version-0.0.1-2009-01-13" href="#Version-0.0.1-2009-01-13">Version 0.0.1 (2009-01-13)</a><ul><li><a id="rev:Bug-fixes-609075888" href="#Bug-fixes-609075888">Bug fixes</a></li><li><a id="rev:Housekeeping-609091378" href="#Housekeeping-609091378">Housekeeping</a></li></ul></li><li>4.1&nbsp;&nbsp;<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
157
 
668
- </ul>
669
- </div>
158
+ <div id="toc">
159
+ <a name="Contents"/><div class="nav" id="Contents"><a title="Focus this segment" href="#Contents"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Return to listing" href="#rev:Contents"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
160
+ <h1 class="title">Contents</h1>
161
+ <ul><li>1&nbsp;&nbsp;<a id="rev:Introduction" href="#Introduction">Introduction</a><ul><li><a id="rev:Etymology" href="#Etymology">Etymology</a></li><li>1.1&nbsp;&nbsp;<a id="rev:Logistics" href="#Logistics">Logistics</a><ul><li><a id="rev:Version-numbers" href="#Version-numbers">Version numbers</a></li></ul></li><li>1.2&nbsp;&nbsp;<a id="rev:License" href="#License">License</a></li><li>1.3&nbsp;&nbsp;<a id="rev:Credits" href="#Credits">Credits</a></li></ul></li><li>2&nbsp;&nbsp;<a id="rev:Setup" href="#Setup">Setup</a><ul><li>2.1&nbsp;&nbsp;<a id="rev:Requirements" href="#Requirements">Requirements</a></li><li>2.2&nbsp;&nbsp;<a id="rev:Installation" href="#Installation">Installation</a></li><li>2.3&nbsp;&nbsp;<a id="rev:Manifest" href="#Manifest">Manifest</a></li></ul></li><li>3&nbsp;&nbsp;<a id="rev:Usage" href="#Usage">Usage</a><ul><li>3.1&nbsp;&nbsp;<a id="rev:Command-line-interface" href="#Command-line-interface">Command-line interface</a></li><li>3.2&nbsp;&nbsp;<a id="rev:Ruby-library-interface" href="#Ruby-library-interface">Ruby library interface</a></li><li>3.3&nbsp;&nbsp;<a id="rev:Tutorial" href="#Tutorial">Tutorial</a><ul><li>3.3.1&nbsp;&nbsp;<a id="rev:Have-a-brilliant-idea" href="#Have-a-brilliant-idea">Have a brilliant idea</a></li><li>3.3.2&nbsp;&nbsp;<a id="rev:Generate-your-project" href="#Generate-your-project">Generate your project</a><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&nbsp;&nbsp;<a id="rev:Configure-your-project" href="#Configure-your-project">Configure your project</a><ul><li>3.3.3.1&nbsp;&nbsp;<a id="rev:Project-information" href="#Project-information">Project information</a></li><li>3.3.3.2&nbsp;&nbsp;<a id="rev:Project-executable" href="#Project-executable">Project executable</a></li><li>3.3.3.3&nbsp;&nbsp;<a id="rev:Rake-tasks" href="#Rake-tasks">Rake tasks</a></li><li>3.3.3.4&nbsp;&nbsp;<a id="rev:User-manual" href="#User-manual">User manual</a><ul><li><a id="rev:doc-index.erb" href="#doc-index.erb"><tt>doc/index.erb</tt></a></li><li><a id="rev:doc-intro.erb" href="#doc-intro.erb"><tt>doc/intro.erb</tt></a></li><li><a id="rev:doc-setup.erb" href="#doc-setup.erb"><tt>doc/setup.erb</tt></a></li><li><a id="rev:doc-theory.erb" href="#doc-theory.erb"><tt>doc/theory.erb</tt></a></li><li><a id="rev:doc-usage.erb" href="#doc-usage.erb"><tt>doc/usage.erb</tt></a></li><li><a id="rev:doc-history.erb" href="#doc-history.erb"><tt>doc/history.erb</tt></a></li></ul></li></ul></li><li>3.3.4&nbsp;&nbsp;<a id="rev:Implement-your-project" href="#Implement-your-project">Implement your project</a><ul><li><a id="rev:Goodbye-LOAD_PATH-hello-require" href="#Goodbye-LOAD_PATH-hello-require">Goodbye <code class="line"><span style="color:#d70;font-weight:bold">$LOAD_PATH</span></code>, hello <code class="line">require()</code></a></li></ul></li><li>3.3.5&nbsp;&nbsp;<a id="rev:Test-your-project" href="#Test-your-project">Test your project</a><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&nbsp;&nbsp;<a id="rev:Translate-your-project" href="#Translate-your-project">Translate your project</a><ul><li>3.3.6.1&nbsp;&nbsp;<a id="rev:Language-phrases" href="#Language-phrases">Language phrases</a><ul><li><a id="rev:Parameterizing-language-phrases" href="#Parameterizing-language-phrases">Parameterizing language phrases</a></li><li><a id="rev:Explicit-translation-into-a-language" href="#Explicit-translation-into-a-language">Explicit translation into a language</a></li></ul></li><li>3.3.6.2&nbsp;&nbsp;<a id="rev:Translation-files" href="#Translation-files">Translation files</a></li><li>3.3.6.3&nbsp;&nbsp;<a id="rev:Extracting-language-phrases" href="#Extracting-language-phrases">Extracting language phrases</a><ul><li><a id="rev:Dynamic-analysis" href="#Dynamic-analysis">Dynamic analysis</a></li><li><a id="rev:Static-analysis" href="#Static-analysis">Static analysis</a></li></ul></li><li>3.3.6.4&nbsp;&nbsp;<a id="rev:Translating-language-phrases" href="#Translating-language-phrases">Translating language phrases</a></li></ul></li><li>3.3.7&nbsp;&nbsp;<a id="rev:Publish-your-project" href="#Publish-your-project">Publish your project</a><ul><li>3.3.7.1&nbsp;&nbsp;<a id="rev:Build-a-RubyGem" href="#Build-a-RubyGem">Build a RubyGem</a></li><li>3.3.7.2&nbsp;&nbsp;<a id="rev:Publish-a-RubyGem" href="#Publish-a-RubyGem">Publish a RubyGem</a></li><li>3.3.7.3&nbsp;&nbsp;<a id="rev:Announce-a-release" href="#Announce-a-release">Announce a release</a><ul><li><a id="rev:Login-information" href="#Login-information">Login information</a></li><li>3.3.7.3.1&nbsp;&nbsp;<a id="rev:Manual-release-announcement" href="#Manual-release-announcement">Manual release announcement</a></li></ul></li><li>3.3.7.4&nbsp;&nbsp;<a id="rev:Publish-the-documentation" href="#Publish-the-documentation">Publish the documentation</a></li></ul></li></ul></li></ul></li><li>4&nbsp;&nbsp;<a id="rev:History" href="#History">History</a><ul><li>4.1&nbsp;&nbsp;<a id="rev:Version-1.0.0-2009-05-03" href="#Version-1.0.0-2009-05-03">Version 1.0.0 (2009-05-03)</a><ul><li><a id="rev:Incompatible-changes" href="#Incompatible-changes">Incompatible changes</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.2&nbsp;&nbsp;<a id="rev:Version-0.3.0-2009-02-12" href="#Version-0.3.0-2009-02-12">Version 0.3.0 (2009-02-12)</a><ul><li><a id="rev:New-features-609439008" href="#New-features-609439008">New features</a></li><li><a id="rev:Bug-fixes-609465768" href="#Bug-fixes-609465768">Bug fixes</a></li><li><a id="rev:Housekeeping-609499748" href="#Housekeeping-609499748">Housekeeping</a></li></ul></li><li>4.3&nbsp;&nbsp;<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:New-features-609532608" href="#New-features-609532608">New features</a></li><li><a id="rev:Bug-fixes-609551988" href="#Bug-fixes-609551988">Bug fixes</a></li><li><a id="rev:Housekeeping-609561708" href="#Housekeeping-609561708">Housekeeping</a></li></ul></li><li>4.4&nbsp;&nbsp;<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-609595238" href="#New-features-609595238">New features</a></li><li><a id="rev:Bug-fixes-609627068" href="#Bug-fixes-609627068">Bug fixes</a></li></ul></li><li>4.5&nbsp;&nbsp;<a id="rev:Version-0.0.1-2009-01-13" href="#Version-0.0.1-2009-01-13">Version 0.0.1 (2009-01-13)</a><ul><li><a id="rev:Bug-fixes-609677068" href="#Bug-fixes-609677068">Bug fixes</a></li><li><a id="rev:Housekeeping-609697358" href="#Housekeeping-609697358">Housekeeping</a></li></ul></li><li>4.6&nbsp;&nbsp;<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></ul>
162
+ </div>
670
163
 
671
- <div id="lof"><a name="Tips"/><div class="nav" id="Tips"><a title="Reverse jump to listing" href="#rev:Tips">&equiv;</a>&#x25B3;&#x25BD;<a title="Jump to this segment" href="#Tips">&#x25CE;</a></div><h2 class="title">Tips</h2> <ol><li><a id="rev:Merging-files-with-kdiff3" href="#Merging-files-with-kdiff3">Merging files with <strong>kdiff3</strong></a></li></ol></div>
164
+ <div id="lof"><a name="Tips"/><div class="nav" id="Tips"><a title="Focus this segment" href="#Tips"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Return to listing" href="#rev:Tips"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div><h2 class="title">Tips</h2> <ol><li><a id="rev:Merging-files-with-kdiff3" href="#Merging-files-with-kdiff3">Merging files with <strong>kdiff3</strong></a></li></ol></div>
672
165
 
673
166
  <br style="display: none"/>
674
167
  <hr style="display: none"/>
675
168
  <br style="display: none"/>
676
169
 
170
+
677
171
  <div id="content">
172
+
173
+
174
+
678
175
  <div class="chapter">
679
- <a name="Introduction"/><div class="nav" id="Introduction"><a title="Reverse jump to listing" href="#rev:Introduction">&equiv;</a>&#x25B3;<a title="Jump to next segment" href="#Etymology">&#x25BD;</a><a title="Jump to this segment" href="#Introduction">&#x25CE;</a></div>
176
+ <a name="Introduction"/><div class="nav" id="Introduction"><a title="Focus this segment" href="#Introduction"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus next segment" href="#Etymology"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Introduction"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
680
177
  <h1 class="title">
681
178
  Chapter&nbsp;1
682
179
  <br/>
683
180
  <big>Introduction</big>
684
181
  </h1>
685
- <div class="content"><p><p><strong>Inochi</strong> is an infrastructure for <a href='http://www.rubygems.org'>RubyGems</a>-based software projects that encourages good documentation and reduces programming effort by automating common tasks.</p> <strong>Inochi</strong> is exciting because:</p>
182
+ <div class="content"><p>Inochi is an infrastructure for <a href='http://www.rubygems.org'>RubyGems</a>-based software projects that encourages good documentation and reduces programming effort by automating common tasks.</p><p> Inochi is exciting because:</p>
686
183
 
687
184
  <ul>
688
185
  <li>
689
186
  <p>It encourages good documentation:</p>
690
187
 
691
188
  <ul>
692
- <li>Provides a comprehensive user manual that integrates release notes, setup and usage instructions, and more.</li>
189
+ <li>
190
+ <p>Provides a comprehensive user manual that integrates release notes, setup and usage instructions, and more.</p>
191
+ </li>
693
192
 
694
- <li>Automates the display of help, version, and usage information for your project&#8217;s main executable.</li>
193
+ <li>
194
+ <p>Automates the display of help, version, and usage information for your project&#8217;s main executable.</p>
195
+ </li>
695
196
  </ul>
696
197
  </li>
697
198
 
@@ -699,6 +200,8 @@
699
200
  <p>It reduces programming effort:</p>
700
201
 
701
202
  <ul>
203
+ <li>Makes it easy to <a class="xref" href="#Translate-your-project" title="Section 3.3.6. &quot;Translate your project&quot;">translate your project</a> into many languages.</li>
204
+
702
205
  <li>Provides a single point of entry to your project&#8217;s libraries.</li>
703
206
 
704
207
  <li>Keeps your project&#8217;s configuration in one place.</li>
@@ -718,7 +221,7 @@
718
221
  </li>
719
222
  </ul>
720
223
 
721
- <p>These features distinguish <strong>Inochi</strong> from the competition:</p>
224
+ <p>These features distinguish Inochi from the competition:</p>
722
225
 
723
226
  <ul>
724
227
  <li><a href='http://seattlerb.rubyforge.org/hoe/'>hoe</a></li>
@@ -736,35 +239,35 @@
736
239
  <li><a href='http://github.com/reagent/simple-gem/tree/master'>SimpleGem</a></li>
737
240
  </ul>
738
241
 
739
- <p><div class="paragraph">
740
- <a name="Etymology"/><div class="nav" id="Etymology"><a title="Reverse jump to listing" href="#rev:Etymology">&equiv;</a><a title="Jump to previous segment" href="#Introduction">&#x25B3;</a><a title="Jump to next segment" href="#Logistics">&#x25BD;</a><a title="Jump to this segment" href="#Etymology">&#x25CE;</a></div>
242
+ <div class="paragraph">
243
+ <a name="Etymology"/><div class="nav" id="Etymology"><a title="Focus this segment" href="#Etymology"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Introduction"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Logistics"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Etymology"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
741
244
  <p class="title">Etymology</p>
742
245
  <div class="content"><p>In the past, software development was thought to be like mathematical modeling or building construction: the assembly of inanimate objects. Nowadays, it is thought to be more like gardening: the cultivation of life!</p>
743
246
 
744
247
  <p>In this manner, I consider this project not as a generator of skeletons or as a builder of scaffolds, but as a <em>giver of life</em>. That is why I named this project &#8220;inochi&#8221;, the Japanese word for <em>life</em>.</p>
745
248
 
746
249
  <p>Happy cultivation!</p></div>
747
- </div> <div class="section">
748
- <a name="Logistics"/><div class="nav" id="Logistics"><a title="Reverse jump to listing" href="#rev:Logistics">&equiv;</a><a title="Jump to previous segment" href="#Etymology">&#x25B3;</a><a title="Jump to next segment" href="#Version-numbers">&#x25BD;</a><a title="Jump to this segment" href="#Logistics">&#x25CE;</a></div>
250
+ </div><div class="section">
251
+ <a name="Logistics"/><div class="nav" id="Logistics"><a title="Focus this segment" href="#Logistics"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Etymology"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Version-numbers"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Logistics"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
749
252
  <h2 class="title">
750
253
  1.1&nbsp;&nbsp;Logistics
751
254
  </h2>
752
255
  <div class="content"><ul>
753
256
  <li><a class="xref" href="#History" title="Chapter 4. &quot;History&quot;">Release notes</a> &#8212; history of project releases.</li>
754
257
 
755
- <li><a href='http://github.com/sunaku/inochi'>Source code</a> &#8212; obtain via <a href='http://git.or.cz'>Git</a> or browse online.</li>
258
+ <li><a href='http://github.com/sunaku/inochi'>Source code</a> &#8212; obtain via <a href='http://git-scm.com'>Git</a> or browse online.</li>
756
259
 
757
- <li><a href='api/index.html'>API reference</a> &#8212; documentation for source code.</li>
260
+ <li><a href='./api/index.html'>API reference</a> &#8212; documentation for source code.</li>
758
261
 
759
- <li><a href='http://snk.tuxfamily.org/lib/inochi'>Project home</a> &#8212; the <strong>Inochi</strong> project home page.</li>
262
+ <li><a href='http://snk.tuxfamily.org/lib/inochi'>Project home</a> &#8212; the Inochi project home page.</li>
760
263
  </ul>
761
264
 
762
265
  <p>To get help or provide feedback, simply <a class="xref" href="#License" title="Section 1.2. &quot;License&quot;">contact the author(s)</a>.</p>
763
266
 
764
- <p><div class="paragraph">
765
- <a name="Version-numbers"/><div class="nav" id="Version-numbers"><a title="Reverse jump to listing" href="#rev:Version-numbers">&equiv;</a><a title="Jump to previous segment" href="#Logistics">&#x25B3;</a><a title="Jump to next segment" href="#License">&#x25BD;</a><a title="Jump to this segment" href="#Version-numbers">&#x25CE;</a></div>
267
+ <div class="paragraph">
268
+ <a name="Version-numbers"/><div class="nav" id="Version-numbers"><a title="Focus this segment" href="#Version-numbers"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Logistics"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#License"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Version-numbers"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
766
269
  <p class="title">Version numbers</p>
767
- <div class="content"><p><strong>Inochi</strong> releases are numbered in <em>major.minor.patch</em> form according to the <a href='http://www.rubygems.org/read/chapter/7'>RubyGems rational versioning policy</a>, which can be summarized thus:</p>
270
+ <div class="content"><p>Inochi releases are numbered in <em>major.minor.patch</em> form according to the <a href='http://www.rubygems.org/read/chapter/7'>RubyGems rational versioning policy</a>, which can be summarized thus:</p>
768
271
  <table border="1">
769
272
  <thead>
770
273
  <tr>
@@ -798,9 +301,9 @@
798
301
  </tr>
799
302
  </tbody>
800
303
  </table></div>
801
- </div></p></div>
802
- </div> <div class="section">
803
- <a name="License"/><div class="nav" id="License"><a title="Reverse jump to listing" href="#rev:License">&equiv;</a><a title="Jump to previous segment" href="#Version-numbers">&#x25B3;</a><a title="Jump to next segment" href="#Credits">&#x25BD;</a><a title="Jump to this segment" href="#License">&#x25CE;</a></div>
304
+ </div><p></p></div>
305
+ </div><div class="section">
306
+ <a name="License"/><div class="nav" id="License"><a title="Focus this segment" href="#License"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Version-numbers"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Credits"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:License"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
804
307
  <h2 class="title">
805
308
  1.2&nbsp;&nbsp;License
806
309
  </h2>
@@ -811,45 +314,47 @@
811
314
  <p>Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.</p>
812
315
 
813
316
  <p>THE SOFTWARE IS PROVIDED &#8220;AS IS&#8221; AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</p></div>
814
- </div> <div class="section">
815
- <a name="Credits"/><div class="nav" id="Credits"><a title="Reverse jump to listing" href="#rev:Credits">&equiv;</a><a title="Jump to previous segment" href="#License">&#x25B3;</a><a title="Jump to next segment" href="#Setup">&#x25BD;</a><a title="Jump to this segment" href="#Credits">&#x25CE;</a></div>
317
+ </div><div class="section">
318
+ <a name="Credits"/><div class="nav" id="Credits"><a title="Focus this segment" href="#Credits"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#License"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Setup"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Credits"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
816
319
  <h2 class="title">
817
320
  1.3&nbsp;&nbsp;Credits
818
321
  </h2>
819
- <div class="content"><img src='inochi.png' alt='project logo' />
322
+ <div class="content"><a href='#Credits' class='xref' title='Section 1.3. &quot;Credits&quot;'><img src='inochi.png' alt='Inochi logo' /></a>
820
323
  <p>The &#8220;inochi.png&#8221; image and its &#8220;inochi.svg&#8221; source utilize the <a href='http://openclipart.org/media/files/Peileppe/8978'>&#8220;3 flowers&#8221;</a> graphic, which was created and released into the public domain by <a href='http://openclipart.org/media/people/Peileppe'>Peileppe Production</a> on June 25, 2008.</p>
821
324
 
822
- <p><strong>Inochi</strong> is made possible by <a class="xref" href="#History" title="Chapter 4. &quot;History&quot;">contributions</a> from users like you:</p>
325
+ <p>Inochi is made possible by <a class="xref" href="#History" title="Chapter 4. &quot;History&quot;">contributions</a> from users like you:</p>
823
326
 
824
327
  <ul>
825
328
  <li>Florian Gilcher</li>
826
329
  </ul></div>
827
- </div></p></div>
828
- </div><div class="chapter">
829
- <a name="Setup"/><div class="nav" id="Setup"><a title="Reverse jump to listing" href="#rev:Setup">&equiv;</a><a title="Jump to previous segment" href="#Credits">&#x25B3;</a><a title="Jump to next segment" href="#Requirements">&#x25BD;</a><a title="Jump to this segment" href="#Setup">&#x25CE;</a></div>
330
+ </div><p> </p></div>
331
+ </div>
332
+
333
+ <div class="chapter">
334
+ <a name="Setup"/><div class="nav" id="Setup"><a title="Focus this segment" href="#Setup"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Credits"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Requirements"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Setup"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
830
335
  <h1 class="title">
831
336
  Chapter&nbsp;2
832
337
  <br/>
833
338
  <big>Setup</big>
834
339
  </h1>
835
- <div class="content"><p><div class="section">
836
- <a name="Requirements"/><div class="nav" id="Requirements"><a title="Reverse jump to listing" href="#rev:Requirements">&equiv;</a><a title="Jump to previous segment" href="#Setup">&#x25B3;</a><a title="Jump to next segment" href="#Installation">&#x25BD;</a><a title="Jump to this segment" href="#Requirements">&#x25CE;</a></div>
340
+ <div class="content"><div class="section">
341
+ <a name="Requirements"/><div class="nav" id="Requirements"><a title="Focus this segment" href="#Requirements"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Setup"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Installation"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Requirements"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
837
342
  <h2 class="title">
838
343
  2.1&nbsp;&nbsp;Requirements
839
344
  </h2>
840
- <div class="content"><p>Your system needs the following software to run <strong>Inochi</strong>.</p>
345
+ <div class="content"><p>Your system needs the following software to run Inochi.</p>
841
346
  <table border="1"><thead><tr><th>Software</th><th>Description</th><th>Notes</th></tr></thead><tbody><tr><td style='text-align: left;'><a href='http://ruby-lang.org'>Ruby</a></td><td style='text-align: left;'>Ruby language interpreter</td><td style='text-align: left;'>Version 1.8.6 or 1.8.7 is required.</td>
842
- </tr><tr><td style='text-align: left;'><a href='http://rubygems.org'>RubyGems</a></td><td style='text-align: left;'>Ruby packaging system</td><td style='text-align: left;'>Version 1.x.x is required.</td>
347
+ </tr><tr><td style='text-align: left;'><a href='http://rubygems.org'>RubyGems</a></td><td style='text-align: left;'>Ruby packaging system</td><td style='text-align: left;'>Version 1.3.1 or newer is required.</td>
843
348
  </tr><tr><td style='text-align: left;'><a href='http://lynx.isc.org'>Lynx</a></td><td style='text-align: left;'>Text-mode web browser</td><td style='text-align: left;'>Version 2.8.6 or newer is required to convert HTML into plain text.</td>
844
349
  </tr></tbody></table></div>
845
- </div> <div class="section">
846
- <a name="Installation"/><div class="nav" id="Installation"><a title="Reverse jump to listing" href="#rev:Installation">&equiv;</a><a title="Jump to previous segment" href="#Requirements">&#x25B3;</a><a title="Jump to next segment" href="#Manifest">&#x25BD;</a><a title="Jump to this segment" href="#Installation">&#x25CE;</a></div>
350
+ </div><div class="section">
351
+ <a name="Installation"/><div class="nav" id="Installation"><a title="Focus this segment" href="#Installation"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Requirements"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Manifest"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Installation"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
847
352
  <h2 class="title">
848
353
  2.2&nbsp;&nbsp;Installation
849
354
  </h2>
850
- <div class="content"><p>You can install <strong>Inochi</strong> by running this command:</p>
355
+ <div class="content"><p>You can install Inochi by running this command:</p>
851
356
 
852
- <pre>gem install -f inochi</pre>
357
+ <pre>gem install inochi --development</pre>
853
358
 
854
359
  <p>To check whether the installation was sucessful, run this command:</p>
855
360
 
@@ -857,19 +362,19 @@
857
362
 
858
363
  <p>If the installation was successful, you will see output like this:</p>
859
364
 
860
- <p><pre>project: Inochi
861
- version: 0.3.0
862
- release: 2009-02-12
365
+ <pre>project: Inochi
366
+ version: 1.0.0
367
+ release: 2009-05-03
863
368
  website: http://snk.tuxfamily.org/lib/inochi
864
- install: /home/sun/src/inochi</pre></p>
369
+ install: /home/sun/src/inochi</pre><p></p>
865
370
 
866
371
  <p>If you do not see such output, you may <a class="xref" href="#License" title="Section 1.2. &quot;License&quot;">ask the author(s)</a> for help.</p></div>
867
- </div> <div class="section">
868
- <a name="Manifest"/><div class="nav" id="Manifest"><a title="Reverse jump to listing" href="#rev:Manifest">&equiv;</a><a title="Jump to previous segment" href="#Installation">&#x25B3;</a><a title="Jump to next segment" href="#Usage">&#x25BD;</a><a title="Jump to this segment" href="#Manifest">&#x25CE;</a></div>
372
+ </div><div class="section">
373
+ <a name="Manifest"/><div class="nav" id="Manifest"><a title="Focus this segment" href="#Manifest"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Installation"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Usage"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Manifest"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
869
374
  <h2 class="title">
870
375
  2.3&nbsp;&nbsp;Manifest
871
376
  </h2>
872
- <div class="content"><p>You will see the following items inside <strong>Inochi</strong>&#8217;s installation directory, whose path you can determine by running this command:</p>
377
+ <div class="content"><p>You will see the following items inside Inochi&#8217;s installation directory, whose path you can determine by running this command:</p>
873
378
 
874
379
  <pre>inochi --version</pre>
875
380
 
@@ -878,7 +383,7 @@ install: /home/sun/src/inochi</pre></p>
878
383
  <p><tt>bin/</tt></p>
879
384
 
880
385
  <ul>
881
- <li><tt>inochi</tt> &#8212; the main <strong>Inochi</strong> executable.</li>
386
+ <li><tt>inochi</tt> &#8212; the main Inochi executable.</li>
882
387
  </ul>
883
388
  </li>
884
389
 
@@ -886,7 +391,7 @@ install: /home/sun/src/inochi</pre></p>
886
391
  <p><tt>lib/</tt></p>
887
392
 
888
393
  <ul>
889
- <li><tt>inochi.rb</tt> &#8212; the main <strong>Inochi</strong> library.</li>
394
+ <li><tt>inochi.rb</tt> &#8212; the main Inochi library.</li>
890
395
  </ul>
891
396
  </li>
892
397
 
@@ -912,18 +417,19 @@ install: /home/sun/src/inochi</pre></p>
912
417
  <p><tt>LICENSE</tt> &#8212; copyright notice and legal conditions.</p>
913
418
  </li>
914
419
  </ul></div>
915
- </div></p></div>
420
+ </div><p> </p></div>
916
421
  </div>
917
422
 
423
+
918
424
  <div class="part">
919
- <a name="Usage"/><div class="nav" id="Usage"><a title="Reverse jump to listing" href="#rev:Usage">&equiv;</a><a title="Jump to previous segment" href="#Manifest">&#x25B3;</a><a title="Jump to next segment" href="#Command-line-interface">&#x25BD;</a><a title="Jump to this segment" href="#Usage">&#x25CE;</a></div>
425
+ <a name="Usage"/><div class="nav" id="Usage"><a title="Focus this segment" href="#Usage"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Manifest"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Command-line-interface"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Usage"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
920
426
  <h1 class="title">
921
427
  Part&nbsp;3
922
428
  <br/>
923
429
  <big>Usage</big>
924
430
  </h1>
925
- <div class="content"><p><div class="section">
926
- <a name="Command-line-interface"/><div class="nav" id="Command-line-interface"><a title="Reverse jump to listing" href="#rev:Command-line-interface">&equiv;</a><a title="Jump to previous segment" href="#Usage">&#x25B3;</a><a title="Jump to next segment" href="#Merging-files-with-kdiff3">&#x25BD;</a><a title="Jump to this segment" href="#Command-line-interface">&#x25CE;</a></div>
431
+ <div class="content"><div class="section">
432
+ <a name="Command-line-interface"/><div class="nav" id="Command-line-interface"><a title="Focus this segment" href="#Command-line-interface"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Usage"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Merging-files-with-kdiff3"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Command-line-interface"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
927
433
  <h2 class="title">
928
434
  3.1&nbsp;&nbsp;Command-line interface
929
435
  </h2>
@@ -933,7 +439,7 @@ install: /home/sun/src/inochi</pre></p>
933
439
 
934
440
  <p>You will see this output:</p>
935
441
 
936
- <p><pre>Inochi - Gives life to RubyGems-based software
442
+ <pre>Inochi - Gives life to RubyGems-based software
937
443
 
938
444
  Generates a project scaffold using the given information.
939
445
 
@@ -959,7 +465,7 @@ Usage:
959
465
 
960
466
 
961
467
  ProjectName: Name of your project, which will be normalized
962
- into the naame of a Ruby module that will serve
468
+ into the name of a Ruby module that will serve
963
469
  as a namespace for all code in your project.
964
470
 
965
471
  ProgramName: (Optional) Name of the main project executable,
@@ -978,13 +484,13 @@ Options:
978
484
  --manual, -a: Show the user manual
979
485
  --locale, -l &lt;s&gt;: Set preferred language
980
486
  --version, -v: Print version and exit
981
- --help, -h: Show this message</pre></p>
487
+ --help, -h: Show this message</pre><p></p>
982
488
 
983
- <p><div class="tip">
984
- <a name="Merging-files-with-kdiff3"/><div class="nav" id="Merging-files-with-kdiff3"><a title="Reverse jump to listing" href="#rev:Merging-files-with-kdiff3">&equiv;</a><a title="Jump to previous segment" href="#Command-line-interface">&#x25B3;</a><a title="Jump to next segment" href="#Ruby-library-interface">&#x25BD;</a><a title="Jump to this segment" href="#Merging-files-with-kdiff3">&#x25CE;</a></div>
489
+ <div class="tip">
490
+ <a name="Merging-files-with-kdiff3"/><div class="nav" id="Merging-files-with-kdiff3"><a title="Focus this segment" href="#Merging-files-with-kdiff3"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Command-line-interface"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Ruby-library-interface"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Merging-files-with-kdiff3"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
985
491
  <p class="title">Tip 1.&nbsp;&nbsp;Merging files with <strong>kdiff3</strong></p>
986
492
  <div class="content">
987
- <img class="icon" src="&icon_tip;" alt="tip"/>
493
+ <img class="icon" alt="tip" src="&icon_tip;"/>
988
494
  <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>
989
495
 
990
496
  <ol>
@@ -1012,11 +518,11 @@ kdiff3 --merge &quot;$old_file&quot; &quot;$new_file&quot; --output &quot;$outpu
1012
518
  </li>
1013
519
 
1014
520
  <li>
1015
- <p>Place the file in a directory that is listed in your <code class="code"><span style="color:#036;font-weight:bold">PATH</span></code> environment variable.</p>
521
+ <p>Place the file in a directory that is listed in your <code class="line"><span style="color:#036;font-weight:bold">PATH</span></code> environment variable.</p>
1016
522
  </li>
1017
523
 
1018
524
  <li>
1019
- <p>Run <strong>Inochi</strong> like this:</p>
525
+ <p>Run Inochi like this:</p>
1020
526
 
1021
527
  <pre>inochi -m merge2</pre>
1022
528
 
@@ -1024,32 +530,32 @@ kdiff3 --merge &quot;$old_file&quot; &quot;$new_file&quot; --output &quot;$outpu
1024
530
  </li>
1025
531
  </ol>
1026
532
  </div>
1027
- </div></p></div>
1028
- </div> <div class="section">
1029
- <a name="Ruby-library-interface"/><div class="nav" id="Ruby-library-interface"><a title="Reverse jump to listing" href="#rev:Ruby-library-interface">&equiv;</a><a title="Jump to previous segment" href="#Merging-files-with-kdiff3">&#x25B3;</a><a title="Jump to next segment" href="#Tutorial">&#x25BD;</a><a title="Jump to this segment" href="#Ruby-library-interface">&#x25CE;</a></div>
533
+ </div><p></p></div>
534
+ </div><div class="section">
535
+ <a name="Ruby-library-interface"/><div class="nav" id="Ruby-library-interface"><a title="Focus this segment" href="#Ruby-library-interface"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Merging-files-with-kdiff3"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Tutorial"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Ruby-library-interface"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1030
536
  <h2 class="title">
1031
537
  3.2&nbsp;&nbsp;Ruby library interface
1032
538
  </h2>
1033
- <div class="content"><p>The <a href='api/Inochi.html'><code class="code"><span style="color:#036;font-weight:bold">Inochi</span></code> module</a> has several class methods which provide a common configuration for various aspects of your project. These aspects, and their interactions with the <code class="code"><span style="color:#036;font-weight:bold">Inochi</span></code> module, are as follows:</p>
539
+ <div class="content"><p>The <code class="line"><span style="color:#036;font-weight:bold">Inochi</span></code> module has several class methods which provide a common configuration for various aspects of your project. These aspects, and their interactions with the <code class="line"><span style="color:#036;font-weight:bold">Inochi</span></code> module, are as follows:</p>
1034
540
 
1035
541
  <ul>
1036
- <li>Your project&#8217;s main library invokes the <a href='api/Inochi.html#init-class_method'><code class="code"><span style="color:#036;font-weight:bold">Inochi</span>.init()</code> method</a>.</li>
542
+ <li>Your project&#8217;s main library invokes the <code class="line"><span style="color:#036;font-weight:bold">Inochi</span>.init()</code> method.</li>
1037
543
 
1038
- <li>Your project&#8217;s main executable invokes the <a href='api/Inochi.html#main-class_method'><code class="code"><span style="color:#036;font-weight:bold">Inochi</span>.main()</code> method</a>.</li>
544
+ <li>Your project&#8217;s main executable invokes the <code class="line"><span style="color:#036;font-weight:bold">Inochi</span>.main()</code> method.</li>
1039
545
 
1040
- <li>Your project&#8217;s <tt>Rakefile</tt> invokes the <a href='api/Inochi.html#rake-class_method'><code class="code"><span style="color:#036;font-weight:bold">Inochi</span>.rake()</code> method</a>.</li>
546
+ <li>Your project&#8217;s <tt>rakefile</tt> invokes the <code class="line"><span style="color:#036;font-weight:bold">Inochi</span>.rake()</code> method.</li>
1041
547
 
1042
- <li>Your project&#8217;s user manual invokes the <a href='api/Inochi.html#book-class_method'><code class="code"><span style="color:#036;font-weight:bold">Inochi</span>.book()</code> method</a>.</li>
548
+ <li>Your project&#8217;s user manual invokes the <code class="line"><span style="color:#036;font-weight:bold">Inochi</span>.book()</code> method.</li>
1043
549
  </ul></div>
1044
- </div> <div class="section">
1045
- <a name="Tutorial"/><div class="nav" id="Tutorial"><a title="Reverse jump to listing" href="#rev:Tutorial">&equiv;</a><a title="Jump to previous segment" href="#Ruby-library-interface">&#x25B3;</a><a title="Jump to next segment" href="#Have-a-brilliant-idea">&#x25BD;</a><a title="Jump to this segment" href="#Tutorial">&#x25CE;</a></div>
550
+ </div><div class="section">
551
+ <a name="Tutorial"/><div class="nav" id="Tutorial"><a title="Focus this segment" href="#Tutorial"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Ruby-library-interface"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Have-a-brilliant-idea"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Tutorial"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1046
552
  <h2 class="title">
1047
553
  3.3&nbsp;&nbsp;Tutorial
1048
554
  </h2>
1049
- <div class="content"><p>This tutorial shows how <strong>Inochi</strong> is used to manage a hypothetical <code class="code"><span style="color:#036;font-weight:bold">WordCount</span></code> project throughout the various stages of its life.</p>
555
+ <div class="content"><p>This tutorial shows how Inochi is used to manage a hypothetical <code class="line"><span style="color:#036;font-weight:bold">WordCount</span></code> project throughout the various stages of its life.</p>
1050
556
 
1051
- <p><div class="section">
1052
- <a name="Have-a-brilliant-idea"/><div class="nav" id="Have-a-brilliant-idea"><a title="Reverse jump to listing" href="#rev:Have-a-brilliant-idea">&equiv;</a><a title="Jump to previous segment" href="#Tutorial">&#x25B3;</a><a title="Jump to next segment" href="#Generate-your-project">&#x25BD;</a><a title="Jump to this segment" href="#Have-a-brilliant-idea">&#x25CE;</a></div>
557
+ <div class="section">
558
+ <a name="Have-a-brilliant-idea"/><div class="nav" id="Have-a-brilliant-idea"><a title="Focus this segment" href="#Have-a-brilliant-idea"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Tutorial"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Generate-your-project"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Have-a-brilliant-idea"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1053
559
  <h3 class="title">
1054
560
  3.3.1&nbsp;&nbsp;Have a brilliant idea
1055
561
  </h3>
@@ -1097,19 +603,22 @@ kdiff3 --merge &quot;$old_file&quot; &quot;$new_file&quot; --output &quot;$outpu
1097
603
 
1098
604
  <p>and fall asleep.</p>
1099
605
 
1100
- <p>You awaken that evening relaxed and refreshed. A brilliant idea for a new project enters your mind: the project will be a tool that counts the number of words in text file. And, the project can be accessed from Ruby via the <code class="code"><span style="color:#036;font-weight:bold">WordCount</span></code> module.</p>
606
+ <p>You awaken that evening relaxed and refreshed. A brilliant idea for a new project enters your mind: the project will be a tool that counts the number of words in text file. And, the project can be accessed from Ruby via the <code class="line"><span style="color:#036;font-weight:bold">WordCount</span></code> module.</p>
1101
607
 
1102
- <p><em>However</em>, you must go to work the next morning, so there isn&#8217;t much time. What can you do? Let&#8217;s see how <strong>Inochi</strong> can help us meet this challenge.</p></div>
1103
- </div> <div class="section">
1104
- <a name="Generate-your-project"/><div class="nav" id="Generate-your-project"><a title="Reverse jump to listing" href="#rev:Generate-your-project">&equiv;</a><a title="Jump to previous segment" href="#Have-a-brilliant-idea">&#x25B3;</a><a title="Jump to next segment" href="#View-Rake-tasks">&#x25BD;</a><a title="Jump to this segment" href="#Generate-your-project">&#x25CE;</a></div>
608
+ <p><em>However</em>, you must go to work the next morning, so there isn&#8217;t much time. What can you do? Let&#8217;s see how Inochi can help us meet this challenge.</p></div>
609
+ </div><p></p>
610
+
611
+ <div class="section">
612
+ <a name="Generate-your-project"/><div class="nav" id="Generate-your-project"><a title="Focus this segment" href="#Generate-your-project"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Have-a-brilliant-idea"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#View-Rake-tasks"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Generate-your-project"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1105
613
  <h3 class="title">
1106
614
  3.3.2&nbsp;&nbsp;Generate your project
1107
615
  </h3>
1108
616
  <div class="content"><p>Give life to your new project:</p>
1109
617
 
1110
- <p><pre># inochi WordCount
618
+ <pre># inochi WordCount
619
+ create word_count/CREDITS
1111
620
  create word_count/LICENSE
1112
- create word_count/Rakefile
621
+ create word_count/rakefile
1113
622
  create word_count/bin/word_count
1114
623
  create word_count/lib/word_count.rb
1115
624
  create word_count/test/word_count.rb
@@ -1119,17 +628,17 @@ kdiff3 --merge &quot;$old_file&quot; &quot;$new_file&quot; --output &quot;$outpu
1119
628
  create word_count/doc/theory.erb
1120
629
  create word_count/doc/usage.erb
1121
630
  create word_count/doc/history.erb
1122
- </pre></p>
631
+ </pre><p></p>
1123
632
 
1124
633
  <p>Enter the <tt>word_count</tt> directory:</p>
1125
634
 
1126
- <p><pre># cd word_count</pre></p>
635
+ <pre># cd word_count</pre><p></p>
1127
636
 
1128
- <p><div class="paragraph">
1129
- <a name="View-Rake-tasks"/><div class="nav" id="View-Rake-tasks"><a title="Reverse jump to listing" href="#rev:View-Rake-tasks">&equiv;</a><a title="Jump to previous segment" href="#Generate-your-project">&#x25B3;</a><a title="Jump to next segment" href="#Run-unit-tests">&#x25BD;</a><a title="Jump to this segment" href="#View-Rake-tasks">&#x25CE;</a></div>
637
+ <div class="paragraph">
638
+ <a name="View-Rake-tasks"/><div class="nav" id="View-Rake-tasks"><a title="Focus this segment" href="#View-Rake-tasks"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Generate-your-project"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Run-unit-tests"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:View-Rake-tasks"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1130
639
  <p class="title">View Rake tasks</p>
1131
- <div class="content"><p><pre># rake -T
1132
- (in /tmp/Inochi20090212-5946-1r29zno-0/word_count)
640
+ <div class="content"><pre># rake -T
641
+ (in /tmp/rake20090504-12012-13p4oou-0/word_count)
1133
642
  rake ann # Build all release announcements.
1134
643
  rake ann:feed # Build RSS announcement: doc/ann.xml
1135
644
  rake ann:html # Build HTML announcement: ANN.html
@@ -1140,42 +649,40 @@ rake clobber # Remove any generated file.
1140
649
  rake doc # Build all documentation.
1141
650
  rake doc:api # Build API reference.
1142
651
  rake doc:man # Build the user manual.
652
+ rake gem # Build a release.
1143
653
  rake lang:conv # Translate extracted language phrases (from=LANGUAGE_CODE).
1144
654
  rake lang:dump # Extract language phrases for translation.
1145
- rake pak # Build a release.
655
+ rake lint # Report code quality statistics.
1146
656
  rake pub # Publish a release.
1147
657
  rake pub:ann # Publish all announcements.
1148
658
  rake pub:ann:forge # Announce to RubyForge news.
1149
659
  rake pub:ann:raa # Announce to RAA (Ruby Application Archive).
1150
660
  rake pub:ann:talk # Announce to ruby-talk mailing list.
1151
661
  rake pub:doc # Publish documentation to project website.
1152
- rake pub:pak # Publish release packages to RubyForge.
1153
- rake test # Run all unit tests.
1154
- </pre></p></div>
1155
- </div> <div class="paragraph">
1156
- <a name="Run-unit-tests"/><div class="nav" id="Run-unit-tests"><a title="Reverse jump to listing" href="#rev:Run-unit-tests">&equiv;</a><a title="Jump to previous segment" href="#View-Rake-tasks">&#x25B3;</a><a title="Jump to next segment" href="#Run-project-executable">&#x25BD;</a><a title="Jump to this segment" href="#Run-unit-tests">&#x25CE;</a></div>
662
+ rake pub:gem # Publish release packages to RubyForge.
663
+ rake test # Run tests.
664
+ rake test:cov # Run tests with code coverage analysis.
665
+ rake test:ruby # Run tests with multiple Ruby versions.
666
+ </pre><p></p></div>
667
+ </div><div class="paragraph">
668
+ <a name="Run-unit-tests"/><div class="nav" id="Run-unit-tests"><a title="Focus this segment" href="#Run-unit-tests"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#View-Rake-tasks"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Run-project-executable"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Run-unit-tests"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1157
669
  <p class="title">Run unit tests</p>
1158
- <div class="content"><p><pre># rake test
1159
- (in /tmp/Inochi20090212-5946-1r29zno-0/word_count)
1160
- Loaded suite word_count
1161
- Started
1162
- .
1163
- Finished in 0.001123 seconds.
1164
-
1165
- 1 tests, 25 assertions, 0 failures, 0 errors, 0 skips
1166
- </pre></p></div>
1167
- </div> <div class="paragraph">
1168
- <a name="Run-project-executable"/><div class="nav" id="Run-project-executable"><a title="Reverse jump to listing" href="#rev:Run-project-executable">&equiv;</a><a title="Jump to previous segment" href="#Run-unit-tests">&#x25B3;</a><a title="Jump to next segment" href="#Show-user-manual">&#x25BD;</a><a title="Jump to this segment" href="#Run-project-executable">&#x25CE;</a></div>
670
+ <div class="content"><pre># rake test
671
+ (in /tmp/rake20090504-12012-13p4oou-0/word_count)
672
+ Inochi establishment tests passed!
673
+ </pre><p></p></div>
674
+ </div><div class="paragraph">
675
+ <a name="Run-project-executable"/><div class="nav" id="Run-project-executable"><a title="Focus this segment" href="#Run-project-executable"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Run-unit-tests"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Show-user-manual"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Run-project-executable"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1169
676
  <p class="title">Run project executable</p>
1170
- <div class="content"><p><pre># ruby bin/word_count
1171
- Command-line options: {:locale=&gt;nil, :manual=&gt;false, :version=&gt;false, :help=&gt;false}
677
+ <div class="content"><pre># ruby bin/word_count
678
+ Command-line options: {:manual=&gt;false, :locale=&gt;nil, :version=&gt;false, :help=&gt;false}
1172
679
  Command-line arguments: []
1173
- </pre></p>
680
+ </pre><p></p>
1174
681
 
1175
682
  <p>See usage information:</p>
1176
683
 
1177
- <p><pre># ruby bin/word_count --help
1178
- WordCount - TODO: put a single line description of your project here.
684
+ <pre># ruby bin/word_count --help
685
+ WordCount - put a single line description of your project here
1179
686
 
1180
687
  TODO: Explain the command-line usage of this program here.
1181
688
 
@@ -1198,45 +705,45 @@ Options:
1198
705
  --locale, -l &lt;s&gt;: Set preferred language
1199
706
  --version, -v: Print version and exit
1200
707
  --help, -h: Show this message
1201
- </pre></p>
708
+ </pre><p></p>
1202
709
 
1203
710
  <p>See project &amp; version information:</p>
1204
711
 
1205
- <p><pre># ruby bin/word_count --version
712
+ <pre># ruby bin/word_count --version
1206
713
  project: WordCount
1207
714
  version: 0.0.0
1208
- release: 2009-02-12
715
+ release: 2009-05-04
1209
716
  website: http://word_count.rubyforge.org
1210
- install: /tmp/Inochi20090212-5946-1r29zno-0/word_count
1211
- </pre></p></div>
1212
- </div> <div class="paragraph">
1213
- <a name="Show-user-manual"/><div class="nav" id="Show-user-manual"><a title="Reverse jump to listing" href="#rev:Show-user-manual">&equiv;</a><a title="Jump to previous segment" href="#Run-project-executable">&#x25B3;</a><a title="Jump to next segment" href="#Configure-your-project">&#x25BD;</a><a title="Jump to this segment" href="#Show-user-manual">&#x25CE;</a></div>
717
+ install: /tmp/rake20090504-12012-13p4oou-0/word_count
718
+ </pre><p></p></div>
719
+ </div><div class="paragraph">
720
+ <a name="Show-user-manual"/><div class="nav" id="Show-user-manual"><a title="Focus this segment" href="#Show-user-manual"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Run-project-executable"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Configure-your-project"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Show-user-manual"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1214
721
  <p class="title">Show user manual</p>
1215
722
  <div class="content"><p>Build the user manual (please disregard any &#8220;unclosed span&#8221; warnings):</p>
1216
723
 
1217
- <p><pre># rake doc:man</pre></p>
724
+ <pre># rake doc:man</pre><p></p>
1218
725
 
1219
726
  <p>Launch the user manual:</p>
1220
727
 
1221
- <p><pre># ruby bin/word_count --manual</pre></p>
728
+ <pre># ruby bin/word_count --manual</pre><p></p>
1222
729
 
1223
730
  <p>The manual will now appear in your default web browser.</p></div>
1224
- </div></p></div>
1225
- </div> <div class="section">
1226
- <a name="Configure-your-project"/><div class="nav" id="Configure-your-project"><a title="Reverse jump to listing" href="#rev:Configure-your-project">&equiv;</a><a title="Jump to previous segment" href="#Show-user-manual">&#x25B3;</a><a title="Jump to next segment" href="#Project-information">&#x25BD;</a><a title="Jump to this segment" href="#Configure-your-project">&#x25CE;</a></div>
731
+ </div><p> </p></div>
732
+ </div><div class="section">
733
+ <a name="Configure-your-project"/><div class="nav" id="Configure-your-project"><a title="Focus this segment" href="#Configure-your-project"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Show-user-manual"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Project-information"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Configure-your-project"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1227
734
  <h3 class="title">
1228
735
  3.3.3&nbsp;&nbsp;Configure your project
1229
736
  </h3>
1230
- <div class="content"><p><a class="xref" href="#Ruby-library-interface">Section 3.2. &#8220;Ruby library interface&#8221;</a> lists and documents the interactions between your project and <strong>Inochi</strong>. These points of interaction are illustrated in the following sections.</p>
737
+ <div class="content"><p><a class="xref" href="#Ruby-library-interface" title="Section 3.2">Ruby library interface</a> lists and documents the interactions between your project and Inochi. These points of interaction are illustrated in the following sections.</p>
1231
738
 
1232
- <p><div class="section">
1233
- <a name="Project-information"/><div class="nav" id="Project-information"><a title="Reverse jump to listing" href="#rev:Project-information">&equiv;</a><a title="Jump to previous segment" href="#Configure-your-project">&#x25B3;</a><a title="Jump to next segment" href="#Project-executable">&#x25BD;</a><a title="Jump to this segment" href="#Project-information">&#x25CE;</a></div>
739
+ <div class="section">
740
+ <a name="Project-information"/><div class="nav" id="Project-information"><a title="Focus this segment" href="#Project-information"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Configure-your-project"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Project-executable"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Project-information"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1234
741
  <h4 class="title">
1235
742
  3.3.3.1&nbsp;&nbsp;Project information
1236
743
  </h4>
1237
744
  <div class="content"><p>Open the <tt>LICENSE</tt> file, which contains the open source <a href='http://www.opensource.org/licenses/isc-license.txt'>ISC license</a> by default, and add a copyright notice with your name and (optional) email address:</p>
1238
745
 
1239
- <p><pre>(the ISC license)
746
+ <pre>(the ISC license)
1240
747
 
1241
748
  Copyright 2009 Your Name &lt;your@email.here&gt;
1242
749
 
@@ -1251,98 +758,98 @@ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1251
758
  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1252
759
  ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1253
760
  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1254
- </pre></p>
761
+ </pre><p></p>
1255
762
 
1256
763
  <p>Open the main project library file <tt>lib/word_count.rb</tt> and fill in the blanks:</p>
1257
764
 
1258
- <p><pre class="code">require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">rubygems</span><span style="color:#710">'</span></span>
1259
- gem <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">inochi</span><span style="color:#710">'</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">~&gt; 0</span><span style="color:#710">'</span></span>
765
+ <p><ins><pre class="para">require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">rubygems</span><span style="color:#710">'</span></span>
766
+ gem <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">inochi</span><span style="color:#710">'</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">~&gt; 1</span><span style="color:#710">'</span></span>
1260
767
  require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">inochi</span><span style="color:#710">'</span></span>
1261
768
 
1262
769
  <span style="color:#036;font-weight:bold">Inochi</span>.init <span style="color:#A60">:WordCount</span>,
1263
770
  <span style="color:#A60">:project</span> =&gt; <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">WordCount</span><span style="color:#710">'</span></span>,
1264
771
  <span style="color:#A60">:version</span> =&gt; <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">0.0.0</span><span style="color:#710">'</span></span>,
1265
- <span style="color:#A60">:release</span> =&gt; <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">2009-02-12</span><span style="color:#710">'</span></span>,
772
+ <span style="color:#A60">:release</span> =&gt; <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">2009-05-04</span><span style="color:#710">'</span></span>,
1266
773
  <span style="color:#A60">:website</span> =&gt; <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">http://word_count.rubyforge.org</span><span style="color:#710">'</span></span>,
1267
- <span style="color:#A60">:tagline</span> =&gt; <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">TODO: put a single line description of your project here.</span><span style="color:#710">'</span></span>,
774
+ <span style="color:#A60">:tagline</span> =&gt; <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">put a single line description of your project here</span><span style="color:#710">'</span></span>,
1268
775
  <span style="color:#A60">:require</span> =&gt; {
1269
- <span style="color:#666"># TODO: list gems required by your project here.</span>
1270
- <span style="color:#666"># NOTE: this is completely optional!</span>
1271
- <span style="color:#666">#</span>
1272
- <span style="color:#666"># example: if your project needs version 9.9.9 of the 'foo' gem:</span>
1273
- <span style="color:#666"># 'foo' =&gt; '9.9.9',</span>
1274
- <span style="color:#666">#</span>
1275
- <span style="color:#666"># example: if any version of a gem is acceptable then:</span>
1276
- <span style="color:#666"># 'foo' =&gt; nil,</span>
1277
- }
1278
-
1279
- </pre></p></div>
1280
- </div> <div class="section">
1281
- <a name="Project-executable"/><div class="nav" id="Project-executable"><a title="Reverse jump to listing" href="#rev:Project-executable">&equiv;</a><a title="Jump to previous segment" href="#Project-information">&#x25B3;</a><a title="Jump to next segment" href="#Rake-tasks">&#x25BD;</a><a title="Jump to this segment" href="#Project-executable">&#x25CE;</a></div>
776
+ <span style="color:#888"># TODO: list gems required by your project here.</span>
777
+ <span style="color:#888"># NOTE: this is completely optional!</span>
778
+ <span style="color:#888">#</span>
779
+ <span style="color:#888"># example: if your project needs version 9.9.9 of the 'foo' gem:</span>
780
+ <span style="color:#888"># 'foo' =&gt; '9.9.9',</span>
781
+ <span style="color:#888">#</span>
782
+ <span style="color:#888"># example: if any version of a gem is acceptable then:</span>
783
+ <span style="color:#888"># 'foo' =&gt; nil,</span>
784
+ }
785
+
786
+ </pre></ins></p></div>
787
+ </div><div class="section">
788
+ <a name="Project-executable"/><div class="nav" id="Project-executable"><a title="Focus this segment" href="#Project-executable"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Project-information"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Rake-tasks"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Project-executable"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1282
789
  <h4 class="title">
1283
790
  3.3.3.2&nbsp;&nbsp;Project executable
1284
791
  </h4>
1285
792
  <div class="content"><p>Open the <tt>bin/word_count</tt> file and fill in the blanks:</p>
1286
793
 
1287
- <p><pre class="code"><span style="color:#666">#!/usr/bin/ruby -w</span>
1288
- <span style="color:#666">#</span>
1289
- <span style="color:#666"># TODO: Explain the command-line usage of this program here.</span>
1290
- <span style="color:#666">#</span>
1291
- <span style="color:#666">#</span>
1292
- <span style="color:#666"># Usage:</span>
1293
- <span style="color:#666">#</span>
1294
- <span style="color:#666"># word_count [Options] Param1 Param2 Param3...</span>
1295
- <span style="color:#666">#</span>
1296
- <span style="color:#666">#</span>
1297
- <span style="color:#666"># Param1: Description for the first parameter.</span>
1298
- <span style="color:#666">#</span>
1299
- <span style="color:#666"># Param2: Description for the second parameter.</span>
1300
- <span style="color:#666">#</span>
1301
- <span style="color:#666"># Param3: Description for the third parameter.</span>
1302
- <span style="color:#666">#</span>
1303
- <span style="color:#666">#</span>
1304
- <span style="color:#666"># Options:</span>
1305
- <span style="color:#666">#</span>
794
+ <p><ins><pre class="para"><span style="color:#34b">#!/usr/bin/ruby -w</span>
795
+ <span style="color:#888">#</span>
796
+ <span style="color:#888"># TODO: Explain the command-line usage of this program here.</span>
797
+ <span style="color:#888">#</span>
798
+ <span style="color:#888">#</span>
799
+ <span style="color:#888"># Usage:</span>
800
+ <span style="color:#888">#</span>
801
+ <span style="color:#888"># word_count [Options] Param1 Param2 Param3...</span>
802
+ <span style="color:#888">#</span>
803
+ <span style="color:#888">#</span>
804
+ <span style="color:#888"># Param1: Description for the first parameter.</span>
805
+ <span style="color:#888">#</span>
806
+ <span style="color:#888"># Param2: Description for the second parameter.</span>
807
+ <span style="color:#888">#</span>
808
+ <span style="color:#888"># Param3: Description for the third parameter.</span>
809
+ <span style="color:#888">#</span>
810
+ <span style="color:#888">#</span>
811
+ <span style="color:#888"># Options:</span>
812
+ <span style="color:#888">#</span>
1306
813
 
1307
814
  require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">rubygems</span><span style="color:#710">'</span></span>
1308
- gem <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">inochi</span><span style="color:#710">'</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">~&gt; 0</span><span style="color:#710">'</span></span>
815
+ gem <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">inochi</span><span style="color:#710">'</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">~&gt; 1</span><span style="color:#710">'</span></span>
1309
816
  require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">inochi</span><span style="color:#710">'</span></span>
1310
817
 
1311
818
  options = <span style="color:#036;font-weight:bold">Inochi</span>.main <span style="color:#A60">:WordCount</span> <span style="color:#080;font-weight:bold">do</span>
1312
- <span style="color:#666"># TODO: define command-line options here.</span>
1313
- <span style="color:#666"># see http://trollop.rubyforge.org/</span>
1314
- <span style="color:#666">#</span>
1315
- <span style="color:#666"># NOTE: this is completely optional!</span>
819
+ <span style="color:#888"># TODO: define command-line options here.</span>
820
+ <span style="color:#888"># see http://trollop.rubyforge.org/</span>
821
+ <span style="color:#888">#</span>
822
+ <span style="color:#888"># NOTE: this is completely optional!</span>
1316
823
  <span style="color:#080;font-weight:bold">end</span>
1317
824
 
1318
- <span style="color:#666"># TODO: add the body of your program here</span>
825
+ <span style="color:#888"># TODO: add the body of your program here</span>
1319
826
 
1320
- puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Command-line options: </span><span style="background:#eee"><span style="font-weight:bold;color:#888">#{</span>options.inspect<span style="font-weight:bold;color:#888">}</span></span><span style="color:#710">&quot;</span></span>
1321
- puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Command-line arguments: </span><span style="background:#eee"><span style="font-weight:bold;color:#888">#{</span><span style="color:#038;font-weight:bold">ARGV</span>.inspect<span style="font-weight:bold;color:#888">}</span></span><span style="color:#710">&quot;</span></span>
827
+ puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Command-line options: </span><span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">#{</span>options.inspect<span style="font-weight:bold;color:#777">}</span></span><span style="color:#710">&quot;</span></span>
828
+ puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Command-line arguments: </span><span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">#{</span><span style="color:#038;font-weight:bold">ARGV</span>.inspect<span style="font-weight:bold;color:#777">}</span></span><span style="color:#710">&quot;</span></span>
1322
829
 
1323
- </pre></p></div>
1324
- </div> <div class="section">
1325
- <a name="Rake-tasks"/><div class="nav" id="Rake-tasks"><a title="Reverse jump to listing" href="#rev:Rake-tasks">&equiv;</a><a title="Jump to previous segment" href="#Project-executable">&#x25B3;</a><a title="Jump to next segment" href="#User-manual">&#x25BD;</a><a title="Jump to this segment" href="#Rake-tasks">&#x25CE;</a></div>
830
+ </pre></ins></p></div>
831
+ </div><div class="section">
832
+ <a name="Rake-tasks"/><div class="nav" id="Rake-tasks"><a title="Focus this segment" href="#Rake-tasks"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Project-executable"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#User-manual"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Rake-tasks"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1326
833
  <h4 class="title">
1327
834
  3.3.3.3&nbsp;&nbsp;Rake tasks
1328
835
  </h4>
1329
- <div class="content"><p>Open the <tt>Rakefile</tt> and fill in the blanks:</p>
836
+ <div class="content"><p>Open the <tt>rakefile</tt> and fill in the blanks:</p>
1330
837
 
1331
- <p><pre class="code">require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">rubygems</span><span style="color:#710">'</span></span>
1332
- gem <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">inochi</span><span style="color:#710">'</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">~&gt; 0</span><span style="color:#710">'</span></span>
838
+ <p><ins><pre class="para">require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">rubygems</span><span style="color:#710">'</span></span>
839
+ gem <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">inochi</span><span style="color:#710">'</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">~&gt; 1</span><span style="color:#710">'</span></span>
1333
840
  require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">inochi</span><span style="color:#710">'</span></span>
1334
841
 
1335
842
  <span style="color:#036;font-weight:bold">Inochi</span>.rake <span style="color:#A60">:WordCount</span> <span style="color:#080;font-weight:bold">do</span> |gem|
1336
- <span style="color:#666"># TODO: additional gem configuration.</span>
1337
- <span style="color:#666"># NOTE: this is completely optional!</span>
1338
- <span style="color:#666">#</span>
1339
- <span style="color:#666"># gem.extensions = ['foo.so']</span>
1340
- <span style="color:#666"># gem.files += ['other', 'files']</span>
843
+ <span style="color:#888"># TODO: additional gem configuration.</span>
844
+ <span style="color:#888"># NOTE: this is completely optional!</span>
845
+ <span style="color:#888">#</span>
846
+ <span style="color:#888"># gem.extensions = ['foo.so']</span>
847
+ <span style="color:#888"># gem.files += ['other', 'files']</span>
1341
848
  <span style="color:#080;font-weight:bold">end</span>
1342
849
 
1343
- </pre></p></div>
1344
- </div> <div class="section">
1345
- <a name="User-manual"/><div class="nav" id="User-manual"><a title="Reverse jump to listing" href="#rev:User-manual">&equiv;</a><a title="Jump to previous segment" href="#Rake-tasks">&#x25B3;</a><a title="Jump to next segment" href="#doc-index.erb">&#x25BD;</a><a title="Jump to this segment" href="#User-manual">&#x25CE;</a></div>
850
+ </pre></ins></p></div>
851
+ </div><div class="section">
852
+ <a name="User-manual"/><div class="nav" id="User-manual"><a title="Focus this segment" href="#User-manual"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Rake-tasks"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#doc-index.erb"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:User-manual"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1346
853
  <h4 class="title">
1347
854
  3.3.3.4&nbsp;&nbsp;User manual
1348
855
  </h4>
@@ -1350,55 +857,58 @@ require <span style="background-color:#fff0f0;color:#D20"><span style="color:#71
1350
857
 
1351
858
  <p>Open these source files and fill in the blanks:</p>
1352
859
 
1353
- <p><div class="paragraph">
1354
- <a name="doc-index.erb"/><div class="nav" id="doc-index.erb"><a title="Reverse jump to listing" href="#rev:doc-index.erb">&equiv;</a><a title="Jump to previous segment" href="#User-manual">&#x25B3;</a><a title="Jump to next segment" href="#doc-intro.erb">&#x25BD;</a><a title="Jump to this segment" href="#doc-index.erb">&#x25CE;</a></div>
860
+ <div class="paragraph">
861
+ <a name="doc-index.erb"/><div class="nav" id="doc-index.erb"><a title="Focus this segment" href="#doc-index.erb"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#User-manual"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#doc-intro.erb"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:doc-index.erb"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1355
862
  <p class="title"><tt>doc/index.erb</tt></p>
1356
- <div class="content"><p><pre class="code" lang="rhtml"><span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#036;font-weight:bold">Inochi</span>.book <span style="color:#A60">:WordCount</span>, <span style="color:#038;font-weight:bold">self</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1357
-
1358
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span><span style="color:#666"># include intro.erb #</span><span style="font-weight:bold;color:#888">%&gt;</span></span>
1359
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span><span style="color:#666"># include setup.erb #</span><span style="font-weight:bold;color:#888">%&gt;</span></span>
1360
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span><span style="color:#666"># include theory.erb #</span><span style="font-weight:bold;color:#888">%&gt;</span></span>
1361
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span><span style="color:#666"># include usage.erb #</span><span style="font-weight:bold;color:#888">%&gt;</span></span>
1362
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span><span style="color:#666"># include history.erb #</span><span style="font-weight:bold;color:#888">%&gt;</span></span>
1363
- </pre></p></div>
863
+ <div class="content"><p><ins><pre class="para" lang="rhtml">% Inochi.book :WordCount, self
864
+
865
+ %+ &quot;intro.erb&quot;
866
+ %+ &quot;setup.erb&quot;
867
+ %+ &quot;theory.erb&quot;
868
+ %+ &quot;usage.erb&quot;
869
+ %+ &quot;history.erb&quot;
870
+ </pre></ins></p></div>
1364
871
  </div><div class="paragraph">
1365
- <a name="doc-intro.erb"/><div class="nav" id="doc-intro.erb"><a title="Reverse jump to listing" href="#rev:doc-intro.erb">&equiv;</a><a title="Jump to previous segment" href="#doc-index.erb">&#x25B3;</a><a title="Jump to next segment" href="#doc-setup.erb">&#x25BD;</a><a title="Jump to this segment" href="#doc-intro.erb">&#x25CE;</a></div>
872
+ <a name="doc-intro.erb"/><div class="nav" id="doc-intro.erb"><a title="Focus this segment" href="#doc-intro.erb"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#doc-index.erb"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#doc-setup.erb"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:doc-intro.erb"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1366
873
  <p class="title"><tt>doc/intro.erb</tt></p>
1367
- <div class="content"><p><pre class="code" lang="rhtml"><span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> chapter <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Introduction</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1368
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> project_summary <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
874
+ <div class="content"><p><ins><pre class="para" lang="rhtml">% api_url = './api/index.html'
875
+ % repo_url = 'http://github.com/__________/' + $program
876
+ % repo_scm = '[Git](http://git-scm.com)'
877
+
878
+ %|chapter &quot;Introduction&quot;
879
+ %|project
1369
880
  <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: explain the purpose of your project
1370
881
 
1371
- **<span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>** is a __________ that __________.
1372
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
882
+ <span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#777">%&gt;</span></span> is a __________ that __________.
1373
883
 
1374
- <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: explain why your project is important
884
+ <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: explain why your project is important
1375
885
 
1376
- **<span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>** is exciting because:
1377
- * It lets you __________.
1378
- * Its core contains less than __________ lines of code.
1379
- * It __________.
886
+ <span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#777">%&gt;</span></span> is exciting because:
887
+ * It lets you __________.
888
+ * Its core contains less than __________ lines of code.
889
+ * It __________.
1380
890
 
1381
- <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: explain why your project is better than its competitors
891
+ <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: explain why your project is better than its competitors
1382
892
 
1383
- These features distinguish **<span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>** from the competition:
1384
- * [competitor 1](http://)
1385
- * [competitor 2](http://)
1386
- * [competitor 3](http://)
893
+ These features distinguish <span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#777">%&gt;</span></span> from the competition:
894
+ * [competitor 1](http://)
895
+ * [competitor 2](http://)
896
+ * [competitor 3](http://)
1387
897
 
1388
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> paragraph <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Etymology</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
898
+ %|paragraph &quot;Etymology&quot;
1389
899
  <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: explain the meaning of the name of your project
1390
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1391
900
 
1392
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Logistics</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1393
- * <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> xref <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">History</span><span style="color:#710">&quot;</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Release notes</span><span style="color:#710">&quot;</span></span> <span style="font-weight:bold;color:#888">%&gt;</span></span> --- history of project releases.
1394
- * [Source code](http://github.com/sun/<span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>) --- obtain via [Git](http://git.or.cz) or browse online.
1395
- * [API reference](api/index.html) --- documentation for source code.
901
+ %|section &quot;Logistics&quot;
902
+ * <span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> xref <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">History</span><span style="color:#710">&quot;</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Release notes</span><span style="color:#710">&quot;</span></span> <span style="font-weight:bold;color:#777">%&gt;</span></span> --- history of project releases.
903
+ * [Source code](<span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> repo_url <span style="font-weight:bold;color:#777">%&gt;</span></span>) --- obtain via <span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> repo_scm <span style="font-weight:bold;color:#777">%&gt;</span></span> or browse online.
904
+ * [API reference](<span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> api_url <span style="font-weight:bold;color:#777">%&gt;</span></span>) --- documentation for source code.
905
+ * [Project home](<span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> <span style="color:#d70;font-weight:bold">$website</span> <span style="font-weight:bold;color:#777">%&gt;</span></span>) --- the <span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#777">%&gt;</span></span> project home page.
1396
906
 
1397
907
  To get help or provide feedback, simply
1398
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> xref <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">License</span><span style="color:#710">&quot;</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">contact the author(s)</span><span style="color:#710">&quot;</span></span> <span style="font-weight:bold;color:#888">%&gt;</span></span>.
908
+ <span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> xref <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">License</span><span style="color:#710">&quot;</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">contact the author(s)</span><span style="color:#710">&quot;</span></span> <span style="font-weight:bold;color:#777">%&gt;</span></span>.
1399
909
 
1400
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> paragraph <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Version numbers</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1401
- **<span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>** releases are numbered in *major.minor.patch*
910
+ %|paragraph &quot;Version numbers&quot;
911
+ <span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#777">%&gt;</span></span> releases are numbered in *major.minor.patch*
1402
912
  form according to the [RubyGems rational versioning
1403
913
  policy](http://www.rubygems.org/read/chapter/7), which
1404
914
  can be summarized thus:
@@ -1436,73 +946,64 @@ require <span style="background-color:#fff0f0;color:#D20"><span style="color:#71
1436
946
  <span style="color:#070">&lt;/tr&gt;</span>
1437
947
  <span style="color:#070">&lt;/tbody&gt;</span>
1438
948
  <span style="color:#070">&lt;/table&gt;</span>
1439
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1440
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1441
949
 
1442
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">License</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1443
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span><span style="color:#666"># include ../LICENSE #</span><span style="font-weight:bold;color:#888">%&gt;</span></span>
1444
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
950
+ %|paragraph &quot;License&quot;
951
+ %<span style="color:#F00;background-color:#FAA">&lt;</span> &quot;../LICENSE&quot;
1445
952
 
1446
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Credits</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
953
+ %|section &quot;Credits&quot;
1447
954
  <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: give attribution to your predecessors and contributors
1448
955
 
1449
- **<span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>** is made possible by
1450
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> xref <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">History</span><span style="color:#710">&quot;</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">contributions</span><span style="color:#710">&quot;</span></span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
956
+ <span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#777">%&gt;</span></span> is made possible by
957
+ <span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> xref <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">History</span><span style="color:#710">&quot;</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">contributions</span><span style="color:#710">&quot;</span></span> <span style="font-weight:bold;color:#777">%&gt;</span></span>
1451
958
  from users like you:
1452
959
 
1453
- * __________ (contributor name)
1454
- * __________ (contributor name)
1455
- * __________ (contributor name)
1456
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1457
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1458
- </pre></p></div>
960
+ %<span style="color:#F00;background-color:#FAA">&lt;</span> &quot;../CREDITS&quot;
961
+ </pre></ins></p></div>
1459
962
  </div><div class="paragraph">
1460
- <a name="doc-setup.erb"/><div class="nav" id="doc-setup.erb"><a title="Reverse jump to listing" href="#rev:doc-setup.erb">&equiv;</a><a title="Jump to previous segment" href="#doc-intro.erb">&#x25B3;</a><a title="Jump to next segment" href="#doc-theory.erb">&#x25BD;</a><a title="Jump to this segment" href="#doc-setup.erb">&#x25CE;</a></div>
963
+ <a name="doc-setup.erb"/><div class="nav" id="doc-setup.erb"><a title="Focus this segment" href="#doc-setup.erb"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#doc-intro.erb"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#doc-theory.erb"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:doc-setup.erb"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1461
964
  <p class="title"><tt>doc/setup.erb</tt></p>
1462
- <div class="content"><p><pre class="code" lang="rhtml"><span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> chapter <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Setup</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1463
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Requirements</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1464
- Your system needs the following software to run **<span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>**.
965
+ <div class="content"><p><ins><pre class="para" lang="rhtml">%|chapter &quot;Setup&quot;
966
+ %|section &quot;Requirements&quot;
967
+ Your system needs the following software to run <span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#777">%&gt;</span></span>.
1465
968
 
1466
969
  | Software | Description | Notes |
1467
970
  | -------- | ----------- | ----- |
1468
- | [Ruby](http://ruby-lang.org) | Ruby language interpreter | Version 1.8.7 is required. |
1469
- | [RubyGems](http://rubygems.org) | Ruby packaging system | Version 1.3.1 is required. |
1470
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
971
+ | [Ruby](http://ruby-lang.org) | Ruby language interpreter | Version 1.8.7 has been tested successfully. |
972
+ | [RubyGems](http://rubygems.org) | Ruby packaging system | Version 1.3.2 or newer is required. |
1471
973
 
1472
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Installation</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1473
- You can install **<span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>** by running this command:
974
+ %|section &quot;Installation&quot;
975
+ You can install <span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#777">%&gt;</span></span> by running this command:
1474
976
 
1475
- gem install -f <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
977
+ gem install <span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#777">%&gt;</span></span>
1476
978
 
1477
979
  To check whether the installation was sucessful, run this command:
1478
980
 
1479
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#888">%&gt;</span></span> --version
981
+ <span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#777">%&gt;</span></span> --version
1480
982
 
1481
983
  If the installation was successful, you will see output like this:
1482
984
 
1483
- <span style="color:#070">&lt;pre&gt;</span><span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> verbatim <span style="background-color:#f0fff0;color:#2B2"><span style="color:#161">`</span><span style="">ruby bin/</span><span style="background:#eee"><span style="font-weight:bold;color:#888">#{</span><span style="color:#d70;font-weight:bold">$program</span><span style="font-weight:bold;color:#888">}</span></span><span style=""> --version</span><span style="color:#161">`</span></span> <span style="font-weight:bold;color:#888">%&gt;</span></span><span style="color:#070">&lt;/pre&gt;</span>
985
+ <span style="color:#070">&lt;pre&gt;</span><span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> verbatim <span style="background-color:#f0fff0;color:#2B2"><span style="color:#161">`</span><span style="">ruby bin/</span><span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">#{</span><span style="color:#d70;font-weight:bold">$program</span><span style="font-weight:bold;color:#777">}</span></span><span style=""> --version</span><span style="color:#161">`</span></span> <span style="font-weight:bold;color:#777">%&gt;</span></span><span style="color:#070">&lt;/pre&gt;</span>
1484
986
 
1485
987
  If you do not see such output, you may
1486
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> xref <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">License</span><span style="color:#710">&quot;</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">ask the author(s)</span><span style="color:#710">&quot;</span></span> <span style="font-weight:bold;color:#888">%&gt;</span></span> for help.
1487
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
988
+ <span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> xref <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">License</span><span style="color:#710">&quot;</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">ask the author(s)</span><span style="color:#710">&quot;</span></span> <span style="font-weight:bold;color:#777">%&gt;</span></span> for help.
1488
989
 
1489
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Manifest</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1490
- You will see the following items inside **<span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>**'s installation
990
+ %|section &quot;Manifest&quot;
991
+ You will see the following items inside <span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#777">%&gt;</span></span>'s installation
1491
992
  directory, whose path you can determine by running this command:
1492
993
 
1493
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#888">%&gt;</span></span> --version
994
+ <span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#777">%&gt;</span></span> --version
1494
995
 
1495
996
  <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: list important files your project provides here
1496
997
 
1497
998
  * <span style="color:#070">&lt;tt&gt;</span>bin/<span style="color:#070">&lt;/tt&gt;</span>
1498
999
 
1499
- * <span style="color:#070">&lt;tt&gt;</span><span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#888">%&gt;</span></span><span style="color:#070">&lt;/tt&gt;</span> --- the main **<span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>** executable.
1000
+ * <span style="color:#070">&lt;tt&gt;</span><span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#777">%&gt;</span></span><span style="color:#070">&lt;/tt&gt;</span> --- the main <span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#777">%&gt;</span></span> executable.
1500
1001
 
1501
1002
  * <span style="color:#070">&lt;tt&gt;</span>lib/<span style="color:#070">&lt;/tt&gt;</span>
1502
1003
 
1503
- * <span style="color:#070">&lt;tt&gt;</span><span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>.rb<span style="color:#070">&lt;/tt&gt;</span> --- the main **<span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>** library.
1004
+ * <span style="color:#070">&lt;tt&gt;</span><span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#777">%&gt;</span></span>.rb<span style="color:#070">&lt;/tt&gt;</span> --- the main <span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#777">%&gt;</span></span> library.
1504
1005
 
1505
- * <span style="color:#070">&lt;tt&gt;</span><span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>/<span style="color:#070">&lt;/tt&gt;</span>
1006
+ * <span style="color:#070">&lt;tt&gt;</span><span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#777">%&gt;</span></span>/<span style="color:#070">&lt;/tt&gt;</span>
1506
1007
 
1507
1008
  <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: list sub-libraries your project provides here
1508
1009
 
@@ -1515,132 +1016,129 @@ require <span style="background-color:#fff0f0;color:#D20"><span style="color:#71
1515
1016
  * <span style="color:#070">&lt;tt&gt;</span>lang/<span style="color:#070">&lt;/tt&gt;</span> --- translations of language phrases.
1516
1017
 
1517
1018
  * <span style="color:#070">&lt;tt&gt;</span>LICENSE<span style="color:#070">&lt;/tt&gt;</span> --- copyright notice and legal conditions.
1518
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1519
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1520
- </pre></p></div>
1019
+
1020
+ * <span style="color:#070">&lt;tt&gt;</span>CREDITS<span style="color:#070">&lt;/tt&gt;</span> --- attribution of project contributors.
1021
+ </pre></ins></p></div>
1521
1022
  </div><div class="paragraph">
1522
- <a name="doc-theory.erb"/><div class="nav" id="doc-theory.erb"><a title="Reverse jump to listing" href="#rev:doc-theory.erb">&equiv;</a><a title="Jump to previous segment" href="#doc-setup.erb">&#x25B3;</a><a title="Jump to next segment" href="#doc-usage.erb">&#x25BD;</a><a title="Jump to this segment" href="#doc-theory.erb">&#x25CE;</a></div>
1023
+ <a name="doc-theory.erb"/><div class="nav" id="doc-theory.erb"><a title="Focus this segment" href="#doc-theory.erb"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#doc-setup.erb"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#doc-usage.erb"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:doc-theory.erb"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1523
1024
  <p class="title"><tt>doc/theory.erb</tt></p>
1524
- <div class="content"><p><pre class="code" lang="rhtml"><span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> chapter <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Theory of operation</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1025
+ <div class="content"><p><ins><pre class="para" lang="rhtml">%|chapter &quot;Theory of operation&quot;
1525
1026
  <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: explain how your project does what it does
1526
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1527
- </pre></p></div>
1027
+ </pre></ins></p></div>
1528
1028
  </div><div class="paragraph">
1529
- <a name="doc-usage.erb"/><div class="nav" id="doc-usage.erb"><a title="Reverse jump to listing" href="#rev:doc-usage.erb">&equiv;</a><a title="Jump to previous segment" href="#doc-theory.erb">&#x25B3;</a><a title="Jump to next segment" href="#doc-history.erb">&#x25BD;</a><a title="Jump to this segment" href="#doc-usage.erb">&#x25CE;</a></div>
1029
+ <a name="doc-usage.erb"/><div class="nav" id="doc-usage.erb"><a title="Focus this segment" href="#doc-usage.erb"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#doc-theory.erb"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#doc-history.erb"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:doc-usage.erb"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1530
1030
  <p class="title"><tt>doc/usage.erb</tt></p>
1531
- <div class="content"><p><pre class="code" lang="rhtml"><span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> chapter <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Usage</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1532
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Command-line interface</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1031
+ <div class="content"><p><ins><pre class="para" lang="rhtml">%|chapter &quot;Usage&quot;
1032
+ %|section &quot;Command-line interface&quot;
1533
1033
  When you run this command:
1534
1034
 
1535
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#888">%&gt;</span></span> --help
1035
+ <span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> <span style="color:#d70;font-weight:bold">$program</span> <span style="font-weight:bold;color:#777">%&gt;</span></span> --help
1536
1036
 
1537
1037
  You will see this output:
1538
1038
 
1539
- <span style="color:#070">&lt;pre&gt;</span><span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> verbatim <span style="background-color:#f0fff0;color:#2B2"><span style="color:#161">`</span><span style="">ruby bin/</span><span style="background:#eee"><span style="font-weight:bold;color:#888">#{</span><span style="color:#d70;font-weight:bold">$program_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">%&gt;</span></span><span style="color:#070">&lt;/pre&gt;</span>
1039
+ <span style="color:#070">&lt;pre&gt;</span><span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> verbatim <span style="background-color:#f0fff0;color:#2B2"><span style="color:#161">`</span><span style="">ruby bin/</span><span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">#{</span><span style="color:#d70;font-weight:bold">$program</span><span style="font-weight:bold;color:#777">}</span></span><span style=""> --help</span><span style="color:#161">`</span></span> <span style="font-weight:bold;color:#777">%&gt;</span></span><span style="color:#070">&lt;/pre&gt;</span>
1540
1040
 
1541
1041
  <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: explain the command-line arguments
1542
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1543
1042
 
1544
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Ruby library interface</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1043
+ %|section &quot;Ruby library interface&quot;
1545
1044
  <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: explain how to use your project's Ruby library
1546
1045
  <span style="color:#F00;background-color:#FAA">&gt;</span> from inside another Ruby program or library
1547
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1548
1046
 
1549
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Tutorial</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1550
- This tutorial shows how **<span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>** is used to __________.
1047
+ %|section &quot;Tutorial&quot;
1048
+ This tutorial shows how <span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">&lt;%=</span> <span style="color:#d70;font-weight:bold">$project</span> <span style="font-weight:bold;color:#777">%&gt;</span></span> is used to __________.
1551
1049
 
1552
1050
  <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: give examples for doing common tasks
1553
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1554
1051
 
1555
1052
  <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: explain how to do more (advanced) things
1556
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1557
- </pre></p></div>
1053
+ </pre></ins></p></div>
1558
1054
  </div><div class="paragraph">
1559
- <a name="doc-history.erb"/><div class="nav" id="doc-history.erb"><a title="Reverse jump to listing" href="#rev:doc-history.erb">&equiv;</a><a title="Jump to previous segment" href="#doc-usage.erb">&#x25B3;</a><a title="Jump to next segment" href="#Implement-your-project">&#x25BD;</a><a title="Jump to this segment" href="#doc-history.erb">&#x25CE;</a></div>
1055
+ <a name="doc-history.erb"/><div class="nav" id="doc-history.erb"><a title="Focus this segment" href="#doc-history.erb"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#doc-usage.erb"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Implement-your-project"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:doc-history.erb"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1560
1056
  <p class="title"><tt>doc/history.erb</tt></p>
1561
- <div class="content"><p><pre class="code" lang="rhtml"><span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> chapter <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">History</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1057
+ <div class="content"><p><ins><pre class="para" lang="rhtml">%|chapter &quot;History&quot;
1562
1058
  <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: put a brief history about your project here
1563
1059
 
1564
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> project_history <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1060
+ %|history
1565
1061
  <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: put release notes for your project
1566
1062
  <span style="color:#F00;background-color:#FAA">&gt;</span> here -- newest first, oldest last.
1567
1063
 
1568
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> section <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Version 0.0.0 (2009-02-12)</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1064
+ %|section &quot;Version 0.0.0 (2009-05-04)&quot;
1569
1065
  <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: write a short summary of the changes in this release
1570
1066
 
1571
1067
  This release changes __________, adds __________, and fixes __________.
1572
1068
 
1573
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> paragraph <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Incompatible changes</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1069
+ %|paragraph &quot;Thank you&quot;
1070
+ <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: list everyone who contributed to this release
1071
+
1072
+ * __________ contributed __________
1073
+
1074
+ * __________ suggested __________
1075
+
1076
+ * __________ helped to __________
1077
+
1078
+ %|paragraph &quot;Incompatible changes&quot;
1574
1079
  <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: list all backward-incompatible changes in this release
1575
1080
 
1576
- * __________ has been __________ to __________. (contributor name)
1081
+ * __________ has been __________ to __________ ---contributor name
1577
1082
 
1578
- * __________. (contributor name)
1083
+ * __________ ---contributor name
1579
1084
 
1580
- * __________. (contributor name)
1581
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1085
+ * __________ ---contributor name
1582
1086
 
1583
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> paragraph <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">New features</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1087
+ %|paragraph &quot;New features&quot;
1584
1088
  <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: list new features added in this release
1585
1089
 
1586
- * __________. (contributor name)
1090
+ * __________ ---contributor name
1587
1091
 
1588
- * __________. (contributor name)
1092
+ * __________ ---contributor name
1589
1093
 
1590
- * __________. (contributor name)
1591
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1094
+ * __________ ---contributor name
1592
1095
 
1593
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> paragraph <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Bug fixes</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1096
+ %|paragraph &quot;Bug fixes&quot;
1594
1097
  <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: describe all bugs that are fixed in this release
1595
1098
 
1596
- * __________ was __________. (contributor name)
1099
+ * __________ was __________ ---contributor name
1597
1100
 
1598
- * __________ were __________. (contributor name)
1101
+ * __________ were __________ ---contributor name
1599
1102
 
1600
- * __________ did __________. (contributor name)
1601
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1103
+ * __________ did __________ ---contributor name
1602
1104
 
1603
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> paragraph <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Housekeeping</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1105
+ %|paragraph &quot;Housekeeping&quot;
1604
1106
  <span style="color:#F00;background-color:#FAA">&gt;</span> TODO: list the refactorings, clean ups, and other
1605
1107
  <span style="color:#F00;background-color:#FAA">&gt;</span> improvements that were done for this release
1606
1108
 
1607
- * __________. (contributor name)
1109
+ * __________ ---contributor name
1608
1110
 
1609
- * __________. (contributor name)
1111
+ * __________ ---contributor name
1610
1112
 
1611
- * __________. (contributor name)
1612
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1613
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1614
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1615
- <span style="background:#eee"><span style="font-weight:bold;color:#888">&lt;%</span> <span style="color:#080;font-weight:bold">end</span> <span style="font-weight:bold;color:#888">%&gt;</span></span>
1616
- </pre></p></div>
1617
- </div></p></div>
1618
- </div></p></div>
1619
- </div> <div class="section">
1620
- <a name="Implement-your-project"/><div class="nav" id="Implement-your-project"><a title="Reverse jump to listing" href="#rev:Implement-your-project">&equiv;</a><a title="Jump to previous segment" href="#doc-history.erb">&#x25B3;</a><a title="Jump to next segment" href="#Goodbye-LOAD_PATH-hello-require">&#x25BD;</a><a title="Jump to this segment" href="#Implement-your-project">&#x25CE;</a></div>
1113
+ * __________ ---contributor name
1114
+ </pre></ins></p></div>
1115
+ </div><p> </p></div>
1116
+ </div><p> </p></div>
1117
+ </div><div class="section">
1118
+ <a name="Implement-your-project"/><div class="nav" id="Implement-your-project"><a title="Focus this segment" href="#Implement-your-project"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#doc-history.erb"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Goodbye-LOAD_PATH-hello-require"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Implement-your-project"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1621
1119
  <h3 class="title">
1622
1120
  3.3.4&nbsp;&nbsp;Implement your project
1623
1121
  </h3>
1624
1122
  <div class="content"><p>Add the following code to the bottom of <tt>lib/word_count.rb</tt>, the main project library:</p>
1625
1123
 
1626
- <p><pre class="code"><span style="color:#080;font-weight:bold">module</span> <span style="color:#B06;font-weight:bold">WordCount</span>
1627
- <span style="color:#666"># Returns the number of words in the given input.</span>
1124
+ <p><ins><pre class="para"><span style="color:#080;font-weight:bold">module</span> <span style="color:#B06;font-weight:bold">WordCount</span>
1125
+ <span style="color:#888"># Returns the number of words in the given input.</span>
1628
1126
  <span style="color:#080;font-weight:bold">def</span> <span style="color:#036;font-weight:bold">WordCount</span>.count input
1629
1127
  input.to_s.split(<span style="background-color:#fff0ff"><span style="color:#404">/</span><span style="color:#04D">\W</span><span style="color:#808">+</span><span style="color:#404">/</span></span>).length
1630
1128
  <span style="color:#080;font-weight:bold">end</span>
1631
1129
  <span style="color:#080;font-weight:bold">end</span>
1632
- </pre></p>
1130
+ </pre></ins></p>
1633
1131
 
1634
1132
  <p>Add the following code to the bottom of <tt>bin/word_count</tt>, the main project executable:</p>
1635
1133
 
1636
- <p><pre class="code">input = <span style="color:#038;font-weight:bold">ARGF</span>.read
1134
+ <p><ins><pre class="para">input = <span style="color:#038;font-weight:bold">ARGF</span>.read
1637
1135
  total = <span style="color:#036;font-weight:bold">WordCount</span>.count(input)
1638
- puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">There are </span><span style="background:#eee"><span style="font-weight:bold;color:#888">#{</span>total<span style="font-weight:bold;color:#888">}</span></span><span style=""> words in the input.</span><span style="color:#710">&quot;</span></span>
1639
- </pre></p>
1136
+ puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">There are </span><span style="background:#eee;color:black"><span style="font-weight:bold;color:#777">#{</span>total<span style="font-weight:bold;color:#777">}</span></span><span style=""> words in the input.</span><span style="color:#710">&quot;</span></span>
1137
+ </pre></ins></p>
1640
1138
 
1641
1139
  <p>Add the following code to the bottom of <tt>test/word_count.rb</tt>, a unit test for the main project library:</p>
1642
1140
 
1643
- <p><pre class="code">describe <span style="color:#036;font-weight:bold">WordCount</span> <span style="color:#080;font-weight:bold">do</span>
1141
+ <p><ins><pre class="para">describe <span style="color:#036;font-weight:bold">WordCount</span> <span style="color:#080;font-weight:bold">do</span>
1644
1142
  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>
1645
1143
  <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>)
1646
1144
  <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>)
@@ -1668,39 +1166,39 @@ puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">
1668
1166
  <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>)
1669
1167
  <span style="color:#080;font-weight:bold">end</span>
1670
1168
  <span style="color:#080;font-weight:bold">end</span>
1671
- </pre></p>
1169
+ </pre></ins></p>
1672
1170
 
1673
- <p><div class="paragraph">
1674
- <a name="Goodbye-LOAD_PATH-hello-require"/><div class="nav" id="Goodbye-LOAD_PATH-hello-require"><a title="Reverse jump to listing" href="#rev:Goodbye-LOAD_PATH-hello-require">&equiv;</a><a title="Jump to previous segment" href="#Implement-your-project">&#x25B3;</a><a title="Jump to next segment" href="#Test-your-project">&#x25BD;</a><a title="Jump to this segment" href="#Goodbye-LOAD_PATH-hello-require">&#x25CE;</a></div>
1675
- <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>
1676
- <div class="content"><p>Notice that, in the Ruby files that you modified so far, there were no <code class="code"><span style="color:#d70;font-weight:bold">$LOAD_PATH</span></code> manipulations and no explicit <code class="code">require()</code> statements to pull in the various parts of your project. That is because <strong>Inochi</strong> does this for you automatically.</p>
1171
+ <div class="paragraph">
1172
+ <a name="Goodbye-LOAD_PATH-hello-require"/><div class="nav" id="Goodbye-LOAD_PATH-hello-require"><a title="Focus this segment" href="#Goodbye-LOAD_PATH-hello-require"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Implement-your-project"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Test-your-project"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Goodbye-LOAD_PATH-hello-require"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1173
+ <p class="title">Goodbye <code class="line"><span style="color:#d70;font-weight:bold">$LOAD_PATH</span></code>, hello <code class="line">require()</code></p>
1174
+ <div class="content"><p>Notice that, in the Ruby files that you modified so far, there were no <code class="line"><span style="color:#d70;font-weight:bold">$LOAD_PATH</span></code> manipulations and no explicit <code class="line">require()</code> statements to pull in the various parts of your project. That is because Inochi does this for you automatically.</p>
1677
1175
 
1678
- <p>Furthermore, you can always <code class="code">require()</code> a sub-library anywhere in your project using its canonical path because <strong>Inochi</strong> puts your main project libraries on the Ruby load path.</p>
1176
+ <p>Furthermore, you can always <code class="line">require()</code> a sub-library anywhere in your project using its canonical path because Inochi puts your main project libraries on the Ruby load path.</p>
1679
1177
 
1680
1178
  <p>For example, if your project has a sub-library, say, <tt>lib/word_count/odf/text.rb</tt> that counts the number of words in an <a href='http://en.wikipedia.org/wiki/OpenDocument'>OpenDocument Text</a> document, then it would be loaded into the main project executable like this:</p>
1681
1179
 
1682
- <p><pre class="code">require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">word_count/odf/text</span><span style="color:#710">'</span></span>
1683
- </pre></p>
1180
+ <p><ins><pre class="para">require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">word_count/odf/text</span><span style="color:#710">'</span></span>
1181
+ </pre></ins></p>
1684
1182
 
1685
- <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>
1686
- </div></p></div>
1687
- </div> <div class="section">
1688
- <a name="Test-your-project"/><div class="nav" id="Test-your-project"><a title="Reverse jump to listing" href="#rev:Test-your-project">&equiv;</a><a title="Jump to previous segment" href="#Goodbye-LOAD_PATH-hello-require">&#x25B3;</a><a title="Jump to next segment" href="#Units-and-tests">&#x25BD;</a><a title="Jump to this segment" href="#Test-your-project">&#x25CE;</a></div>
1183
+ <p>Regardless of whether a sub-library is used within your project itself or from within an external application, we always <code class="line">require()</code> the sub-library using the same canonical path.</p></div>
1184
+ </div><p></p></div>
1185
+ </div><div class="section">
1186
+ <a name="Test-your-project"/><div class="nav" id="Test-your-project"><a title="Focus this segment" href="#Test-your-project"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Goodbye-LOAD_PATH-hello-require"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Units-and-tests"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Test-your-project"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1689
1187
  <h3 class="title">
1690
1188
  3.3.5&nbsp;&nbsp;Test your project
1691
1189
  </h3>
1692
- <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>
1190
+ <div class="content"><p>To reduce the amount of code you have to write, Inochi defines the following convention for unit tests.</p>
1693
1191
 
1694
- <p><div class="paragraph">
1695
- <a name="Units-and-tests"/><div class="nav" id="Units-and-tests"><a title="Reverse jump to listing" href="#rev:Units-and-tests">&equiv;</a><a title="Jump to previous segment" href="#Test-your-project">&#x25B3;</a><a title="Jump to next segment" href="#Test-execution">&#x25BD;</a><a title="Jump to this segment" href="#Units-and-tests">&#x25CE;</a></div>
1192
+ <div class="paragraph">
1193
+ <a name="Units-and-tests"/><div class="nav" id="Units-and-tests"><a title="Focus this segment" href="#Units-and-tests"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Test-your-project"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Test-execution"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Units-and-tests"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1696
1194
  <p class="title">Units and tests</p>
1697
1195
  <div class="content"><p>Every Ruby source file in your project&#8217;s <tt>lib/</tt> directory is considered to be a <strong>unit</strong>. Likewise, every Ruby source file in your project&#8217;s <tt>test/</tt> is considered to be a <strong>test</strong>.</p>
1698
1196
 
1699
1197
  <p>As a result, your project&#8217;s <tt>test/</tt> directory structure <em>mirrors</em> the structure of your project&#8217;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 corresponding test.</p></div>
1700
- </div> <div class="paragraph">
1701
- <a name="Test-execution"/><div class="nav" id="Test-execution"><a title="Reverse jump to listing" href="#rev:Test-execution">&equiv;</a><a title="Jump to previous segment" href="#Units-and-tests">&#x25B3;</a><a title="Jump to next segment" href="#Helper-libraries">&#x25BD;</a><a title="Jump to this segment" href="#Test-execution">&#x25CE;</a></div>
1198
+ </div><div class="paragraph">
1199
+ <a name="Test-execution"/><div class="nav" id="Test-execution"><a title="Focus this segment" href="#Test-execution"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Units-and-tests"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Helper-libraries"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Test-execution"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1702
1200
  <p class="title">Test execution</p>
1703
- <div class="content"><p><pre>rake test</pre></p>
1201
+ <div class="content"><pre>rake test</pre><p></p>
1704
1202
 
1705
1203
  <p>The above command begins the testing process, during which:</p>
1706
1204
 
@@ -1710,78 +1208,90 @@ puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">
1710
1208
  </li>
1711
1209
 
1712
1210
  <li>
1713
- <p>Before a test is executed, its corresponding unit is automatically loaded into the Ruby environment using <code class="code">require()</code>.</p>
1211
+ <p>Before a test is executed, its corresponding unit is automatically loaded into the Ruby environment using <code class="line">require()</code>.</p>
1714
1212
  </li>
1715
1213
  </ul>
1716
1214
 
1717
- <p>As for the details of test execution:</p>
1215
+ <p>The details of test execution are left to the integration libraries specified by the <code class="line"><span style="color:#A60">:test_with</span></code> parameter of the <code class="line"><span style="color:#036;font-weight:bold">Inochi</span>.rake()</code> method. Possible values for this parameter are:</p>
1718
1216
 
1719
1217
  <ul>
1720
- <li>
1721
- <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 xUnit TDD, alternative rSpec BDD, and mock-based validation styles.</p>
1722
- </li>
1218
+ <li><tt>bacon</tt> &#8212; Integration for the <a href='http://github.com/chneukirchen/bacon'>Bacon library</a>.</li>
1723
1219
 
1724
- <li>
1725
- <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>
1726
- </li>
1220
+ <li><tt>context</tt> &#8212; Integration for the <a href='http://github.com/jeremymcanally/context'>Context library</a>.</li>
1221
+
1222
+ <li><tt>dfect</tt> &#8212; Integration for the <a href='http://snk.tuxfamily.org/lib/dfect/'>Dfect library</a>.</li>
1223
+
1224
+ <li><tt>matchy</tt> &#8212; Integration for the <a href='http://github.com/jeremymcanally/matchy'>Matchy library</a></li>
1225
+
1226
+ <li><tt>minitest</tt> &#8212; Integration for the <a href='http://blog.zenspider.com/minitest/'>Minitest library</a>.</li>
1227
+
1228
+ <li><tt>mocha</tt> &#8212; Integration for the <a href='http://mocha.rubyforge.org'>Mocha library</a>.</li>
1229
+
1230
+ <li><tt>rspec</tt> &#8212; Integration for the <a href='http://rspec.info'>RSpec library</a>.</li>
1231
+
1232
+ <li><tt>shoulda</tt> &#8212; Integration for the <a href='http://thoughtbot.com/projects/shoulda/'>Shoulda library</a>.</li>
1233
+
1234
+ <li><tt>test_spec</tt> &#8212; Integration for the <a href='http://chneukirchen.org/repos/testspec/README'>test/spec library</a>.</li>
1235
+
1236
+ <li><tt>test_unit</tt> &#8212; Integration for the <a href='http://test-unit.rubyforge.org'>Test::Unit library</a>.</li>
1727
1237
  </ul></div>
1728
- </div> <div class="paragraph">
1729
- <a name="Helper-libraries"/><div class="nav" id="Helper-libraries"><a title="Reverse jump to listing" href="#rev:Helper-libraries">&equiv;</a><a title="Jump to previous segment" href="#Test-execution">&#x25B3;</a><a title="Jump to next segment" href="#Translate-your-project">&#x25BD;</a><a title="Jump to this segment" href="#Helper-libraries">&#x25CE;</a></div>
1238
+ </div><div class="paragraph">
1239
+ <a name="Helper-libraries"/><div class="nav" id="Helper-libraries"><a title="Focus this segment" href="#Helper-libraries"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Test-execution"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Translate-your-project"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Helper-libraries"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1730
1240
  <p class="title">Helper libraries</p>
1731
1241
  <div class="content"><p>Your project&#8217;s main directory is added to Ruby&#8217;s load path. So if your tests have helper libraries stored in your project&#8217;s <tt>test/</tt> directory, you can load them into your tests by adding a &#8220;test/&#8221; prefix.</p>
1732
1242
 
1733
1243
  <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>
1734
1244
 
1735
- <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>
1736
- </pre></p></div>
1737
- </div></p></div>
1738
- </div> <div class="section">
1739
- <a name="Translate-your-project"/><div class="nav" id="Translate-your-project"><a title="Reverse jump to listing" href="#rev:Translate-your-project">&equiv;</a><a title="Jump to previous segment" href="#Helper-libraries">&#x25B3;</a><a title="Jump to next segment" href="#Language-phrases">&#x25BD;</a><a title="Jump to this segment" href="#Translate-your-project">&#x25CE;</a></div>
1245
+ <p><ins><pre class="para">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>
1246
+ </pre></ins></p></div>
1247
+ </div><p> </p></div>
1248
+ </div><div class="section">
1249
+ <a name="Translate-your-project"/><div class="nav" id="Translate-your-project"><a title="Focus this segment" href="#Translate-your-project"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Helper-libraries"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Language-phrases"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Translate-your-project"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1740
1250
  <h3 class="title">
1741
1251
  3.3.6&nbsp;&nbsp;Translate your project
1742
1252
  </h3>
1743
- <div class="content"><p>Although English is the <em>lingua franca</em> of today, your project&#8217;s users may prefer to interact with it in their native language. <strong>Inochi</strong> makes it easy to translate your project and also makes it easy for users to correct and contribute translations to your project.</p>
1253
+ <div class="content"><p>Although English is the <em>lingua franca</em> of today, your project&#8217;s users may prefer to interact with it in their native language. Inochi makes it easy to translate your project and also makes it easy for users to correct and contribute translations to your project.</p>
1744
1254
 
1745
- <p><div class="section">
1746
- <a name="Language-phrases"/><div class="nav" id="Language-phrases"><a title="Reverse jump to listing" href="#rev:Language-phrases">&equiv;</a><a title="Jump to previous segment" href="#Translate-your-project">&#x25B3;</a><a title="Jump to next segment" href="#Parameterizing-language-phrases">&#x25BD;</a><a title="Jump to this segment" href="#Language-phrases">&#x25CE;</a></div>
1255
+ <div class="section">
1256
+ <a name="Language-phrases"/><div class="nav" id="Language-phrases"><a title="Focus this segment" href="#Language-phrases"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Translate-your-project"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Parameterizing-language-phrases"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Language-phrases"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1747
1257
  <h4 class="title">
1748
1258
  3.3.6.1&nbsp;&nbsp;Language phrases
1749
1259
  </h4>
1750
- <div class="content"><p><strong>Inochi</strong> equips your project module with a <code class="code"><span style="color:#036;font-weight:bold">PHRASES</span></code> constant (see the <a href='api/Inochi/Phrases.html'><code class="code"><span style="color:#036;font-weight:bold">Inochi</span>::<span style="color:#036;font-weight:bold">Phrases</span></code> class</a>) which provides access to translations of language phrases used in your project.</p>
1260
+ <div class="content"><p>Inochi equips your project module with a <code class="line"><span style="color:#036;font-weight:bold">PHRASES</span></code> constant (see the <code class="line"><span style="color:#036;font-weight:bold">Inochi</span>::<span style="color:#036;font-weight:bold">Phrases</span></code> class) which provides access to translations of language phrases used in your project.</p>
1751
1261
 
1752
- <p>The <a href='api/Inochi/Phrases.html#[]-instance_method'><code class="code"><span style="color:#036;font-weight:bold">Inochi</span>::<span style="color:#036;font-weight:bold">Phrases</span><span style="color:#666">#[]</span></code> method</a> translates a given language phrase into the user&#8217;s preferred language, which is automatically inferred from their environment, but may be explictly overridden by the user via the <tt>--locale</tt> option of <a class="xref" href="#Run-project-executable" title="Paragraph. &quot;Run project executable&quot;">your project&#8217;s main executable</a>:</p>
1262
+ <p>The <code class="line"><span style="color:#036;font-weight:bold">Inochi</span>::<span style="color:#036;font-weight:bold">Phrases</span><span style="color:#888">#[]</span></code> method translates a given language phrase into the user&#8217;s preferred language, which is automatically inferred from their environment, but may be explictly overridden by the user via the <tt>--locale</tt> option of <a class="xref" href="#Run-project-executable" title="Paragraph. &quot;Run project executable&quot;">your project&#8217;s main executable</a>:</p>
1753
1263
 
1754
- <p><pre class="code">your_project::<span style="color:#036;font-weight:bold">PHRASES</span>[<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">Have a nice day!</span><span style="color:#710">'</span></span>]
1755
- </pre></p>
1264
+ <p><ins><pre class="para">your_project::<span style="color:#036;font-weight:bold">PHRASES</span>[<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">Have a nice day!</span><span style="color:#710">'</span></span>]
1265
+ </pre></ins></p>
1756
1266
 
1757
1267
  <p>If there is no <a class="xref" href="#Translation-files" title="Section 3.3.6.2. &quot;Translation files&quot;">translation file</a> for the user&#8217;s preferred language, or it does not define a translation for a particular language phrase, then the language phrase will be used untranslated:</p>
1758
1268
 
1759
- <p><pre class="code">your_project::<span style="color:#036;font-weight:bold">PHRASES</span>[<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">No translation for this</span><span style="color:#710">'</span></span>]
1760
- <span style="color:#666">#=&gt; 'No translation for this'</span>
1761
- </pre></p>
1269
+ <p><ins><pre class="para">your_project::<span style="color:#036;font-weight:bold">PHRASES</span>[<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">No translation for this</span><span style="color:#710">'</span></span>]
1270
+ <span style="color:#888">#=&gt; 'No translation for this'</span>
1271
+ </pre></ins></p>
1762
1272
 
1763
- <p><div class="paragraph">
1764
- <a name="Parameterizing-language-phrases"/><div class="nav" id="Parameterizing-language-phrases"><a title="Reverse jump to listing" href="#rev:Parameterizing-language-phrases">&equiv;</a><a title="Jump to previous segment" href="#Language-phrases">&#x25B3;</a><a title="Jump to next segment" href="#Explicit-translation-into-a-language">&#x25BD;</a><a title="Jump to this segment" href="#Parameterizing-language-phrases">&#x25CE;</a></div>
1273
+ <div class="paragraph">
1274
+ <a name="Parameterizing-language-phrases"/><div class="nav" id="Parameterizing-language-phrases"><a title="Focus this segment" href="#Parameterizing-language-phrases"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Language-phrases"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Explicit-translation-into-a-language"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Parameterizing-language-phrases"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1765
1275
  <p class="title">Parameterizing language phrases</p>
1766
- <div class="content"><p>Language phrases can be parameterized using <a href='http://en.wikipedia.org/wiki/Printf#printf_format_placeholders'><code class="code">printf</code> format placeholders</a> to ease translation:</p>
1276
+ <div class="content"><p>Language phrases can be parameterized using <a href='http://en.wikipedia.org/wiki/Printf#printf_format_placeholders'><code class="line">printf</code> format placeholders</a> to ease translation:</p>
1767
1277
 
1768
- <p><pre class="code">your_project::<span style="color:#036;font-weight:bold">PHRASES</span>[<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">Good afternoon, %s.</span><span style="color:#710">'</span></span>, user_name]
1278
+ <p><ins><pre class="para">your_project::<span style="color:#036;font-weight:bold">PHRASES</span>[<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">Good afternoon, %s.</span><span style="color:#710">'</span></span>, user_name]
1769
1279
  your_project::<span style="color:#036;font-weight:bold">PHRASES</span>[<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">You are %d years old.</span><span style="color:#710">'</span></span>, user_age]
1770
- </pre></p></div>
1771
- </div> <div class="paragraph">
1772
- <a name="Explicit-translation-into-a-language"/><div class="nav" id="Explicit-translation-into-a-language"><a title="Reverse jump to listing" href="#rev:Explicit-translation-into-a-language">&equiv;</a><a title="Jump to previous segment" href="#Parameterizing-language-phrases">&#x25B3;</a><a title="Jump to next segment" href="#Translation-files">&#x25BD;</a><a title="Jump to this segment" href="#Explicit-translation-into-a-language">&#x25CE;</a></div>
1280
+ </pre></ins></p></div>
1281
+ </div><div class="paragraph">
1282
+ <a name="Explicit-translation-into-a-language"/><div class="nav" id="Explicit-translation-into-a-language"><a title="Focus this segment" href="#Explicit-translation-into-a-language"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Parameterizing-language-phrases"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Translation-files"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Explicit-translation-into-a-language"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1773
1283
  <p class="title">Explicit translation into a language</p>
1774
- <div class="content"><p>If a language phrase must be translated into a specific language, regardless of the user&#8217;s preference, you can invoke the respective method (whose name is the same as the <a href='http://en.wikipedia.org/wiki/ISO_639'>ISO-639 language code</a> of the language into which you wish to translate) on your <code class="code"><span style="color:#036;font-weight:bold">PHRASES</span></code> object:</p>
1284
+ <div class="content"><p>If a language phrase must be translated into a specific language, regardless of the user&#8217;s preference, you can invoke the respective method (whose name is the same as the <a href='http://en.wikipedia.org/wiki/ISO_639'>ISO-639 language code</a> of the language into which you wish to translate) on your <code class="line"><span style="color:#036;font-weight:bold">PHRASES</span></code> object:</p>
1775
1285
 
1776
- <p><pre class="code"><span style="color:#666"># explictly translate into Japanese (ja)</span>
1286
+ <p><ins><pre class="para"><span style="color:#888"># explictly translate into Japanese (ja)</span>
1777
1287
  your_project::<span style="color:#036;font-weight:bold">PHRASES</span>.ja(<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">Goodbye %s!</span><span style="color:#710">'</span></span>, user_name)
1778
1288
 
1779
- <span style="color:#666"># explictly translate into French (fr)</span>
1289
+ <span style="color:#888"># explictly translate into French (fr)</span>
1780
1290
  your_project::<span style="color:#036;font-weight:bold">PHRASES</span>.fr(<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">Farewell %s!</span><span style="color:#710">'</span></span>, user_name)
1781
- </pre></p></div>
1782
- </div></p></div>
1783
- </div> <div class="section">
1784
- <a name="Translation-files"/><div class="nav" id="Translation-files"><a title="Reverse jump to listing" href="#rev:Translation-files">&equiv;</a><a title="Jump to previous segment" href="#Explicit-translation-into-a-language">&#x25B3;</a><a title="Jump to next segment" href="#Extracting-language-phrases">&#x25BD;</a><a title="Jump to this segment" href="#Translation-files">&#x25CE;</a></div>
1291
+ </pre></ins></p></div>
1292
+ </div><p> </p></div>
1293
+ </div><div class="section">
1294
+ <a name="Translation-files"/><div class="nav" id="Translation-files"><a title="Focus this segment" href="#Translation-files"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Explicit-translation-into-a-language"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Extracting-language-phrases"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Translation-files"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1785
1295
  <h4 class="title">
1786
1296
  3.3.6.2&nbsp;&nbsp;Translation files
1787
1297
  </h4>
@@ -1789,7 +1299,7 @@ your_project::<span style="color:#036;font-weight:bold">PHRASES</span>.fr(<span
1789
1299
 
1790
1300
  <p>For example, suppose that your language phrases are written in English, the <tt>lang/es.yaml</tt> (Spanish) translation file would appear like this:</p>
1791
1301
 
1792
- <p><pre>#
1302
+ <pre>#
1793
1303
  # (this is a comment)
1794
1304
  #
1795
1305
  # language phrase : translation
@@ -1798,55 +1308,49 @@ Hello %s! : ¡Hola %s!
1798
1308
  Money : Dinero
1799
1309
  Ticket : Tarjeta
1800
1310
  See you later %s! : ¡Hasta la vista %s!
1801
- &quot;%s: Quickly, please!&quot; : &quot;%s: ¡Rápidamente, por favor!&quot;</pre></p>
1311
+ &quot;%s: Quickly, please!&quot; : &quot;%s: ¡Rápidamente, por favor!&quot;</pre><p></p>
1802
1312
 
1803
1313
  <p>On each line, the original language phrase (as used in your project) appears first, then a single semicolon (:), followed by the translation.</p>
1804
1314
 
1805
1315
  <p>Also, notice that if a language phrase contains a semicolon, then the entire phrase must be enclosed in quotation marks. The same rule applies to its corresponding translation.</p></div>
1806
- </div> <div class="section">
1807
- <a name="Extracting-language-phrases"/><div class="nav" id="Extracting-language-phrases"><a title="Reverse jump to listing" href="#rev:Extracting-language-phrases">&equiv;</a><a title="Jump to previous segment" href="#Translation-files">&#x25B3;</a><a title="Jump to next segment" href="#Dynamic-analysis">&#x25BD;</a><a title="Jump to this segment" href="#Extracting-language-phrases">&#x25CE;</a></div>
1316
+ </div><div class="section">
1317
+ <a name="Extracting-language-phrases"/><div class="nav" id="Extracting-language-phrases"><a title="Focus this segment" href="#Extracting-language-phrases"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Translation-files"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Dynamic-analysis"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Extracting-language-phrases"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1808
1318
  <h4 class="title">
1809
1319
  3.3.6.3&nbsp;&nbsp;Extracting language phrases
1810
1320
  </h4>
1811
- <div class="content"><p><pre># rake lang:dump
1812
- (in /tmp/Inochi20090212-5946-1r29zno-0/word_count)
1813
- Loaded suite word_count
1814
- Started
1815
- .
1816
- Finished in 0.001141 seconds.
1817
-
1818
- 1 tests, 25 assertions, 0 failures, 0 errors, 0 skips
1819
- Extracted 0 language phrases into &quot;lang/phrases.yaml&quot;
1820
- </pre></p>
1321
+ <div class="content"><pre># rake lang:dump
1322
+ (in /tmp/rake20090504-12012-13p4oou-0/word_count)
1323
+ Inochi establishment tests passed!
1324
+ Extracted 0 language phrases into &quot;/tmp/rake20090504-12012-13p4oou-0/word_count/lang/phrases.yaml&quot;
1325
+ </pre><p></p>
1821
1326
 
1822
1327
  <p>The above command exercises your project&#8217;s code and extracts all <em>utilized</em> language phrases into the <tt>lang/phrases.yaml</tt> file. Continue reading to learn how this is accomplished.</p>
1823
1328
 
1824
- <p><div class="paragraph">
1825
- <a name="Dynamic-analysis"/><div class="nav" id="Dynamic-analysis"><a title="Reverse jump to listing" href="#rev:Dynamic-analysis">&equiv;</a><a title="Jump to previous segment" href="#Extracting-language-phrases">&#x25B3;</a><a title="Jump to next segment" href="#Static-analysis">&#x25BD;</a><a title="Jump to this segment" href="#Dynamic-analysis">&#x25CE;</a></div>
1329
+ <div class="paragraph">
1330
+ <a name="Dynamic-analysis"/><div class="nav" id="Dynamic-analysis"><a title="Focus this segment" href="#Dynamic-analysis"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Extracting-language-phrases"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Static-analysis"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Dynamic-analysis"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1826
1331
  <p class="title">Dynamic analysis</p>
1827
1332
  <div class="content"><p>Because Ruby is a dynamically interpreted language, the easiest way to extract language phrases is to evaluate the code that defines them and keep track of which phrases are defined.</p>
1828
1333
 
1829
- <p>But how can <strong>Inochi</strong> exercise all Ruby code in your project? The answer is through <em>unit tests</em>. Because unit tests already exercise your project&#8217;s code, <strong>Inochi</strong> can use them to reach and extract all language phrases from your project.</p>
1334
+ <p>But how can Inochi exercise all Ruby code in your project? The answer is through <em>unit tests</em>. Because unit tests already exercise your project&#8217;s code, Inochi can use them to reach and extract all language phrases from your project.</p>
1830
1335
 
1831
- <p>However, note that if your unit tests <em>do not</em> exercise a part of your project that defines language phrases, then those phrases <em>will not</em> be extracted by <strong>Inochi</strong>.</p>
1336
+ <p>However, note that if your unit tests <em>do not</em> exercise a part of your project that defines language phrases, then those phrases <em>will not</em> be extracted by Inochi.</p>
1832
1337
 
1833
1338
  <p>This gives you extra motivation to improve the coverage of your test suite&#8212;at least to the point where all code that defines language phrases is covered.</p></div>
1834
- </div> <div class="paragraph">
1835
- <a name="Static-analysis"/><div class="nav" id="Static-analysis"><a title="Reverse jump to listing" href="#rev:Static-analysis">&equiv;</a><a title="Jump to previous segment" href="#Dynamic-analysis">&#x25B3;</a><a title="Jump to next segment" href="#Translating-language-phrases">&#x25BD;</a><a title="Jump to this segment" href="#Static-analysis">&#x25CE;</a></div>
1339
+ </div><div class="paragraph">
1340
+ <a name="Static-analysis"/><div class="nav" id="Static-analysis"><a title="Focus this segment" href="#Static-analysis"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Dynamic-analysis"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Translating-language-phrases"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Static-analysis"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1836
1341
  <p class="title">Static analysis</p>
1837
1342
  <div class="content"><p>In a future release, I plan to extract language phrases through static analysis of Ruby code. This approach will supplement the current practice of reaching language phrases through unit tests.</p>
1838
1343
 
1839
1344
  <p>Patches are welcome! :-)</p></div>
1840
- </div></p></div>
1841
- </div> <div class="section">
1842
- <a name="Translating-language-phrases"/><div class="nav" id="Translating-language-phrases"><a title="Reverse jump to listing" href="#rev:Translating-language-phrases">&equiv;</a><a title="Jump to previous segment" href="#Static-analysis">&#x25B3;</a><a title="Jump to next segment" href="#Publish-your-project">&#x25BD;</a><a title="Jump to this segment" href="#Translating-language-phrases">&#x25CE;</a></div>
1345
+ </div><p> </p></div>
1346
+ </div><div class="section">
1347
+ <a name="Translating-language-phrases"/><div class="nav" id="Translating-language-phrases"><a title="Focus this segment" href="#Translating-language-phrases"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Static-analysis"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Publish-your-project"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Translating-language-phrases"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1843
1348
  <h4 class="title">
1844
1349
  3.3.6.4&nbsp;&nbsp;Translating language phrases
1845
1350
  </h4>
1846
- <div class="content"><p>After you have extracted all language phrases from your project (either manually or via <a class="xref" href="#Extracting-language-phrases">Section 3.3.6.3. &#8220;Extracting language phrases&#8221;</a>) into the <tt>lang/phrases.yaml</tt> file, <strong>Inochi</strong> can automatically translate them into various languages using the <a href='http://babelfish.yahoo.com'>Yahoo! BabelFish translation service</a>:</p>
1351
+ <div class="content"><p>After you have extracted all language phrases from your project (either manually or via <a class="xref" href="#Extracting-language-phrases" title="Section 3.3.6.3">Extracting language phrases</a>) into the <tt>lang/phrases.yaml</tt> file, Inochi can automatically translate them into various languages using the <a href='http://babelfish.yahoo.com'>Yahoo! BabelFish translation service</a>:</p>
1847
1352
 
1848
- <p><pre># rake lang:conv from=LANGUAGE_CODE
1849
- /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/gempackagetask.rb:13:Warning: Gem::manage_gems is deprecated and will be removed on or after March 2009.
1353
+ <pre># rake lang:conv from=LANGUAGE_CODE
1850
1354
  rake aborted!
1851
1355
  The &quot;from&quot; parameter must be specified as follows:
1852
1356
  rake lang:conv from=it # from Italian
@@ -1864,46 +1368,52 @@ The &quot;from&quot; parameter must be specified as follows:
1864
1368
  rake lang:conv from=en # from English
1865
1369
 
1866
1370
  (See full trace by running task with --trace)
1867
- (in /tmp/Inochi20090212-5946-1r29zno-0/word_count)
1868
- </pre></p>
1371
+ (in /tmp/rake20090504-12012-13p4oou-0/word_count)
1372
+ </pre><p></p>
1869
1373
 
1870
- <p>Notice that you must specify the language in which your phrases are written, via the <tt>from=</tt> parameter. <strong>Inochi</strong> cannot determine this automatically.</p></div>
1871
- </div></p></div>
1872
- </div> <div class="section">
1873
- <a name="Publish-your-project"/><div class="nav" id="Publish-your-project"><a title="Reverse jump to listing" href="#rev:Publish-your-project">&equiv;</a><a title="Jump to previous segment" href="#Translating-language-phrases">&#x25B3;</a><a title="Jump to next segment" href="#Build-a-RubyGem">&#x25BD;</a><a title="Jump to this segment" href="#Publish-your-project">&#x25CE;</a></div>
1374
+ <p>Notice that you must specify the language in which your phrases are written, via the <tt>from=</tt> parameter. Inochi cannot determine this automatically.</p></div>
1375
+ </div><p> </p></div>
1376
+ </div><div class="section">
1377
+ <a name="Publish-your-project"/><div class="nav" id="Publish-your-project"><a title="Focus this segment" href="#Publish-your-project"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Translating-language-phrases"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Build-a-RubyGem"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Publish-your-project"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1874
1378
  <h3 class="title">
1875
1379
  3.3.7&nbsp;&nbsp;Publish your project
1876
1380
  </h3>
1877
- <div class="content"><p><pre># rake pub</pre></p>
1381
+ <div class="content"><pre># rake pub</pre><p></p>
1878
1382
 
1879
1383
  <p>The above command performs all automated steps described in the following sections.</p>
1880
1384
 
1881
- <p><div class="section">
1882
- <a name="Build-a-RubyGem"/><div class="nav" id="Build-a-RubyGem"><a title="Reverse jump to listing" href="#rev:Build-a-RubyGem">&equiv;</a><a title="Jump to previous segment" href="#Publish-your-project">&#x25B3;</a><a title="Jump to next segment" href="#Publish-a-RubyGem">&#x25BD;</a><a title="Jump to this segment" href="#Build-a-RubyGem">&#x25CE;</a></div>
1385
+ <div class="section">
1386
+ <a name="Build-a-RubyGem"/><div class="nav" id="Build-a-RubyGem"><a title="Focus this segment" href="#Build-a-RubyGem"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Publish-your-project"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Publish-a-RubyGem"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Build-a-RubyGem"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1883
1387
  <h4 class="title">
1884
1388
  3.3.7.1&nbsp;&nbsp;Build a RubyGem
1885
1389
  </h4>
1886
1390
  <div class="content"><p>Build a RubyGem by running:</p>
1887
1391
 
1888
- <p><pre># rake pak
1889
- (in /tmp/Inochi20090212-5946-1r29zno-0/word_count)
1890
- (in /tmp/Inochi20090212-5946-1r29zno-0/word_count)
1891
- Loaded suite word_count
1892
- Started
1893
- .
1894
- Finished in 0.001130 seconds.
1895
-
1896
- 1 tests, 25 assertions, 0 failures, 0 errors, 0 skips
1392
+ <pre># rake gem
1393
+ (in /tmp/rake20090504-12012-13p4oou-0/word_count)
1394
+ Parsing sources with 2 thread(s)...
1395
+ 33% [ 1/ 3] LICENSE
1396
+ 66% [ 2/ 3] CREDITS
1397
+ 100% [ 3/ 3] lib/word_count.rb
1398
+
1399
+
1400
+ Files: 3
1401
+ Classes: 0
1402
+ Modules: 0
1403
+ Methods: 0
1404
+ Elapsed: 0.2s
1405
+ (in /tmp/rake20090504-12012-13p4oou-0/word_count)
1406
+ Inochi establishment tests passed!
1897
1407
  Successfully built RubyGem
1898
1408
  Name: word_count
1899
1409
  Version: 0.0.0
1900
1410
  File: word_count-0.0.0.gem
1901
- </pre></p>
1411
+ </pre><p></p>
1902
1412
 
1903
1413
  <p>See the RubyGem contents:</p>
1904
1414
 
1905
- <p><pre># gem spec pkg/*.gem
1906
- <pre class="code" lang="yaml"><span style="color:#f8f;background:#505"><span style="color:#f4f">---</span></span> <span style="color:#339;font-weight:bold">!ruby/object</span>:<span style="color:#B06;font-weight:bold">Gem::Specification</span>
1415
+ <pre># gem spec pkg/*.gem
1416
+ <ins><pre class="para" lang="yaml"><span style="color:#f8f;background:#505"><span style="color:#f4f">---</span></span> <span style="color:#339;font-weight:bold">!ruby/object</span>:<span style="color:#B06;font-weight:bold">Gem::Specification</span>
1907
1417
  <span style="color:#808">name</span>: <span style="background-color:#fff0f0;color:#D20">word_count</span>
1908
1418
  <span style="color:#808">version</span>: <span style="color:#339;font-weight:bold">!ruby/object</span>:<span style="color:#B06;font-weight:bold">Gem::Version</span>
1909
1419
  <span style="color:#808">version</span>: <span style="background-color:#fff0f0;color:#D20">0.0.0</span>
@@ -1914,9 +1424,19 @@ Finished in 0.001130 seconds.
1914
1424
  <span style="color:#808">bindir</span>: <span style="background-color:#fff0f0;color:#D20">bin</span>
1915
1425
  <span style="color:#808">cert_chain</span>: <span style="background-color:#fff0f0;color:#D20">[]</span>
1916
1426
 
1917
- <span style="color:#808">date</span>: <span style="background-color:#fff0f0;color:#D20">2009-02-12 00:00:00 -08:00</span>
1427
+ <span style="color:#808">date</span>: <span style="background-color:#fff0f0;color:#D20">2009-05-04 00:00:00 -07:00</span>
1918
1428
  <span style="color:#808">default_executable</span>:
1919
1429
  <span style="color:#808">dependencies</span>:
1430
+ - <span style="color:#339;font-weight:bold">!ruby/object</span>:<span style="color:#B06;font-weight:bold">Gem::Dependency</span>
1431
+ <span style="color:#808">name</span>: <span style="background-color:#fff0f0;color:#D20">inochi</span>
1432
+ <span style="color:#808">type</span>: <span style="background-color:#fff0f0;color:#D20">:development</span>
1433
+ <span style="color:#808">version_requirement</span>:
1434
+ <span style="color:#808">version_requirements</span>: <span style="color:#339;font-weight:bold">!ruby/object</span>:<span style="color:#B06;font-weight:bold">Gem::Requirement</span>
1435
+ <span style="color:#808">requirements</span>:
1436
+ - <span style="background-color:#fff0f0;color:#D20">- ~&gt;</span>
1437
+ - <span style="color:#339;font-weight:bold">!ruby/object</span>:<span style="color:#B06;font-weight:bold">Gem::Version</span>
1438
+ <span style="color:#808">version</span>: <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">1</span><span style="color:#710">&quot;</span></span>
1439
+ <span style="color:#808">version</span>:
1920
1440
  - <span style="color:#339;font-weight:bold">!ruby/object</span>:<span style="color:#B06;font-weight:bold">Gem::Dependency</span>
1921
1441
  <span style="color:#808">name</span>: <span style="background-color:#fff0f0;color:#D20">inochi</span>
1922
1442
  <span style="color:#808">type</span>: <span style="background-color:#fff0f0;color:#D20">:runtime</span>
@@ -1925,9 +1445,9 @@ Finished in 0.001130 seconds.
1925
1445
  <span style="color:#808">requirements</span>:
1926
1446
  - <span style="background-color:#fff0f0;color:#D20">- ~&gt;</span>
1927
1447
  - <span style="color:#339;font-weight:bold">!ruby/object</span>:<span style="color:#B06;font-weight:bold">Gem::Version</span>
1928
- <span style="color:#808">version</span>: <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">0</span><span style="color:#710">&quot;</span></span>
1448
+ <span style="color:#808">version</span>: <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">1</span><span style="color:#710">&quot;</span></span>
1929
1449
  <span style="color:#808">version</span>:
1930
- <span style="color:#808">description</span>: <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">TODO: put a single line description of your project here.</span><span style="color:#710">&quot;</span></span>
1450
+ <span style="color:#808">description</span>: <span style="background-color:#fff0f0;color:#D20">put a single line description of your project here</span>
1931
1451
  <span style="color:#808">email</span>: <span style="background-color:#fff0f0;color:#D20">your@email.here</span>
1932
1452
  <span style="color:#808">executables</span>:
1933
1453
  - <span style="background-color:#fff0f0;color:#D20">word_count</span>
@@ -1936,35 +1456,42 @@ Finished in 0.001130 seconds.
1936
1456
  <span style="color:#808">extra_rdoc_files</span>: <span style="background-color:#fff0f0;color:#D20">[]</span>
1937
1457
 
1938
1458
  <span style="color:#808">files</span>:
1939
- - <span style="background-color:#fff0f0;color:#D20">lib</span>
1940
1459
  - <span style="background-color:#fff0f0;color:#D20">lib/word_count.rb</span>
1941
- - <span style="background-color:#fff0f0;color:#D20">test</span>
1942
1460
  - <span style="background-color:#fff0f0;color:#D20">test/word_count.rb</span>
1943
- - <span style="background-color:#fff0f0;color:#D20">bin</span>
1944
1461
  - <span style="background-color:#fff0f0;color:#D20">bin/word_count</span>
1945
- - <span style="background-color:#fff0f0;color:#D20">Rakefile</span>
1946
1462
  - <span style="background-color:#fff0f0;color:#D20">LICENSE</span>
1947
- - <span style="background-color:#fff0f0;color:#D20">doc</span>
1463
+ - <span style="background-color:#fff0f0;color:#D20">rakefile</span>
1464
+ - <span style="background-color:#fff0f0;color:#D20">CREDITS</span>
1948
1465
  - <span style="background-color:#fff0f0;color:#D20">doc/usage.erb</span>
1949
1466
  - <span style="background-color:#fff0f0;color:#D20">doc/index.erb</span>
1950
1467
  - <span style="background-color:#fff0f0;color:#D20">doc/history.erb</span>
1951
1468
  - <span style="background-color:#fff0f0;color:#D20">doc/intro.erb</span>
1952
1469
  - <span style="background-color:#fff0f0;color:#D20">doc/index.xhtml</span>
1953
1470
  - <span style="background-color:#fff0f0;color:#D20">doc/setup.erb</span>
1954
- - <span style="background-color:#fff0f0;color:#D20">doc/api</span>
1471
+ - <span style="background-color:#fff0f0;color:#D20">doc/api/i/tree_bg.png</span>
1472
+ - <span style="background-color:#fff0f0;color:#D20">doc/api/i/results_bg.png</span>
1473
+ - <span style="background-color:#fff0f0;color:#D20">doc/api/i/arrows.png</span>
1955
1474
  - <span style="background-color:#fff0f0;color:#D20">doc/api/index.html</span>
1956
- - <span style="background-color:#fff0f0;color:#D20">doc/api/all-methods.html</span>
1957
- - <span style="background-color:#fff0f0;color:#D20">doc/api/app.js</span>
1958
- - <span style="background-color:#fff0f0;color:#D20">doc/api/syntax_highlight.css</span>
1959
- - <span style="background-color:#fff0f0;color:#D20">doc/api/readme.html</span>
1960
- - <span style="background-color:#fff0f0;color:#D20">doc/api/style.css</span>
1961
- - <span style="background-color:#fff0f0;color:#D20">doc/api/jquery.js</span>
1962
- - <span style="background-color:#fff0f0;color:#D20">doc/api/all-namespaces.html</span>
1475
+ - <span style="background-color:#fff0f0;color:#D20">doc/api/panel/index.html</span>
1476
+ - <span style="background-color:#fff0f0;color:#D20">doc/api/panel/search_index.js</span>
1477
+ - <span style="background-color:#fff0f0;color:#D20">doc/api/panel/tree.js</span>
1478
+ - <span style="background-color:#fff0f0;color:#D20">doc/api/css/panel.css</span>
1479
+ - <span style="background-color:#fff0f0;color:#D20">doc/api/css/reset.css</span>
1480
+ - <span style="background-color:#fff0f0;color:#D20">doc/api/css/main.css</span>
1481
+ - <span style="background-color:#fff0f0;color:#D20">doc/api/files/LICENSE.html</span>
1482
+ - <span style="background-color:#fff0f0;color:#D20">doc/api/files/lib/word_count_rb.html</span>
1483
+ - <span style="background-color:#fff0f0;color:#D20">doc/api/files/CREDITS.html</span>
1484
+ - <span style="background-color:#fff0f0;color:#D20">doc/api/created.rid</span>
1485
+ - <span style="background-color:#fff0f0;color:#D20">doc/api/js/main.js</span>
1486
+ - <span style="background-color:#fff0f0;color:#D20">doc/api/js/searchdoc.js</span>
1487
+ - <span style="background-color:#fff0f0;color:#D20">doc/api/js/jquery-1.3.2.min.js</span>
1488
+ - <span style="background-color:#fff0f0;color:#D20">doc/api/js/jquery-effect.js</span>
1963
1489
  - <span style="background-color:#fff0f0;color:#D20">doc/theory.erb</span>
1964
- - <span style="background-color:#fff0f0;color:#D20">lang</span>
1965
1490
  - <span style="background-color:#fff0f0;color:#D20">lang/phrases.yaml</span>
1966
1491
  <span style="color:#808">has_rdoc</span>: <span style="background-color:#fff0f0;color:#D20">true</span>
1967
1492
  <span style="color:#808">homepage</span>: <span style="background-color:#fff0f0;color:#D20">http://word_count.rubyforge.org</span>
1493
+ <span style="color:#808">licenses</span>: <span style="background-color:#fff0f0;color:#D20">[]</span>
1494
+
1968
1495
  <span style="color:#808">post_install_message</span>:
1969
1496
  <span style="color:#808">rdoc_options</span>: <span style="background-color:#fff0f0;color:#D20">[]</span>
1970
1497
 
@@ -1985,60 +1512,60 @@ Finished in 0.001130 seconds.
1985
1512
  <span style="color:#808">requirements</span>: <span style="background-color:#fff0f0;color:#D20">[]</span>
1986
1513
 
1987
1514
  <span style="color:#808">rubyforge_project</span>: <span style="background-color:#fff0f0;color:#D20">word_count</span>
1988
- <span style="color:#808">rubygems_version</span>: <span style="background-color:#fff0f0;color:#D20">1.3.1</span>
1515
+ <span style="color:#808">rubygems_version</span>: <span style="background-color:#fff0f0;color:#D20">1.3.2</span>
1989
1516
  <span style="color:#808">signing_key</span>:
1990
- <span style="color:#808">specification_version</span>: <span style="background-color:#fff0f0;color:#D20">2</span>
1991
- <span style="color:#808">summary</span>: <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">TODO: put a single line description of your project here.</span><span style="color:#710">&quot;</span></span>
1992
- <span style="color:#808">test_files</span>: <span style="background-color:#fff0f0;color:#D20">[]</span></pre></pre></p></div>
1993
- </div> <div class="section">
1994
- <a name="Publish-a-RubyGem"/><div class="nav" id="Publish-a-RubyGem"><a title="Reverse jump to listing" href="#rev:Publish-a-RubyGem">&equiv;</a><a title="Jump to previous segment" href="#Build-a-RubyGem">&#x25B3;</a><a title="Jump to next segment" href="#Announce-a-release">&#x25BD;</a><a title="Jump to this segment" href="#Publish-a-RubyGem">&#x25CE;</a></div>
1517
+ <span style="color:#808">specification_version</span>: <span style="background-color:#fff0f0;color:#D20">3</span>
1518
+ <span style="color:#808">summary</span>: <span style="background-color:#fff0f0;color:#D20">put a single line description of your project here</span>
1519
+ <span style="color:#808">test_files</span>: <span style="background-color:#fff0f0;color:#D20">[]</span></pre></ins></pre><p></p></div>
1520
+ </div><div class="section">
1521
+ <a name="Publish-a-RubyGem"/><div class="nav" id="Publish-a-RubyGem"><a title="Focus this segment" href="#Publish-a-RubyGem"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Build-a-RubyGem"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Announce-a-release"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Publish-a-RubyGem"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1995
1522
  <h4 class="title">
1996
1523
  3.3.7.2&nbsp;&nbsp;Publish a RubyGem
1997
1524
  </h4>
1998
- <div class="content"><p>You must first register your project on <a href='http://rubyforge.org'>RubyForge</a> before you can publish a RubyGem. If your RubyForge project name is different from your actual project name, then you should pass the <code class="code"><span style="color:#A60">:rubyforge_project</span></code> and <code class="code"><span style="color:#A60">:rubyforge_section</span></code> options to the <a href='api/Inochi.html#rake-class_method'><code class="code"><span style="color:#036;font-weight:bold">Inochi</span>.rake()</code> method</a>).</p>
1525
+ <div class="content"><p>You must first register your project on <a href='http://rubyforge.org'>RubyForge</a> before you can publish a RubyGem. If your RubyForge project name is different from your actual project name, then you should pass the <code class="line"><span style="color:#A60">:rubyforge_project</span></code> and <code class="line"><span style="color:#A60">:rubyforge_section</span></code> options to the <code class="line"><span style="color:#036;font-weight:bold">Inochi</span>.rake()</code> method.</p>
1999
1526
 
2000
1527
  <p>Publish a RubyGem by running:</p>
2001
1528
 
2002
- <p><pre># rake pub:pak</pre></p></div>
2003
- </div> <div class="section">
2004
- <a name="Announce-a-release"/><div class="nav" id="Announce-a-release"><a title="Reverse jump to listing" href="#rev:Announce-a-release">&equiv;</a><a title="Jump to previous segment" href="#Publish-a-RubyGem">&#x25B3;</a><a title="Jump to next segment" href="#Login-information">&#x25BD;</a><a title="Jump to this segment" href="#Announce-a-release">&#x25CE;</a></div>
1529
+ <pre># rake pub:gem</pre><p></p></div>
1530
+ </div><div class="section">
1531
+ <a name="Announce-a-release"/><div class="nav" id="Announce-a-release"><a title="Focus this segment" href="#Announce-a-release"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Publish-a-RubyGem"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Login-information"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Announce-a-release"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
2005
1532
  <h4 class="title">
2006
1533
  3.3.7.3&nbsp;&nbsp;Announce a release
2007
1534
  </h4>
2008
- <div class="content"><p>You must first provide your <a class="xref" href="#Login-information">Paragraph. &#8220;Login information&#8221;</a> to <strong>Inochi</strong>. If you do not want to do this, then see <a class="xref" href="#Manual-release-announcement">Section 3.3.7.3.1. &#8220;Manual release announcement&#8221;</a>.</p>
1535
+ <div class="content"><p>You must first provide your <a class="xref" href="#Login-information" title="Paragraph">Login information</a> to Inochi. If you do not want to do this, then see <a class="xref" href="#Manual-release-announcement" title="Section 3.3.7.3.1">Manual release announcement</a>.</p>
2009
1536
 
2010
1537
  <p>Announce a release by running:</p>
2011
1538
 
2012
- <p><pre># rake pub:ann</pre></p>
1539
+ <pre># rake pub:ann</pre><p></p>
2013
1540
 
2014
- <p><div class="paragraph">
2015
- <a name="Login-information"/><div class="nav" id="Login-information"><a title="Reverse jump to listing" href="#rev:Login-information">&equiv;</a><a title="Jump to previous segment" href="#Announce-a-release">&#x25B3;</a><a title="Jump to next segment" href="#Manual-release-announcement">&#x25BD;</a><a title="Jump to this segment" href="#Login-information">&#x25CE;</a></div>
1541
+ <div class="paragraph">
1542
+ <a name="Login-information"/><div class="nav" id="Login-information"><a title="Focus this segment" href="#Login-information"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Announce-a-release"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Manual-release-announcement"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Login-information"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
2016
1543
  <p class="title">Login information</p>
2017
- <div class="content"><p>In order to automate the announcement of releases, <strong>Inochi</strong> needs to know your login information for the <a href='http://raa.ruby-lang.org'>RAA (Ruby Application Archive)</a> and <a href='http://www.ruby-forum.com/forum/4'>RubyForum</a>, which serves as a gateway to the <a href='http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/'>ruby-talk mailing list</a>.</p>
1544
+ <div class="content"><p>In order to automate the announcement of releases, Inochi needs to know your login information for the <a href='http://raa.ruby-lang.org'>RAA (Ruby Application Archive)</a> and <a href='http://www.ruby-forum.com/forum/4'>RubyForum</a>, which serves as a gateway to the <a href='http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/'>ruby-talk mailing list</a>.</p>
2018
1545
 
2019
- <p>This information is expected to be stored in a <tt>~/.config/inochi/logins.yaml</tt> file (this location can be overridden by passing the <code class="code"><span style="color:#A60">:logins_file</span></code> option to the <a href='api/Inochi.html#rake-class_method'><code class="code"><span style="color:#036;font-weight:bold">Inochi</span>.rake()</code> method</a>), where <tt>~</tt> denotes the path to your home directory. This file is a <a href='http://yaml.kwiki.org/?YamlInFiveMinutes'>YAML document</a> containing the following parameters:</p>
1546
+ <p>This information is expected to be stored in a <tt>~/.config/inochi/logins.yaml</tt> file (this location can be overridden by passing the <code class="line"><span style="color:#A60">:logins_file</span></code> option to the <code class="line"><span style="color:#036;font-weight:bold">Inochi</span>.rake()</code> method), where <tt>~</tt> denotes the path to your home directory. This file is a <a href='http://yaml.kwiki.org/?YamlInFiveMinutes'>YAML document</a> containing the following parameters:</p>
2020
1547
 
2021
- <p><pre class="code" lang="yaml"><span style="color:#F00;background-color:#FAA">www.ruby-forum.com</span>:
1548
+ <p><ins><pre class="para" lang="yaml"><span style="color:#F00;background-color:#FAA">www.ruby-forum.com</span>:
2022
1549
  <span style="color:#808">user</span>: <span style="background-color:#fff0f0;color:#D20">YOUR_USERNAME_HERE</span>
2023
1550
  <span style="color:#808">pass</span>: <span style="background-color:#fff0f0;color:#D20">YOUR_PASSWORD_HERE</span>
2024
1551
 
2025
1552
  <span style="color:#F00;background-color:#FAA">raa.ruby-lang.org</span>:
2026
1553
  <span style="color:#808">pass</span>: <span style="background-color:#fff0f0;color:#D20">YOUR_PASSWORD_HERE</span>
2027
- </pre></p>
1554
+ </pre></ins></p>
2028
1555
 
2029
1556
  <p>For better security, you should ensure that this file is only readable and writable by you and is not accessible by anyone else. In a UNIX environment, this can be accomplished by running the following command:</p>
2030
1557
 
2031
1558
  <pre># chmod 0600 ~/.config/inochi/logins.yaml</pre></div>
2032
- </div> <div class="section">
2033
- <a name="Manual-release-announcement"/><div class="nav" id="Manual-release-announcement"><a title="Reverse jump to listing" href="#rev:Manual-release-announcement">&equiv;</a><a title="Jump to previous segment" href="#Login-information">&#x25B3;</a><a title="Jump to next segment" href="#Publish-the-documentation">&#x25BD;</a><a title="Jump to this segment" href="#Manual-release-announcement">&#x25CE;</a></div>
1559
+ </div><div class="section">
1560
+ <a name="Manual-release-announcement"/><div class="nav" id="Manual-release-announcement"><a title="Focus this segment" href="#Manual-release-announcement"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Login-information"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Publish-the-documentation"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Manual-release-announcement"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
2034
1561
  <h5 class="title">
2035
1562
  3.3.7.3.1&nbsp;&nbsp;Manual release announcement
2036
1563
  </h5>
2037
1564
  <div class="content"><p>Build release announcements by running:</p>
2038
1565
 
2039
- <p><pre># rake ann
2040
- (in /tmp/Inochi20090212-5946-1r29zno-0/word_count)
2041
- </pre></p>
1566
+ <pre># rake ann
1567
+ (in /tmp/rake20090504-12012-13p4oou-0/word_count)
1568
+ </pre><p></p>
2042
1569
 
2043
1570
  <p>This produces the following files in your project directory:</p>
2044
1571
 
@@ -2051,36 +1578,150 @@ Finished in 0.001130 seconds.
2051
1578
  </ul>
2052
1579
 
2053
1580
  <p>Now you can manually announce your release using these files.</p></div>
2054
- </div></p></div>
2055
- </div> <div class="section">
2056
- <a name="Publish-the-documentation"/><div class="nav" id="Publish-the-documentation"><a title="Reverse jump to listing" href="#rev:Publish-the-documentation">&equiv;</a><a title="Jump to previous segment" href="#Manual-release-announcement">&#x25B3;</a><a title="Jump to next segment" href="#History">&#x25BD;</a><a title="Jump to this segment" href="#Publish-the-documentation">&#x25CE;</a></div>
1581
+ </div><p> </p></div>
1582
+ </div><div class="section">
1583
+ <a name="Publish-the-documentation"/><div class="nav" id="Publish-the-documentation"><a title="Focus this segment" href="#Publish-the-documentation"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Manual-release-announcement"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#History"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Publish-the-documentation"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
2057
1584
  <h4 class="title">
2058
1585
  3.3.7.4&nbsp;&nbsp;Publish the documentation
2059
1586
  </h4>
2060
1587
  <div class="content"><p>Publish the user manual and API documentation by running:</p>
2061
1588
 
2062
- <p><pre># rake pub:doc</pre></p>
1589
+ <pre># rake pub:doc</pre><p></p>
2063
1590
 
2064
- <p>If your documentation website (see the <code class="code"><span style="color:#A60">:docsite</span></code> option for the <a href='api/Inochi.html#init-class_method'><code class="code"><span style="color:#036;font-weight:bold">Inochi</span>.init()</code> method</a>) is hosted on RubyForge, then the above command will automatically upload your project&#8217;s documentation to the correct place.</p></div>
2065
- </div></p></div>
2066
- </div></p></div>
2067
- </div></p></div>
2068
- </div><div class="chapter">
2069
- <a name="History"/><div class="nav" id="History"><a title="Reverse jump to listing" href="#rev:History">&equiv;</a><a title="Jump to previous segment" href="#Publish-the-documentation">&#x25B3;</a><a title="Jump to next segment" href="#Version-0.3.0-2009-02-12">&#x25BD;</a><a title="Jump to this segment" href="#History">&#x25CE;</a></div>
1591
+ <p>If your documentation website (see the <code class="line"><span style="color:#A60">:docsite</span></code> option for the <code class="line"><span style="color:#036;font-weight:bold">Inochi</span>.init()</code> method) is hosted on RubyForge, then the above command will automatically upload your project&#8217;s documentation to the correct place.</p></div>
1592
+ </div><p> </p></div>
1593
+ </div><p></p></div>
1594
+ </div><p> </p></div>
1595
+ </div>
1596
+
1597
+ <div class="chapter">
1598
+ <a name="History"/><div class="nav" id="History"><a title="Focus this segment" href="#History"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Publish-the-documentation"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Version-1.0.0-2009-05-03"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:History"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
2070
1599
  <h1 class="title">
2071
1600
  Chapter&nbsp;4
2072
1601
  <br/>
2073
1602
  <big>History</big>
2074
1603
  </h1>
2075
- <div class="content"><p><p><div class="section">
2076
- <a name="Version-0.3.0-2009-02-12"/><div class="nav" id="Version-0.3.0-2009-02-12"><a title="Reverse jump to listing" href="#rev:Version-0.3.0-2009-02-12">&equiv;</a><a title="Jump to previous segment" href="#History">&#x25B3;</a><a title="Jump to next segment" href="#New-features">&#x25BD;</a><a title="Jump to this segment" href="#Version-0.3.0-2009-02-12">&#x25CE;</a></div>
1604
+ <div class="content"><div class="section">
1605
+ <a name="Version-1.0.0-2009-05-03"/><div class="nav" id="Version-1.0.0-2009-05-03"><a title="Focus this segment" href="#Version-1.0.0-2009-05-03"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#History"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Incompatible-changes"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Version-1.0.0-2009-05-03"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
2077
1606
  <h2 class="title">
2078
- 4.1&nbsp;&nbsp;Version 0.3.0 (2009-02-12)
1607
+ 4.1&nbsp;&nbsp;Version 1.0.0 (2009-05-03)
1608
+ </h2>
1609
+ <div class="content"><p>This release allows your gems to not depend on Inochi, lets you choose which unit testing library to use, adds new utility libraries and rake tasks, and fixes some bugs.</p>
1610
+
1611
+ <div class="paragraph">
1612
+ <a name="Incompatible-changes"/><div class="nav" id="Incompatible-changes"><a title="Focus this segment" href="#Incompatible-changes"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Version-1.0.0-2009-05-03"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#New-features"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Incompatible-changes"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1613
+ <p class="title">Incompatible changes</p>
1614
+ <div class="content"><ul>
1615
+ <li>
1616
+ <p>Your program is no longer halted by <code class="line"><span style="color:#036;font-weight:bold">Inochi</span>.init()</code> and <code class="line"><span style="color:#036;font-weight:bold">Inochi</span>.rake()</code> if gem dependencies are not satified. A warning is issued instead.</p>
1617
+ </li>
1618
+
1619
+ <li>
1620
+ <p>The <code class="line">project_summary</code> and <code class="line">project_history</code> nodes, which are provided by <code class="line"><span style="color:#036;font-weight:bold">Inochi</span>.book()</code> to the user manual, have been renamed to <code class="line">project</code> and &#8220;history&#8221; respectively.</p>
1621
+ </li>
1622
+
1623
+ <li>
1624
+ <p>ERBook 7.0.0 is now used for generating the user manual. This is a major step up from the previous version, and so it has incompatible changes. See its release notes for details.</p>
1625
+ </li>
1626
+
1627
+ <li>
1628
+ <p><a href='http://github.com/voloko/sdoc/tree/master'>SDoc</a> is now used to generate API documentation instead of <a href='http://yard.rubyforge.org'>YARD</a>. If you link to particular classes or methods in the generated API documentation, be sure to update your link addresses!</p>
1629
+ </li>
1630
+
1631
+ <li>
1632
+ <p>Minitest is no longer the default testing library. You must specify which testing library you want to use via the <code class="line"><span style="color:#A60">:test_with</span></code> option of the <code class="line"><span style="color:#036;font-weight:bold">Inochi</span>.rake()</code> method. See <a class="xref" href="#Test-execution" title="Paragraph">Test execution</a> for details.</p>
1633
+ </li>
1634
+
1635
+ <li>
1636
+ <p>The &#8220;pak&#8221; rake task, which is provided by <code class="line"><span style="color:#036;font-weight:bold">Inochi</span>.rake()</code>, has been renamed to &#8220;gem&#8221;.</p>
1637
+ </li>
1638
+ </ul></div>
1639
+ </div><div class="paragraph">
1640
+ <a name="New-features"/><div class="nav" id="New-features"><a title="Focus this segment" href="#New-features"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Incompatible-changes"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Bug-fixes"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:New-features"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1641
+ <p class="title">New features</p>
1642
+ <div class="content"><ul>
1643
+ <li>
1644
+ <p>Add <code class="line"><span style="color:#A60">:inochi_consumer</span></code> and <code class="line"><span style="color:#A60">:inochi_producer</span></code> options to <code class="line"><span style="color:#036;font-weight:bold">Inochi</span>.rake()</code> which allows you to <em>avoid</em> having Inochi as a runtime and development dependency, respectively, for your project&#8217;s gem.</p>
1645
+
1646
+ <p>This is useful if you just want to use Inochi facilities for building a gem for a pure Ruby library that does not have any need for Inochi&#8217;s runtime convenience facilities.</p>
1647
+ </li>
1648
+
1649
+ <li>
1650
+ <p>Add <code class="line"><span style="color:#A60">:develop</span></code> option for <code class="line"><span style="color:#036;font-weight:bold">Inochi</span>.init()</code> which lets you specify RubyGems as development dependencies in the same way as the <code class="line"><span style="color:#A60">:require</span></code> option.</p>
1651
+ </li>
1652
+
1653
+ <li>
1654
+ <p>Add &#8220;lint&#8221; rake task which reports <a href='http://www.infoq.com/news/2008/11/static-analysis-tool-roundup'>code quality statistics</a>.</p>
1655
+ </li>
1656
+
1657
+ <li>
1658
+ <p>Add &#8220;test:cov&#8221; rake task which reports code coverage statistics.</p>
1659
+ </li>
1660
+
1661
+ <li>
1662
+ <p>Add &#8220;test:ruby&#8221; task which runs all tests with <a href='http://www.infoq.com/news/2008/02/multiruby-testing'>multiruby</a>.</p>
1663
+ </li>
1664
+
1665
+ <li>
1666
+ <p>Add &#8216;rake opts=&#8217; environment variable, which lets you specify command-line arguments directly to the Ruby interpreter, for all test* rake tasks.</p>
1667
+ </li>
1668
+
1669
+ <li>
1670
+ <p>Add <tt>inochi/util/combo</tt> combinatorics library for enumerations, permutations, and combinations which are all useful in exhaustive brute-force unit testing.</p>
1671
+ </li>
1672
+
1673
+ <li>
1674
+ <p>Add <tt>inochi/util/tempdir</tt> library which really should be in the Ruby standard library.</p>
1675
+ </li>
1676
+ </ul></div>
1677
+ </div><div class="paragraph">
1678
+ <a name="Bug-fixes"/><div class="nav" id="Bug-fixes"><a title="Focus this segment" href="#Bug-fixes"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#New-features"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Housekeeping"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Bug-fixes"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1679
+ <p class="title">Bug fixes</p>
1680
+ <div class="content"><ul>
1681
+ <li>
1682
+ <p>The &#8220;enable email notification&#8221; checkbox was not activated properly when posting announcement to ruby-talk mailing list via Ruby-Forum.</p>
1683
+ </li>
1684
+
1685
+ <li>
1686
+ <p>Mark gems needed by <code class="line"><span style="color:#036;font-weight:bold">Inochi</span>.rake()</code> as <em>development</em> dependencies.</p>
1687
+
1688
+ <p>A user would now have to install Inochi using <pre>gem install --development</pre> to install all these gems. This also solves the recursive dependency problem between Inochi and ERBook.</p>
1689
+ </li>
1690
+
1691
+ <li>
1692
+ <p>Set executable in gem specification only if it exists.</p>
1693
+ </li>
1694
+
1695
+ <li>
1696
+ <p>Fix parsing of stack trace in Ruby 1.9.</p>
1697
+ </li>
1698
+ </ul></div>
1699
+ </div><div class="paragraph">
1700
+ <a name="Housekeeping"/><div class="nav" id="Housekeeping"><a title="Focus this segment" href="#Housekeeping"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Bug-fixes"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Version-0.3.0-2009-02-12"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Housekeeping"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1701
+ <p class="title">Housekeeping</p>
1702
+ <div class="content"><ul>
1703
+ <li>
1704
+ <p>Write contributor names in <tt>CREDITS</tt> file instead of in the user manual.</p>
1705
+ </li>
1706
+
1707
+ <li>
1708
+ <p>Use completely lowercase name for <tt>Rakefile</tt>.</p>
1709
+ </li>
1710
+
1711
+ <li>
1712
+ <p>Add copyright statement at the top of every source file.</p>
1713
+ </li>
1714
+ </ul></div>
1715
+ </div><p> </p></div>
1716
+ </div><div class="section">
1717
+ <a name="Version-0.3.0-2009-02-12"/><div class="nav" id="Version-0.3.0-2009-02-12"><a title="Focus this segment" href="#Version-0.3.0-2009-02-12"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Housekeeping"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#New-features-609439008"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Version-0.3.0-2009-02-12"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
1718
+ <h2 class="title">
1719
+ 4.2&nbsp;&nbsp;Version 0.3.0 (2009-02-12)
2079
1720
  </h2>
2080
1721
  <div class="content"><p>This release adds support for <a class="xref" href="#Translate-your-project" title="Section 3.3.6. &quot;Translate your project&quot;">language translations / internationalization / multilingualization</a>, improves the user interface, and fixes a show-stopper bug for Windows users.</p>
2081
1722
 
2082
- <p><div class="paragraph">
2083
- <a name="New-features"/><div class="nav" id="New-features"><a title="Reverse jump to listing" href="#rev:New-features">&equiv;</a><a title="Jump to previous segment" href="#Version-0.3.0-2009-02-12">&#x25B3;</a><a title="Jump to next segment" href="#Bug-fixes">&#x25BD;</a><a title="Jump to this segment" href="#New-features">&#x25CE;</a></div>
1723
+ <div class="paragraph">
1724
+ <a name="New-features-609439008"/><div class="nav" id="New-features-609439008"><a title="Focus this segment" href="#New-features-609439008"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Version-0.3.0-2009-02-12"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Bug-fixes-609465768"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:New-features-609439008"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
2084
1725
  <p class="title">New features</p>
2085
1726
  <div class="content"><ul>
2086
1727
  <li>
@@ -2105,12 +1746,12 @@ Finished in 0.001130 seconds.
2105
1746
  <p>Notify user when attempting to publish announcements in the &#8220;pub&#8221; Rake tasks.</p>
2106
1747
  </li>
2107
1748
  </ul></div>
2108
- </div> <div class="paragraph">
2109
- <a name="Bug-fixes"/><div class="nav" id="Bug-fixes"><a title="Reverse jump to listing" href="#rev:Bug-fixes">&equiv;</a><a title="Jump to previous segment" href="#New-features">&#x25B3;</a><a title="Jump to next segment" href="#Housekeeping">&#x25BD;</a><a title="Jump to this segment" href="#Bug-fixes">&#x25CE;</a></div>
1749
+ </div><div class="paragraph">
1750
+ <a name="Bug-fixes-609465768"/><div class="nav" id="Bug-fixes-609465768"><a title="Focus this segment" href="#Bug-fixes-609465768"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#New-features-609439008"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Housekeeping-609499748"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Bug-fixes-609465768"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
2110
1751
  <p class="title">Bug fixes</p>
2111
1752
  <div class="content"><ul>
2112
1753
  <li>
2113
- <p>In Windows, <code class="code"><span style="color:#036;font-weight:bold">ENV</span>[<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">USERPROFILE</span><span style="color:#710">'</span></span>]</code> gives the path to the user&#8217;s home directory and <code class="code"><span style="color:#036;font-weight:bold">ENV</span>[<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">HOME</span><span style="color:#710">'</span></span>]</code> is not defined.</p>
1754
+ <p>In Windows, <code class="line"><span style="color:#036;font-weight:bold">ENV</span>[<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">USERPROFILE</span><span style="color:#710">'</span></span>]</code> gives the path to the user&#8217;s home directory and <code class="line"><span style="color:#036;font-weight:bold">ENV</span>[<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">HOME</span><span style="color:#710">'</span></span>]</code> is not defined.</p>
2114
1755
  </li>
2115
1756
 
2116
1757
  <li>
@@ -2118,11 +1759,11 @@ Finished in 0.001130 seconds.
2118
1759
 
2119
1760
  <pre>gem install --force</pre>
2120
1761
 
2121
- <p>You should update <a class="xref" href="#Setup">Chapter 2. &#8220;Setup&#8221;</a> in your projects&#8217; user manuals accordingly.</p>
1762
+ <p>You should update <a class="xref" href="#Setup" title="Chapter 2">Setup</a> in your projects&#8217; user manuals accordingly.</p>
2122
1763
  </li>
2123
1764
  </ul></div>
2124
- </div> <div class="paragraph">
2125
- <a name="Housekeeping"/><div class="nav" id="Housekeeping"><a title="Reverse jump to listing" href="#rev:Housekeeping">&equiv;</a><a title="Jump to previous segment" href="#Bug-fixes">&#x25B3;</a><a title="Jump to next segment" href="#Version-0.2.0-2009-01-25">&#x25BD;</a><a title="Jump to this segment" href="#Housekeeping">&#x25CE;</a></div>
1765
+ </div><div class="paragraph">
1766
+ <a name="Housekeeping-609499748"/><div class="nav" id="Housekeeping-609499748"><a title="Focus this segment" href="#Housekeeping-609499748"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Bug-fixes-609465768"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Version-0.2.0-2009-01-25"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Housekeeping-609499748"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
2126
1767
  <p class="title">Housekeeping</p>
2127
1768
  <div class="content"><ul>
2128
1769
  <li>
@@ -2145,16 +1786,16 @@ Finished in 0.001130 seconds.
2145
1786
  <p>Mention that the project license is ISC for the reader&#8217;s convenience.</p>
2146
1787
  </li>
2147
1788
  </ul></div>
2148
- </div></p></div>
2149
- </div> <div class="section">
2150
- <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">&equiv;</a><a title="Jump to previous segment" href="#Housekeeping">&#x25B3;</a><a title="Jump to next segment" href="#New-features-608879778">&#x25BD;</a><a title="Jump to this segment" href="#Version-0.2.0-2009-01-25">&#x25CE;</a></div>
1789
+ </div><p> </p></div>
1790
+ </div><div class="section">
1791
+ <a name="Version-0.2.0-2009-01-25"/><div class="nav" id="Version-0.2.0-2009-01-25"><a title="Focus this segment" href="#Version-0.2.0-2009-01-25"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Housekeeping-609499748"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#New-features-609532608"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Version-0.2.0-2009-01-25"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
2151
1792
  <h2 class="title">
2152
- 4.1&nbsp;&nbsp;Version 0.2.0 (2009-01-25)
1793
+ 4.3&nbsp;&nbsp;Version 0.2.0 (2009-01-25)
2153
1794
  </h2>
2154
1795
  <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>
2155
1796
 
2156
- <p><div class="paragraph">
2157
- <a name="New-features-608879778"/><div class="nav" id="New-features-608879778"><a title="Reverse jump to listing" href="#rev:New-features-608879778">&equiv;</a><a title="Jump to previous segment" href="#Version-0.2.0-2009-01-25">&#x25B3;</a><a title="Jump to next segment" href="#Bug-fixes-608927278">&#x25BD;</a><a title="Jump to this segment" href="#New-features-608879778">&#x25CE;</a></div>
1797
+ <div class="paragraph">
1798
+ <a name="New-features-609532608"/><div class="nav" id="New-features-609532608"><a title="Focus this segment" href="#New-features-609532608"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Version-0.2.0-2009-01-25"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Bug-fixes-609551988"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:New-features-609532608"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
2158
1799
  <p class="title">New features</p>
2159
1800
  <div class="content"><ul>
2160
1801
  <li>
@@ -2181,13 +1822,13 @@ Finished in 0.001130 seconds.
2181
1822
  <li>
2182
1823
  <p>Allow project authors to be specified via</p>
2183
1824
 
2184
- <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> =&gt; [[<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">name</span><span style="color:#710">'</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">mail</span><span style="color:#710">'</span></span>]]</code></p>
1825
+ <p><code class="line"><span style="color:#036;font-weight:bold">Inochi</span>.init <span style="color:#A60">:YourProject</span>, <span style="color:#A60">:authors</span> =&gt; [[<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">name</span><span style="color:#710">'</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">mail</span><span style="color:#710">'</span></span>]]</code></p>
2185
1826
 
2186
1827
  <p>(Florian Gilcher)</p>
2187
1828
  </li>
2188
1829
  </ul></div>
2189
- </div> <div class="paragraph">
2190
- <a name="Bug-fixes-608927278"/><div class="nav" id="Bug-fixes-608927278"><a title="Reverse jump to listing" href="#rev:Bug-fixes-608927278">&equiv;</a><a title="Jump to previous segment" href="#New-features-608879778">&#x25B3;</a><a title="Jump to next segment" href="#Housekeeping-608956548">&#x25BD;</a><a title="Jump to this segment" href="#Bug-fixes-608927278">&#x25CE;</a></div>
1830
+ </div><div class="paragraph">
1831
+ <a name="Bug-fixes-609551988"/><div class="nav" id="Bug-fixes-609551988"><a title="Focus this segment" href="#Bug-fixes-609551988"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#New-features-609532608"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Housekeeping-609561708"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Bug-fixes-609551988"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
2191
1832
  <p class="title">Bug fixes</p>
2192
1833
  <div class="content"><ul>
2193
1834
  <li>
@@ -2195,7 +1836,7 @@ Finished in 0.001130 seconds.
2195
1836
  </li>
2196
1837
 
2197
1838
  <li>
2198
- <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>
1839
+ <p>Use <code class="line"><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>
2199
1840
  </li>
2200
1841
 
2201
1842
  <li>
@@ -2206,50 +1847,50 @@ Finished in 0.001130 seconds.
2206
1847
  <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>
2207
1848
  </li>
2208
1849
  </ul></div>
2209
- </div> <div class="paragraph">
2210
- <a name="Housekeeping-608956548"/><div class="nav" id="Housekeeping-608956548"><a title="Reverse jump to listing" href="#rev:Housekeeping-608956548">&equiv;</a><a title="Jump to previous segment" href="#Bug-fixes-608927278">&#x25B3;</a><a title="Jump to next segment" href="#Version-0.1.0-2009-01-13">&#x25BD;</a><a title="Jump to this segment" href="#Housekeeping-608956548">&#x25CE;</a></div>
1850
+ </div><div class="paragraph">
1851
+ <a name="Housekeeping-609561708"/><div class="nav" id="Housekeeping-609561708"><a title="Focus this segment" href="#Housekeeping-609561708"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Bug-fixes-609551988"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Version-0.1.0-2009-01-13"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Housekeeping-609561708"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
2211
1852
  <p class="title">Housekeeping</p>
2212
1853
  <div class="content"><ul>
2213
1854
  <li>Added unit tests for utility methods provided by the <strong>Inochi</strong> module: project name calculation and CamelCase to snake_case conversion.</li>
2214
1855
  </ul></div>
2215
- </div></p></div>
2216
- </div> <div class="section">
2217
- <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">&equiv;</a><a title="Jump to previous segment" href="#Housekeeping-608956548">&#x25B3;</a><a title="Jump to next segment" href="#New-features-609008278">&#x25BD;</a><a title="Jump to this segment" href="#Version-0.1.0-2009-01-13">&#x25CE;</a></div>
1856
+ </div><p> </p></div>
1857
+ </div><div class="section">
1858
+ <a name="Version-0.1.0-2009-01-13"/><div class="nav" id="Version-0.1.0-2009-01-13"><a title="Focus this segment" href="#Version-0.1.0-2009-01-13"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Housekeeping-609561708"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#New-features-609595238"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Version-0.1.0-2009-01-13"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
2218
1859
  <h2 class="title">
2219
- 4.1&nbsp;&nbsp;Version 0.1.0 (2009-01-13)
1860
+ 4.4&nbsp;&nbsp;Version 0.1.0 (2009-01-13)
2220
1861
  </h2>
2221
1862
  <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>
2222
1863
 
2223
- <p><div class="paragraph">
2224
- <a name="New-features-609008278"/><div class="nav" id="New-features-609008278"><a title="Reverse jump to listing" href="#rev:New-features-609008278">&equiv;</a><a title="Jump to previous segment" href="#Version-0.1.0-2009-01-13">&#x25B3;</a><a title="Jump to next segment" href="#Bug-fixes-609028008">&#x25BD;</a><a title="Jump to this segment" href="#New-features-609008278">&#x25CE;</a></div>
1864
+ <div class="paragraph">
1865
+ <a name="New-features-609595238"/><div class="nav" id="New-features-609595238"><a title="Focus this segment" href="#New-features-609595238"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Version-0.1.0-2009-01-13"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Bug-fixes-609627068"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:New-features-609595238"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
2225
1866
  <p class="title">New features</p>
2226
1867
  <div class="content"><ul>
2227
- <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&#8217;s <code class="code"><span style="color:#036;font-weight:bold">VERSION</span></code> constant.</li>
1868
+ <li><code class="line"><span style="color:#036;font-weight:bold">Inochi</span>.init()</code> now adds <code class="line"><span style="color:#888">#major()</span></code>, <code class="line"><span style="color:#888">#series()</span></code>, and <code class="line"><span style="color:#888">#requirement()</span></code> instance methods to a project&#8217;s <code class="line"><span style="color:#036;font-weight:bold">VERSION</span></code> constant.</li>
2228
1869
  </ul></div>
2229
- </div> <div class="paragraph">
2230
- <a name="Bug-fixes-609028008"/><div class="nav" id="Bug-fixes-609028008"><a title="Reverse jump to listing" href="#rev:Bug-fixes-609028008">&equiv;</a><a title="Jump to previous segment" href="#New-features-609008278">&#x25B3;</a><a title="Jump to next segment" href="#Version-0.0.1-2009-01-13">&#x25BD;</a><a title="Jump to this segment" href="#Bug-fixes-609028008">&#x25CE;</a></div>
1870
+ </div><div class="paragraph">
1871
+ <a name="Bug-fixes-609627068"/><div class="nav" id="Bug-fixes-609627068"><a title="Focus this segment" href="#Bug-fixes-609627068"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#New-features-609595238"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Version-0.0.1-2009-01-13"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Bug-fixes-609627068"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
2231
1872
  <p class="title">Bug fixes</p>
2232
1873
  <div class="content"><ul>
2233
1874
  <li>
2234
- <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>
1875
+ <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="line">gem install</code> command for <strong>Inochi</strong>.</p>
2235
1876
 
2236
- <p><a class="xref" href="#Installation">Section 2.2. &#8220;Installation&#8221;</a> has been updated accordingly.</p>
1877
+ <p><a class="xref" href="#Installation" title="Section 2.2">Installation</a> has been updated accordingly.</p>
2237
1878
  </li>
2238
1879
 
2239
1880
  <li>
2240
1881
  <p>Add forgotten Rake dependency for <strong>Inochi</strong> gem.</p>
2241
1882
  </li>
2242
1883
  </ul></div>
2243
- </div></p></div>
2244
- </div> <div class="section">
2245
- <a name="Version-0.0.1-2009-01-13"/><div class="nav" id="Version-0.0.1-2009-01-13"><a title="Reverse jump to listing" href="#rev:Version-0.0.1-2009-01-13">&equiv;</a><a title="Jump to previous segment" href="#Bug-fixes-609028008">&#x25B3;</a><a title="Jump to next segment" href="#Bug-fixes-609075888">&#x25BD;</a><a title="Jump to this segment" href="#Version-0.0.1-2009-01-13">&#x25CE;</a></div>
1884
+ </div><p> </p></div>
1885
+ </div><div class="section">
1886
+ <a name="Version-0.0.1-2009-01-13"/><div class="nav" id="Version-0.0.1-2009-01-13"><a title="Focus this segment" href="#Version-0.0.1-2009-01-13"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Bug-fixes-609627068"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Bug-fixes-609677068"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Version-0.0.1-2009-01-13"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
2246
1887
  <h2 class="title">
2247
- 4.1&nbsp;&nbsp;Version 0.0.1 (2009-01-13)
1888
+ 4.5&nbsp;&nbsp;Version 0.0.1 (2009-01-13)
2248
1889
  </h2>
2249
1890
  <div class="content"><p>This release fixes some show-stopper bugs.</p>
2250
1891
 
2251
- <p><div class="paragraph">
2252
- <a name="Bug-fixes-609075888"/><div class="nav" id="Bug-fixes-609075888"><a title="Reverse jump to listing" href="#rev:Bug-fixes-609075888">&equiv;</a><a title="Jump to previous segment" href="#Version-0.0.1-2009-01-13">&#x25B3;</a><a title="Jump to next segment" href="#Housekeeping-609091378">&#x25BD;</a><a title="Jump to this segment" href="#Bug-fixes-609075888">&#x25CE;</a></div>
1892
+ <div class="paragraph">
1893
+ <a name="Bug-fixes-609677068"/><div class="nav" id="Bug-fixes-609677068"><a title="Focus this segment" href="#Bug-fixes-609677068"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Version-0.0.1-2009-01-13"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Housekeeping-609697358"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Bug-fixes-609677068"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
2253
1894
  <p class="title">Bug fixes</p>
2254
1895
  <div class="content"><ul>
2255
1896
  <li>
@@ -2259,64 +1900,84 @@ Finished in 0.001130 seconds.
2259
1900
  <li>
2260
1901
  <p>There was a <a href='http://www.ruby-forum.com/topic/176173#771281'>circular dependency problem</a> when installing the <strong>Inochi</strong> gem. (Florian Gilcher)</p>
2261
1902
 
2262
- <p>The solution is to specify the <tt>--force</tt> option when installing the gem. <a class="xref" href="#Installation">Section 2.2. &#8220;Installation&#8221;</a> has been updated accordingly.</p>
1903
+ <p>The solution is to specify the <tt>--force</tt> option when installing the gem. <a class="xref" href="#Installation" title="Section 2.2">Installation</a> has been updated accordingly.</p>
2263
1904
  </li>
2264
1905
 
2265
1906
  <li>
2266
1907
  <p>Generated project scaffolds now check against the major version of the <strong>Inochi</strong> gem, to avoid runtime version conflicts.</p>
2267
1908
  </li>
2268
1909
  </ul></div>
2269
- </div> <div class="paragraph">
2270
- <a name="Housekeeping-609091378"/><div class="nav" id="Housekeeping-609091378"><a title="Reverse jump to listing" href="#rev:Housekeeping-609091378">&equiv;</a><a title="Jump to previous segment" href="#Bug-fixes-609075888">&#x25B3;</a><a title="Jump to next segment" href="#Version-0.0.0-2009-01-13">&#x25BD;</a><a title="Jump to this segment" href="#Housekeeping-609091378">&#x25CE;</a></div>
1910
+ </div><div class="paragraph">
1911
+ <a name="Housekeeping-609697358"/><div class="nav" id="Housekeeping-609697358"><a title="Focus this segment" href="#Housekeeping-609697358"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Bug-fixes-609677068"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Focus next segment" href="#Version-0.0.0-2009-01-13"><img class="icon" alt="&darr;" src="&icon_nav_next;"/></a> <a title="Return to listing" href="#rev:Housekeeping-609697358"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
2271
1912
  <p class="title">Housekeeping</p>
2272
1913
  <div class="content"><ul>
2273
- <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>
1914
+ <li>Only add project libraries to <code class="line"><span style="color:#d70;font-weight:bold">$LOAD_PATH</span></code> if not already there.</li>
2274
1915
  </ul></div>
2275
- </div></p></div>
2276
- </div> <div class="section">
2277
- <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">&equiv;</a><a title="Jump to previous segment" href="#Housekeeping-609091378">&#x25B3;</a>&#x25BD;<a title="Jump to this segment" href="#Version-0.0.0-2009-01-13">&#x25CE;</a></div>
1916
+ </div><p> </p></div>
1917
+ </div><div class="section">
1918
+ <a name="Version-0.0.0-2009-01-13"/><div class="nav" id="Version-0.0.0-2009-01-13"><a title="Focus this segment" href="#Version-0.0.0-2009-01-13"><img class="icon" alt="&lowast;" src="&icon_nav_here;"/></a> <a title="Focus previous segment" href="#Housekeeping-609697358"><img class="icon" alt="&uarr;" src="&icon_nav_prev;"/></a> <a title="Return to listing" href="#rev:Version-0.0.0-2009-01-13"><img class="icon" alt="&equiv;" src="&icon_nav_list;"/></a></div>
2278
1919
  <h2 class="title">
2279
- 4.1&nbsp;&nbsp;Version 0.0.0 (2009-01-13)
1920
+ 4.6&nbsp;&nbsp;Version 0.0.0 (2009-01-13)
2280
1921
  </h2>
2281
1922
  <div class="content"><p>This is the first release of <strong>Inochi</strong>.</p>
2282
1923
 
2283
1924
  <p>Happy birthday!</p></div>
2284
- </div></p></p></div>
2285
- </div></div>
1925
+ </div><p></p><p></p></div>
1926
+ </div>
1927
+ </div>
2286
1928
 
2287
1929
 
2288
1930
  <br style="display: none"/>
2289
1931
  <hr style="display: none"/>
2290
1932
  <br style="display: none"/>
2291
1933
 
2292
-
2293
- <div id="footer">
2294
-
2295
-
2296
- <div id="footer-credits">
2297
- <p>
2298
- <img class="icon" src="&icon_caution;" alt="caution"/>
2299
- <img class="icon" src="&icon_tip;" alt="tip"/>
2300
- <img class="icon" src="&icon_important;" alt="important"/>
2301
- <img class="icon" src="&icon_note;" alt="note"/>
2302
- <img class="icon" src="&icon_warning;" alt="warning"/>
2303
- <img class="icon" src="&icon_quote;" alt="quote"/>
2304
1934
 
2305
- <br/>
2306
-
2307
- The icons shown above are part of <a href="http://tango.freedesktop.org/Tango_Icon_Library">Tango Icon Theme</a>, which is copyright &copy; 2005 <a href="http://tango.freedesktop.org">Tango Desktop Project</a> and is distributed under <a href="http://creativecommons.org/licenses/by-sa/2.5/">Creative Commons Attribution-ShareAlike 2.5 License Agreement</a>.
2308
- </p>
2309
-
2310
- <p>
2311
- <img class="icon" src="&icon_link;" alt="link"/>
2312
-
2313
- <br/>
2314
-
2315
- The icons shown above are part of <a href="http://www.mediawiki.org/wiki/MediaWiki">MediaWiki</a>, which is copyright &copy; 2007 <a href="https://www.ohloh.net/projects/mediawiki/contributors">MediaWiki contributors</a> and is distributed under <a href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html">GNU General Public License, version 2</a>.
2316
- </p>
2317
- </div>
2318
1935
 
1936
+
1937
+ <div id="footer">
1938
+
1939
+ Generated by <a href="http://snk.tuxfamily.org/lib/erbook/">ERBook 7.0.0</a> on Mon May 04 01:16:05 -0700 2009.
1940
+
1941
+ <div id="footer-credits">
1942
+ <p>
1943
+ <img class="icon" alt="here_frag" src="&icon_here_frag;"/>
1944
+ <img class="icon" alt="caution" src="&icon_caution;"/>
1945
+ <img class="icon" alt="nav_here" src="&icon_nav_here;"/>
1946
+ <img class="icon" alt="nav_prev" src="&icon_nav_prev;"/>
1947
+ <img class="icon" alt="tip" src="&icon_tip;"/>
1948
+ <img class="icon" alt="important" src="&icon_important;"/>
1949
+ <img class="icon" alt="nav_list" src="&icon_nav_list;"/>
1950
+ <img class="icon" alt="note" src="&icon_note;"/>
1951
+ <img class="icon" alt="warning" src="&icon_warning;"/>
1952
+ <img class="icon" alt="quote" src="&icon_quote;"/>
1953
+ <img class="icon" alt="nav_next" src="&icon_nav_next;"/>
1954
+
1955
+ <br/>
1956
+
1957
+ The icons shown above are part of <a href="http://tango.freedesktop.org/Tango_Icon_Library">Tango Icon Theme</a>, which is copyright &copy; 2005 <a href="http://tango.freedesktop.org">Tango Desktop Project</a> and is distributed under <a href="http://creativecommons.org/licenses/by-sa/2.5/">Creative Commons Attribution-ShareAlike 2.5 License Agreement</a>.
1958
+ </p>
1959
+
1960
+ <p>
1961
+ <img class="icon" alt="hyperlink" src="&icon_hyperlink;"/>
1962
+
1963
+ <br/>
1964
+
1965
+ The icons shown above are part of <a href="http://www.mediawiki.org/wiki/MediaWiki">MediaWiki</a>, which is copyright &copy; 2007 <a href="https://www.ohloh.net/projects/mediawiki/contributors">MediaWiki contributors</a> and is distributed under <a href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html">GNU General Public License, version 2</a>.
1966
+ </p>
1967
+
1968
+ <p style="margin-top: 3em">
1969
+ <a href="http://validator.w3.org/check?uri=referer"><img
1970
+ src="http://www.w3.org/Icons/valid-xhtml10-blue"
1971
+ alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a>
1972
+
1973
+ <a href="http://jigsaw.w3.org/css-validator/check/referer?profile=css3"><img
1974
+ src="http://jigsaw.w3.org/css-validator/images/vcss-blue"
1975
+ alt="Valid CSS!" height="31" width="88" /></a>
1976
+ </p>
1977
+ </div>
1978
+
2319
1979
  </div>
1980
+
2320
1981
 
2321
1982
  </div>
2322
1983
  </body>