dfect 1.1.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. data/CREDITS +2 -2
  2. data/HISTORY +306 -0
  3. data/INSTALL +35 -0
  4. data/README +95 -0
  5. data/USAGE +393 -0
  6. data/doc/api/Dfect.html +3179 -0
  7. data/doc/api/Object.html +107 -0
  8. data/doc/api/_index.html +107 -0
  9. data/doc/api/class_list.html +36 -0
  10. data/doc/api/css/common.css +1 -0
  11. data/doc/api/css/full_list.css +50 -0
  12. data/doc/api/css/style.css +268 -0
  13. data/doc/api/file.LICENSE.html +73 -0
  14. data/doc/api/file_list.html +38 -0
  15. data/doc/api/frames.html +13 -0
  16. data/doc/api/index.html +72 -13
  17. data/doc/api/js/app.js +99 -0
  18. data/doc/api/js/full_list.js +106 -0
  19. data/doc/api/js/{jquery-1.3.2.min.js → jquery.js} +0 -0
  20. data/doc/api/method_list.html +339 -0
  21. data/doc/api/top-level-namespace.html +87 -0
  22. data/doc/index.erb +16 -9
  23. data/doc/index.html +1057 -726
  24. data/lib/dfect.rb +431 -284
  25. data/lib/dfect/auto.rb +2 -6
  26. data/lib/dfect/inochi.rb +48 -0
  27. data/lib/dfect/inochi.yaml +75 -0
  28. data/lib/dfect/mini.rb +1 -5
  29. data/lib/dfect/spec.rb +6 -13
  30. data/lib/dfect/unit.rb +21 -33
  31. data/test/dfect/inochi_test.rb +17 -0
  32. data/test/{dfect.rb → dfect_test.rb} +167 -7
  33. data/test/runner +25 -0
  34. data/test/test_helper.rb +1 -0
  35. metadata +43 -55
  36. data/doc/api/apple-touch-icon.png +0 -0
  37. data/doc/api/classes/Class.html +0 -73
  38. data/doc/api/classes/Dfect.html +0 -1245
  39. data/doc/api/classes/Kernel.html +0 -322
  40. data/doc/api/classes/Object.html +0 -72
  41. data/doc/api/created.rid +0 -1
  42. data/doc/api/css/main.css +0 -263
  43. data/doc/api/css/panel.css +0 -383
  44. data/doc/api/css/reset.css +0 -53
  45. data/doc/api/favicon.ico +0 -0
  46. data/doc/api/files/CREDITS.html +0 -65
  47. data/doc/api/files/LICENSE.html +0 -76
  48. data/doc/api/files/lib/dfect/auto_rb.html +0 -80
  49. data/doc/api/files/lib/dfect/mini_rb.html +0 -77
  50. data/doc/api/files/lib/dfect/spec_rb.html +0 -73
  51. data/doc/api/files/lib/dfect/unit_rb.html +0 -73
  52. data/doc/api/files/lib/dfect_rb.html +0 -74
  53. data/doc/api/i/arrows.png +0 -0
  54. data/doc/api/i/results_bg.png +0 -0
  55. data/doc/api/i/tree_bg.png +0 -0
  56. data/doc/api/js/jquery-effect.js +0 -593
  57. data/doc/api/js/main.js +0 -22
  58. data/doc/api/js/searchdoc.js +0 -628
  59. data/doc/api/panel/index.html +0 -71
  60. data/doc/api/panel/search_index.js +0 -1
  61. data/doc/api/panel/tree.js +0 -1
  62. data/doc/history.erb +0 -161
  63. data/doc/intro.erb +0 -104
  64. data/doc/setup.erb +0 -107
  65. data/doc/usage.erb +0 -310
  66. data/rakefile +0 -21
@@ -1,71 +0,0 @@
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
- $(function() {
33
- placeholder();
34
- var panel = new Searchdoc.Panel($('#panel'), search_data, tree, top.frames[1]);
35
- $('#search').focus();
36
-
37
- var s = window.parent.location.search.match(/\?q=([^&]+)/);
38
- if (s) {
39
- s = decodeURIComponent(s[1]).replace(/\+/g, ' ');
40
- if (s.length > 0)
41
- {
42
- $('#search').val(s);
43
- panel.search(s, true);
44
- }
45
- }
46
- })
47
- //]]>
48
- </script>
49
- </head>
50
- <body>
51
- <div class="panel panel_tree" id="panel">
52
- <div class="header">
53
- <div>
54
- <label for="search" id="search-label" style="display: none">Search</label>
55
- <table>
56
- <tr><td>
57
- <input type="Search" placeholder="Search" autosave="searchdoc" results="10" id="search" autocomplete="off"/>
58
- </td></tr>
59
- </table></div>
60
- </div>
61
- <div class="tree">
62
- <ul>
63
- </ul>
64
- </div>
65
- <div class="result">
66
- <ul>
67
- </ul>
68
- </div>
69
- </div>
70
- </body>
71
- </html>
@@ -1 +0,0 @@
1
- var search_data = {"index":{"searchIndex":["dfect","kernel","object","<()","<<()",">()",">>()","c()","c!()","c?()","d()","e()","e!()","e?()","f?()","s()","t()","t!()","t?()","after()","before()","context()","describe()","it()","run()","setup()","stop()","teardown()","credits","license","dfect.rb","auto.rb","mini.rb","spec.rb","unit.rb"],"longSearchIndex":["lib/dfect.rb","lib/dfect/spec.rb","lib/dfect/auto.rb","dfect","dfect","dfect","dfect","dfect","dfect","dfect","dfect","dfect","dfect","dfect","dfect","dfect","dfect","dfect","dfect","kernel","kernel","kernel","kernel","kernel","dfect","kernel","dfect","kernel","files/credits.html","files/license.html","files/lib/dfect_rb.html","files/lib/dfect/auto_rb.html","files/lib/dfect/mini_rb.html","files/lib/dfect/spec_rb.html","files/lib/dfect/unit_rb.html"],"info":[["Dfect","lib/dfect.rb","classes/Dfect.html"," < ","",1],["Kernel","lib/dfect/spec.rb","classes/Kernel.html"," < ","",1],["Object","lib/dfect/auto.rb","classes/Object.html"," < Object","",1],["<","Dfect","classes/Dfect.html#M000008","(*args, &block)","Registers the given block to be executed before each nested test inside this test. ==== Examples D .<",2],["<<","Dfect","classes/Dfect.html#M000010","(&block)","Registers the given block to be executed before all nested tests inside this test. ==== Examples D .<<",2],[">","Dfect","classes/Dfect.html#M000009","(&block)","Registers the given block to be executed after each nested test inside this test. ==== Examples D .>",2],[">>","Dfect","classes/Dfect.html#M000011","(&block)","Registers the given block to be executed after all nested tests inside this test. ==== Examples D .>>",2],["C","Dfect","classes/Dfect.html#M000019","(message = nil, symbol = nil, &block)","Asserts that the given symbol is thrown when the given block is executed. If a value is thrown along",2],["C!","Dfect","classes/Dfect.html#M000020","(message = nil, symbol = nil, &block)","Asserts that the given symbol is not thrown when the given block is executed. Returns nil, always. ====",2],["C?","Dfect","classes/Dfect.html#M000021","(message = nil, symbol = nil, &block)","Returns true if the given symbol is thrown when the given block is executed. Otherwise, returns false.",2],["D","Dfect","classes/Dfect.html#M000007","(description = caller.first, &block)","Defines a new test, composed of the given description and the given block to execute. A test may contain",2],["E","Dfect","classes/Dfect.html#M000016","(message = nil, *kinds, &block)","Asserts that one of the given kinds of exceptions is raised when the given block is executed. If the",2],["E!","Dfect","classes/Dfect.html#M000017","(message = nil, *kinds, &block)","Asserts that one of the given kinds of exceptions is not raised when the given block is executed. If",2],["E?","Dfect","classes/Dfect.html#M000018","(message = nil, *kinds, &block)","Returns true if one of the given kinds of exceptions is raised when the given block is executed. Otherwise,",2],["F?","Dfect","classes/Dfect.html#M000015","(message = nil, &block)","Returns true if the result of the given block is either nil or false. Otherwise, returns false. ====",2],["S","Dfect","classes/Dfect.html#M000022","(*message)","Adds the given message to the report inside the section of the currently running test. You can think",2],["T","Dfect","classes/Dfect.html#M000012","(message = nil, &block)","Asserts that the result of the given block is neither nil nor false and returns that result. ==== Parameters",2],["T!","Dfect","classes/Dfect.html#M000013","(message = nil, &block)","Asserts that the result of the given block is either nil or false and returns that result. ==== Parameters",2],["T?","Dfect","classes/Dfect.html#M000014","(message = nil, &block)","Returns true if the result of the given block is neither nil nor false. Otherwise, returns false. ====",2],["after","Kernel","classes/Kernel.html#M000006","(what, &block)","",2],["before","Kernel","classes/Kernel.html#M000005","(what, &block)","",2],["context","Kernel","classes/Kernel.html#M000003","(*args, &block)","Alias for #describe",2],["describe","Kernel","classes/Kernel.html#M000002","(*args, &block)","",2],["it","Kernel","classes/Kernel.html#M000004","(*args, &block)","Alias for #describe",2],["run","Dfect","classes/Dfect.html#M000023","(continue = true)","Executes all tests defined thus far and stores the results in #report. ==== Parameters [continue] If",2],["setup","Kernel","classes/Kernel.html#M000000","(&block)","",2],["stop","Dfect","classes/Dfect.html#M000024","()","Stops the execution of the #run method or raises an exception if that method is not currently executing.",2],["teardown","Kernel","classes/Kernel.html#M000001","(&block)","",2],["CREDITS","files/CREDITS.html","files/CREDITS.html","","* [Fran\u00e7ois Beausoleil](http://github.com/francois) * [I\u00f1aki Baz Castillo](http://github.com/ibc) ",3],["LICENSE","files/LICENSE.html","files/LICENSE.html","","(the ISC license) Copyright 2009 Suraj N. Kurapati <sunaku@gmail.com> Permission to use, copy, modify,",3],["dfect.rb","files/lib/dfect_rb.html","files/lib/dfect_rb.html",""," ",3],["auto.rb","files/lib/dfect/auto_rb.html","files/lib/dfect/auto_rb.html","","Provides painless, automatic configuration of Dfect. Simply require() this file and Dfect will be available",3],["mini.rb","files/lib/dfect/mini_rb.html","files/lib/dfect/mini_rb.html","","MiniTest emulation layer. ",3],["spec.rb","files/lib/dfect/spec_rb.html","files/lib/dfect/spec_rb.html","","RSpec emulation layer. ",3],["unit.rb","files/lib/dfect/unit_rb.html","files/lib/dfect/unit_rb.html","","Test::Unit emulation layer. ",3]]}}
@@ -1 +0,0 @@
1
- var tree = [["","","files",[["CREDITS","files/CREDITS.html","",[]],["LICENSE","files/LICENSE.html","",[]],["","","lib",[["","","dfect",[["auto.rb","files/lib/dfect/auto_rb.html","",[]],["mini.rb","files/lib/dfect/mini_rb.html","",[]],["spec.rb","files/lib/dfect/spec_rb.html","",[]],["unit.rb","files/lib/dfect/unit_rb.html","",[]]]],["dfect.rb","files/lib/dfect_rb.html","",[]]]]]],["Dfect","classes/Dfect.html","",[]],["Kernel","classes/Kernel.html","",[]],["Object","classes/Object.html"," < Object",[]]]
data/doc/history.erb DELETED
@@ -1,161 +0,0 @@
1
- %#--
2
- %# Copyright protects this work.
3
- %# See LICENSE file for details.
4
- %#++
5
-
6
-
7
- %|chapter "History"
8
-
9
-
10
- %|history
11
-
12
-
13
- %|section "Version 1.1.0 (2009-10-27)"
14
-
15
- This release adds a new method for emitting status messages and does some internal housekeeping.
16
-
17
-
18
- %|paragraph "Thank you"
19
-
20
- * Iñaki Baz Castillo used Dfect and suggested new features.
21
-
22
-
23
- %|paragraph "New features"
24
-
25
- * Add `Dfect::S()` method for <%= xref "Reporting", "adding status messages" %> to the execution report. This feature was [requested by](http://github.com/sunaku/dfect/issues/closed#issue/1) Iñaki Baz Castillo.
26
-
27
-
28
- %|paragraph "Housekeeping"
29
-
30
- * Remove unused require of 'delegate' standard library in 'dfect/spec' RSpec emulation layer.
31
-
32
- * Mention <%= xref "Emulation" %> layers for popular testing libraries.
33
-
34
- * Mention that assertions take an optional message parameter.
35
-
36
- * Replace sample unit test with Dfect test suite.
37
-
38
- * Upgrade user manual to ERBook 9.0.0.
39
-
40
-
41
- %|section "Version 1.0.1 (2009-10-07)"
42
-
43
- This release fixes a bug in the Test::Unit emulation library and revises the user manual.
44
-
45
-
46
- %|paragraph "Bug fixes"
47
-
48
- * The parameters for the `assert_equal()` method in the <tt>dfect/unit</tt> library were in the wrong order.
49
-
50
-
51
- %|paragraph "Housekeeping"
52
-
53
- * Revise user manual to better fit jQuery UI tabs.
54
-
55
- * Justify the use of `eval()` in emulation libraries.
56
-
57
- * Use simpler Copyright reminder at the top of every file.
58
-
59
- * Make SLOC count in user manual reflect the *core* library only.
60
-
61
- * Mark code spans with `{:lang=ruby}` instead of HTML `<code/>` tags.
62
-
63
- * Open source is for fun, so [be nice](http://loiclemeur.com/english/2009/03/never-criticize-your-competitors.html): speak of "related works" instead of "competitors".
64
-
65
-
66
- %|section "Version 1.0.0 (2009-05-03)"
67
-
68
- This release improves default choices, adds emulation layers to mimic other testing libraries, and fixes some bugs.
69
-
70
-
71
- %|paragraph "Incompatible changes"
72
-
73
- * The `:debug` option is now enabled by default and is no longer linked to the value of `$DEBUG`.
74
-
75
- * `Dfect.run()` now appends to previous results by default.
76
-
77
- This behavior can be disabled by passing `false` to the method.
78
-
79
-
80
- %|paragraph "New features"
81
-
82
- * Add emulation layers to mimic other testing libraries:
83
- * <tt>dfect/unit</tt> --- Test::Unit
84
- * <tt>dfect/mini</tt> --- Minitest
85
- * <tt>dfect/spec</tt> --- RSpec
86
-
87
-
88
- %|paragraph "Bug fixes"
89
-
90
- * Do not blindly replace `Class#to_yaml`; it might be fixed someday.
91
-
92
-
93
- %|paragraph "Housekeeping"
94
-
95
- * Add <%= xref "Motivation" %> section in user manual to promote interactive debugging.
96
-
97
- * Add brief <%= xref "History" %> of this project's inception.
98
-
99
- * Remove redundant assertions for F!() and T!() methods in test suite.
100
-
101
- * Add copyright notice at the top of every file.
102
-
103
-
104
- %|section "Version 0.1.0 (2009-04-28)"
105
-
106
- This release adds new variations to assertion methods, fixes several bugs, and improves test coverage.
107
-
108
-
109
- %|paragraph "Thank you"
110
-
111
- * François Beausoleil contributed patches for both code *and* tests! :-)
112
-
113
-
114
- %|paragraph "New features"
115
-
116
- * Added <%= xref "Negation", "negation (m!)" %> and <%= xref "Sampling", "sampling (m?)" %> variations to <%= xref "Assertions", "assertion methods" %>.
117
-
118
- These new methods implement assertion functionality missing so far (previously we could not assert that a given exception was NOT thrown) and thereby allow us to fully test Dfect using itself.
119
-
120
- * Added documentation on <%= xref "Insulation", "how to insulate tests" %> from the global Ruby namespace.
121
-
122
-
123
- %|paragraph "Bug fixes"
124
-
125
- * The `E()` method did not consider the case where a block does not raise anything as a failure. ---*François Beausoleil*
126
-
127
- * When creating a report about an assertion failure, an exception would be thrown if any local variables pointed to an empty array.
128
-
129
- * The `Dfect::<()` method broke the inheritance-checking behavior of the < class method.
130
-
131
- Added a bypass to the originial behavior so that `RCov::XX` can properly generate a report about code that uses Dfect.
132
-
133
- * Added workaround for YAML error when serializing a class object:
134
-
135
- TypeError: can't dump anonymous class Class
136
-
137
-
138
- %|paragraph "Housekeeping"
139
-
140
- * Filled the big holes in test coverage. Everything except the runtime debugging logic is now covered by the unit tests.
141
-
142
-
143
- %|section "Version 0.0.0 (2009-04-13)"
144
-
145
- % sean_ohalpin_musing = "[Sean O'Halpin's musing](http://www.ruby-forum.com/topic/183354#801895)"
146
-
147
- For the longest time, I took <%= related_works.link_for 'Test::Unit' %> and <%= related_works.link_for 'RSpec' %> for granted. They were the epitomy of modern Ruby practice; the insurmountable status quo; immortalized in books, conferences, and blogs alike.
148
-
149
- Why would *anyone* think of using anything remotely different, let alone be foolish enough to write an alternative testing library when these are clearly *good enough*?
150
-
151
- Recent experiments in assertion testing libraries smashed my world view:
152
- * <%= related_works.link_for 'assert{ 2.0 }' %>
153
- * <%= related_works.link_for 'Testy' %>
154
- * <%= related_works.link_for 'Verify' %>
155
-
156
- The status quo was certainly *not* "good enough", as I had so blindly believed all these years. In fact, they were *verbose* behemoths that chose to encode endless permutations of conjecture into methods.
157
-
158
- Empowered by this revelation and inspired by <%= sean_ohalpin_musing %> on alternative names for assertion methods, I rose to challenge the status quo.
159
-
160
- And so I present to you the first public release of <%= $project %>.
161
-
data/doc/intro.erb DELETED
@@ -1,104 +0,0 @@
1
- %#--
2
- %# Copyright protects this work.
3
- %# See LICENSE file for details.
4
- %#++
5
-
6
- % api_url = './api/index.html'
7
- % src_url = 'http://github.com/sunaku/' + $program
8
- % git_url = 'http://git-scm.com'
9
-
10
- <%
11
- related_works = {
12
- 'assert{ 2.0 }' => 'http://assert2.rubyforge.org',
13
- 'Verify' => 'http://www.ruby-forum.com/topic/183354',
14
- 'Testy' => 'http://github.com/ahoward/testy/tree/master',
15
- 'minitest' => 'http://blog.zenspider.com/minitest',
16
- 'Context' => 'http://github.com/jeremymcanally/context',
17
- 'Shoulda' => 'http://thoughtbot.com/projects/shoulda',
18
- 'Bacon' => 'http://chneukirchen.org/repos/bacon/README',
19
- 'test-spec' => 'http://test-spec.rubyforge.org/test-spec',
20
- 'RSpec' => 'http://rspec.info',
21
- 'Test::Unit' => 'http://www.ruby-doc.org/stdlib/libdoc/test/unit/rdoc/index.html',
22
- }
23
-
24
- def related_works.link_for key
25
- if val = self[key]
26
- "[#{key}](#{val})"
27
- else
28
- raise key
29
- end
30
- end
31
- %>
32
-
33
-
34
- %|chapter "Introduction"
35
-
36
-
37
- %|project
38
-
39
- <%= $project %> is an assertion testing library for Ruby that emphasizes a simple assertion vocabulary, instant debuggability of failures, and flexibility in composing tests.
40
-
41
-
42
- * <%= xref "History", "What's new?" %> --- history of project releases.
43
- * [Source code](<%= src_url %>) --- obtain via [Git](<%= git_url %>) or browse online.
44
- * [API reference](<%= api_url %>) --- documentation for source code.
45
- * [Project home](<%= $website %>) --- the <%= $project %> project home page.
46
-
47
- To get help or provide feedback, simply
48
- <%= xref "License", "contact the author(s)" %>.
49
-
50
-
51
- %|section "Features"
52
-
53
- <%= $project %> is exciting because:
54
- * It has only 5 methods to remember: D F E C T.
55
- * It lets you debug assertion failures interactively.
56
- * It keeps a detailed report of assertion failures.
57
- * It lets you nest tests and execution hooks.
58
- * Its core consists of a mere <%= `sloccount lib/dfect.rb`[/^\d+/] %> lines of code.
59
-
60
-
61
- %|section "Motivation"
62
- The basic premise of <%= $project %> is that, when a failure occurs, I want to be put inside an interactive debugger where I have the freedom to properly scrutinize the state of my program and determine the root cause of the failure.
63
-
64
- Other testing libraries do not fulfill this need. Instead, they simply report each failed assertion along with a stack trace (if I am lucky) and abruptly terminate my program.
65
-
66
- This deliberate separation of *fault* (my program being in an erroneous state) and *cause* (the source code of my program which caused the fault) reduces me to a primitive and laborious investigative technique known as "[printf debugging](http://oopweb.com/CPP/Documents/DebugCPP/Volume/techniques.html#PRINTF)".
67
-
68
- If you are not the least bit *unsettled* by those two words, then recall your first encounter with [IRB, the interactive Ruby shell](http://tryruby.hobix.com/): remember how you would enter code expressions and IRB would *instantly* evaluate them and show you the result?
69
-
70
- What an immense productivity boost! A *stark contrast* to the endless toil of wrapping every such experiment in standard boilerplate (`public static void`...), saving the result to a correctly named file, invoking the C/C++/Java compiler, and finally executing the binary---only to be greeted by a [segfault](http://en.wikipedia.org/wiki/Segmentation_fault). ;-)
71
-
72
- I exaggerate, for the sake of entertainment, of course. But my point is that the Ruby testing libraries of today have (thus far) limited our productivity by orphaning us from the nurturing environment of IRB and shooing us off to a barren desert of antiquated techniques. How cruel!
73
-
74
- And that, I say, is why <%= $project %> is essential to Ruby developers today. It reunites us with our playful, interactive, *real-time* IRB roots and, with unwavering tenacity, enables us to investigate failures *productively*!
75
-
76
-
77
- %|section "Etymology"
78
-
79
- <%= $project %> is named after the D F E C T methods it provides.
80
-
81
- The name is also play on the word "defect", whereby the intentional misspelling of "defect" as "dfect" is a defect in itself! <tt>;-)</tt>
82
-
83
- This wordplay is similar to [Mnesia](http://www.erlang.org/doc/apps/mnesia/index.html)'s play on the word "amnesia", whereby the intentional omission of the letter "A" indicates forgetfulness---the key characteristic of having amnesia. Clever!
84
-
85
-
86
- %|section "License"
87
-
88
- %< "../LICENSE"
89
-
90
-
91
- %|section "Credits"
92
-
93
- <%= $project %> is made possible by
94
- %= xref "History", "contributions"
95
- from users like you:
96
-
97
- %< "../CREDITS"
98
-
99
-
100
- %|section "Related works"
101
-
102
- %|related_works.keys.sort_by {|name| name.downcase }.each do |name|
103
- * <%= related_works.link_for name %>
104
-
data/doc/setup.erb DELETED
@@ -1,107 +0,0 @@
1
- %#--
2
- %# Copyright protects this work.
3
- %# See LICENSE file for details.
4
- %#++
5
-
6
-
7
- %|chapter "Setup"
8
-
9
-
10
- %|section "Requirements"
11
-
12
- Your system needs the following software to run <%= $project %>.
13
-
14
- %|table
15
- %|thead
16
- %|tr
17
- %|th
18
- Software
19
- %|th
20
- Description
21
- %|th
22
- Notes
23
- %|tbody
24
- %|tr
25
- %|td
26
- [Ruby](http://ruby-lang.org)
27
- %|td
28
- Ruby language interpreter
29
- %|td
30
- Version 1.8.6, 1.8.7, and 1.9.1 have been tested successfully.
31
- %|tr
32
- %|td
33
- [RubyGems](http://rubygems.org)
34
- %|td
35
- Ruby packaging system
36
- %|td
37
- Version 1.3.1 is or newer required.
38
- %|tr
39
- %|td
40
- [ruby-debug](http://www.datanoise.com/ruby-debug)
41
- %|td
42
- Interactive debugger
43
- %|td
44
- **This requirement is optional.** If this library is not available, then IRB (the standard interactive Ruby shell) will be used instead.
45
-
46
-
47
- %|section "Installation"
48
-
49
- You can install <%= $project %> by running this command:
50
-
51
- gem install <%= $program %>
52
-
53
- If you want to develop <%= $project %>, run this command:
54
-
55
- gem install <%= $program %> --development
56
-
57
-
58
- %|section "Version numbers"
59
-
60
- <%= $project %> releases are numbered in *major.minor.patch*
61
- form according to the [RubyGems rational versioning
62
- policy](http://www.rubygems.org/read/chapter/7), which
63
- can be summarized as follows:
64
-
65
- %|table
66
- %|thead
67
- %|tr
68
- %|td :rowspan => 2
69
- What increased in the version number?
70
- %|td :colspan => 3
71
- The increase indicates that the release:
72
- %|tr
73
- %|th
74
- Is backward compatible?
75
- %|th
76
- Has new features?
77
- %|th
78
- Has bug fixes?
79
- %|tbody
80
- %|tr
81
- %|th
82
- major
83
- %|td :style => "background-color: #FFE4E1;"
84
- No
85
- %|td
86
- Yes
87
- %|td
88
- Yes
89
- %|tr
90
- %|th
91
- minor
92
- %|td
93
- Yes
94
- %|td
95
- Yes
96
- %|td
97
- Yes
98
- %|tr
99
- %|th
100
- patch
101
- %|td
102
- Yes
103
- %|td :style => "background-color: #FFE4E1;"
104
- No
105
- %|td
106
- Yes
107
-