elabs_matchers 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. data/Gemfile.lock +38 -34
  2. data/README.md +103 -0
  3. data/doc/Cucumber.html +116 -0
  4. data/doc/ElabsMatchers/Cucumber/Common.html +145 -0
  5. data/doc/ElabsMatchers/Cucumber.html +108 -0
  6. data/doc/ElabsMatchers/Helpers/Capybara.html +241 -0
  7. data/doc/ElabsMatchers/Helpers/Common.html +213 -0
  8. data/doc/ElabsMatchers/Helpers/Fixtures.html +201 -0
  9. data/doc/ElabsMatchers/Helpers/Orm.html +289 -0
  10. data/doc/ElabsMatchers/Helpers/Session.html +497 -0
  11. data/doc/ElabsMatchers/Helpers.html +110 -0
  12. data/doc/ElabsMatchers/Matchers/Capybara/Common.html +1159 -0
  13. data/doc/ElabsMatchers/Matchers/Capybara.html +38 -11
  14. data/doc/ElabsMatchers/Matchers/Rspec/Allow.html +98 -0
  15. data/doc/ElabsMatchers/Matchers/Rspec/Common.html +332 -0
  16. data/doc/ElabsMatchers/Matchers/Rspec/Orm.html +231 -0
  17. data/doc/ElabsMatchers/Matchers/Rspec.html +41 -12
  18. data/doc/ElabsMatchers/Matchers.html +30 -13
  19. data/doc/ElabsMatchers/Orm/Post.html +1041 -0
  20. data/doc/ElabsMatchers/Orm.html +108 -0
  21. data/doc/ElabsMatchers.html +31 -15
  22. data/doc/_index.html +179 -12
  23. data/doc/class_list.html +21 -10
  24. data/doc/css/full_list.css +2 -0
  25. data/doc/css/style.css +19 -15
  26. data/doc/file.README.html +129 -48
  27. data/doc/file_list.html +20 -9
  28. data/doc/frames.html +1 -1
  29. data/doc/index.html +129 -48
  30. data/doc/js/app.js +20 -18
  31. data/doc/js/full_list.js +36 -12
  32. data/doc/js/jquery.js +3 -3
  33. data/doc/method_list.html +308 -9
  34. data/doc/top-level-namespace.html +115 -12
  35. data/elabs_matchers.gemspec +3 -1
  36. data/lib/elabs_matchers/cucumber/common.rb +2 -4
  37. data/lib/elabs_matchers/helpers/common.rb +3 -1
  38. data/lib/elabs_matchers/helpers/session.rb +61 -6
  39. data/lib/elabs_matchers/matchers/capybara/common.rb +58 -13
  40. data/lib/elabs_matchers/matchers/rspec/allow.rb +112 -0
  41. data/lib/elabs_matchers/orm/post.rb +18 -3
  42. data/lib/elabs_matchers/version.rb +1 -1
  43. data/spec/elabs_matchers/helpers/session_spec.rb +35 -0
  44. data/spec/elabs_matchers/matchers/capybara/common_spec.rb +1 -1
  45. data/spec/elabs_matchers/matchers/rspec/allow_spec.rb +80 -0
  46. data/spec/elabs_matchers/matchers/rspec/orm_spec.rb +3 -3
  47. data/spec/spec_helper.rb +10 -1
  48. metadata +109 -101
  49. data/.rvmrc +0 -1
  50. data/README.rdoc +0 -45
data/Gemfile.lock CHANGED
@@ -1,61 +1,65 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- elabs_matchers (0.0.1)
4
+ elabs_matchers (0.0.2)
5
5
 
6
6
  GEM
7
7
  remote: http://rubygems.org/
8
8
  specs:
9
- activesupport (3.0.8)
10
- capybara (0.4.1.2)
11
- celerity (>= 0.7.9)
12
- culerity (>= 0.2.4)
9
+ activemodel (3.2.1)
10
+ activesupport (= 3.2.1)
11
+ builder (~> 3.0.0)
12
+ activesupport (3.2.1)
13
+ i18n (~> 0.6)
14
+ multi_json (~> 1.0)
15
+ builder (3.0.0)
16
+ capybara (1.1.2)
13
17
  mime-types (>= 1.16)
14
18
  nokogiri (>= 1.3.3)
15
19
  rack (>= 1.0.0)
16
20
  rack-test (>= 0.5.4)
17
- selenium-webdriver (>= 0.0.27)
18
- xpath (~> 0.1.3)
19
- celerity (0.8.8)
20
- childprocess (0.1.8)
21
+ selenium-webdriver (~> 2.0)
22
+ xpath (~> 0.1.4)
23
+ childprocess (0.3.0)
21
24
  ffi (~> 1.0.6)
22
- culerity (0.2.15)
23
- diff-lcs (1.1.2)
24
- ffi (1.0.7)
25
- rake (>= 0.8.7)
25
+ diff-lcs (1.1.3)
26
+ ffi (1.0.11)
26
27
  i18n (0.6.0)
27
- json_pure (1.5.1)
28
- mime-types (1.16)
29
- nokogiri (1.4.4)
30
- rack (1.2.2)
31
- rack-test (0.5.7)
28
+ mime-types (1.17.2)
29
+ multi_json (1.0.4)
30
+ nokogiri (1.5.0)
31
+ rack (1.4.1)
32
+ rack-test (0.6.1)
32
33
  rack (>= 1.0)
33
- rake (0.8.7)
34
- rspec (2.5.0)
35
- rspec-core (~> 2.5.0)
36
- rspec-expectations (~> 2.5.0)
37
- rspec-mocks (~> 2.5.0)
38
- rspec-core (2.5.1)
39
- rspec-expectations (2.5.0)
34
+ rake (0.9.2.2)
35
+ redcarpet (2.1.0)
36
+ rspec (2.8.0)
37
+ rspec-core (~> 2.8.0)
38
+ rspec-expectations (~> 2.8.0)
39
+ rspec-mocks (~> 2.8.0)
40
+ rspec-core (2.8.0)
41
+ rspec-expectations (2.8.0)
40
42
  diff-lcs (~> 1.1.2)
41
- rspec-mocks (2.5.0)
42
- rubyzip (0.9.4)
43
- selenium-webdriver (0.1.4)
44
- childprocess (>= 0.1.7)
45
- ffi (>= 1.0.7)
46
- json_pure
43
+ rspec-mocks (2.8.0)
44
+ rubyzip (0.9.5)
45
+ selenium-webdriver (2.18.0)
46
+ childprocess (>= 0.2.5)
47
+ ffi (~> 1.0.9)
48
+ multi_json (~> 1.0.4)
47
49
  rubyzip
48
- xpath (0.1.3)
50
+ xpath (0.1.4)
49
51
  nokogiri (~> 1.3)
50
- yard (0.6.5)
52
+ yard (0.7.5)
51
53
 
52
54
  PLATFORMS
53
55
  ruby
54
56
 
55
57
  DEPENDENCIES
58
+ activemodel
56
59
  activesupport
57
60
  capybara
58
61
  elabs_matchers!
59
- i18n
62
+ rake
63
+ redcarpet
60
64
  rspec
61
65
  yard
data/README.md ADDED
@@ -0,0 +1,103 @@
1
+ # Elabs matchers
2
+
3
+ [![Build Status](https://secure.travis-ci.org/elabs/elabs_matchers.png)](http://travis-ci.org/elabs/elabs_matchers)
4
+
5
+ Elabs matchers aims to extend existing rspec matchers from e.g Rspec, Rspec-rails and Capybara with a set
6
+ of less generic once. This could be things like asserting a table appearing in a certain way or check that
7
+ an active record instance has been successfully persisted after an update.
8
+
9
+ Below follows a list of matchers that the gem bundles. To get documentation about each matcher the source code is
10
+ your bast friend at this point.
11
+
12
+ ### Model matchers:
13
+ * hash.contain_hash({ "baz" => "bar" })
14
+ * array.only_include("bar", "foo")
15
+ * record.should persist(:title, "Blog post")
16
+ * record.should allow("Blog post").as(:title)
17
+
18
+ ### Model helpers:
19
+ * reload(post)
20
+ * save\_and_reload(post)
21
+
22
+ ### Acceptance matchers:
23
+ * page.should have_options(["Yes", "No"])
24
+ * page.should have\_table_row('Posts', "Title" => "First", :year => "2012")
25
+ * page.should have\_attribute("Status", "Pending")
26
+ * page.should have\_image("Logo")
27
+ * page.should have\_header("Elabs")
28
+ * page.should have\_flash_notice("Success")
29
+ * page.should have\_flash_alert("Error")
30
+ * page.should have\_form\_errors_on("Name", "Can't be blank")
31
+ * page.should have\_fields("Author" => "Adam", "Year" => "2011")
32
+
33
+ ### Acceptance helpers:
34
+ * select\_year\_and_month("2010", "March", :from => "Birth date")
35
+ * sign\_in_as(user)
36
+ * sign_out
37
+
38
+ ### Common helpers:
39
+ * select\_year\_and_month("2010", "March", :from => "Birth date")
40
+ * normalize_keys({ "First name" => "Adam" })
41
+ * fixture_file("file.txt")
42
+
43
+ ## Setup
44
+
45
+ add elabs_matchers to your Gemfile:
46
+
47
+ ```ruby
48
+ gem 'elabs_matchers', :git => 'git://github.com/elabs/elabs_matchers.git'
49
+ ```
50
+
51
+ if you're using Spork gem you need to tell bundler not to require the files for you:
52
+
53
+ ```ruby
54
+ gem 'elabs_matchers', :git => 'git://github.com/elabs/elabs_matchers.git', :require => false
55
+ ```
56
+
57
+ then you'll require them inside your spork prefork block:
58
+
59
+ ```ruby
60
+ Spork.prefork do
61
+ ...
62
+ require 'elabs_matchers'
63
+ ...
64
+ end
65
+ ```
66
+
67
+ ## Development
68
+
69
+ ```bash
70
+ bundle exec rake
71
+ ```
72
+
73
+ should run all the gem's specs.
74
+
75
+ ## TODOS
76
+ * Make yard document rspec matchers
77
+ * Use matcher with RSpec::Matchers:DSL
78
+ * Add contributors
79
+
80
+ ## License:
81
+
82
+ (The MIT License)
83
+
84
+ Copyright (c) 2012 Elabs AB
85
+
86
+ Permission is hereby granted, free of charge, to any person obtaining
87
+ a copy of this software and associated documentation files (the
88
+ 'Software'), to deal in the Software without restriction, including
89
+ without limitation the rights to use, copy, modify, merge, publish,
90
+ distribute, sublicense, and/or sell copies of the Software, and to
91
+ permit persons to whom the Software is furnished to do so, subject to
92
+ the following conditions:
93
+
94
+ The above copyright notice and this permission notice shall be
95
+ included in all copies or substantial portions of the Software.
96
+
97
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
98
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
99
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
100
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
101
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
102
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
103
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/doc/Cucumber.html ADDED
@@ -0,0 +1,116 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Module: Cucumber
8
+
9
+ &mdash; Documentation by YARD 0.7.5
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ relpath = '';
19
+ if (relpath != '') relpath += '/';
20
+ </script>
21
+
22
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
23
+
24
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
25
+
26
+
27
+ </head>
28
+ <body>
29
+ <script type="text/javascript" charset="utf-8">
30
+ if (window.top.frames.main) document.body.className = 'frames';
31
+ </script>
32
+
33
+ <div id="header">
34
+ <div id="menu">
35
+
36
+ <a href="_index.html">Index (C)</a> &raquo;
37
+
38
+
39
+ <span class="title">Cucumber</span>
40
+
41
+
42
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
43
+ </div>
44
+
45
+ <div id="search">
46
+
47
+ <a id="class_list_link" href="#">Class List</a>
48
+
49
+ <a id="method_list_link" href="#">Method List</a>
50
+
51
+ <a id="file_list_link" href="#">File List</a>
52
+
53
+ </div>
54
+ <div class="clear"></div>
55
+ </div>
56
+
57
+ <iframe id="search_frame"></iframe>
58
+
59
+ <div id="content"><h1>Module: Cucumber
60
+
61
+
62
+
63
+ </h1>
64
+
65
+ <dl class="box">
66
+
67
+
68
+
69
+
70
+
71
+ <dt class="r1">Includes:</dt>
72
+ <dd class="r1"><span class='object_link'><a href="ElabsMatchers/Cucumber/Common.html" title="ElabsMatchers::Cucumber::Common (module)">ElabsMatchers::Cucumber::Common</a></span></dd>
73
+
74
+
75
+
76
+
77
+
78
+ <dt class="r2 last">Defined in:</dt>
79
+ <dd class="r2 last">lib/elabs_matchers/cucumber/common.rb</dd>
80
+
81
+ </dl>
82
+ <div class="clear"></div>
83
+
84
+
85
+ <h2>Constant Summary</h2>
86
+
87
+
88
+
89
+
90
+ <h2>Constant Summary</h2>
91
+
92
+ <h3 class="inherited">Constants included
93
+ from <span class='object_link'><a href="ElabsMatchers/Cucumber/Common.html" title="ElabsMatchers::Cucumber::Common (module)">ElabsMatchers::Cucumber::Common</a></span></h3>
94
+ <p class="inherited"><span class='object_link'><a href="ElabsMatchers/Cucumber/Common.html#LIST_REGEXP-constant" title="ElabsMatchers::Cucumber::Common::LIST_REGEXP (constant)">ElabsMatchers::Cucumber::Common::LIST_REGEXP</a></span>, <span class='object_link'><a href="ElabsMatchers/Cucumber/Common.html#LIST_SEPARATOR-constant" title="ElabsMatchers::Cucumber::Common::LIST_SEPARATOR (constant)">ElabsMatchers::Cucumber::Common::LIST_SEPARATOR</a></span></p>
95
+
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
+
104
+
105
+
106
+
107
+ </div>
108
+
109
+ <div id="footer">
110
+ Generated on Fri Feb 17 16:29:16 2012 by
111
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
112
+ 0.7.5 (ruby-1.9.3).
113
+ </div>
114
+
115
+ </body>
116
+ </html>
@@ -0,0 +1,145 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Module: ElabsMatchers::Cucumber::Common
8
+
9
+ &mdash; Documentation by YARD 0.7.5
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../../css/style.css" type="text/css" media="screen" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../../css/common.css" type="text/css" media="screen" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ relpath = '../..';
19
+ if (relpath != '') relpath += '/';
20
+ </script>
21
+
22
+ <script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
23
+
24
+ <script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
25
+
26
+
27
+ </head>
28
+ <body>
29
+ <script type="text/javascript" charset="utf-8">
30
+ if (window.top.frames.main) document.body.className = 'frames';
31
+ </script>
32
+
33
+ <div id="header">
34
+ <div id="menu">
35
+
36
+ <a href="../../_index.html">Index (C)</a> &raquo;
37
+ <span class='title'><span class='object_link'><a href="../../ElabsMatchers.html" title="ElabsMatchers (module)">ElabsMatchers</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Cucumber.html" title="ElabsMatchers::Cucumber (module)">Cucumber</a></span></span>
38
+ &raquo;
39
+ <span class="title">Common</span>
40
+
41
+
42
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
43
+ </div>
44
+
45
+ <div id="search">
46
+
47
+ <a id="class_list_link" href="#">Class List</a>
48
+
49
+ <a id="method_list_link" href="#">Method List</a>
50
+
51
+ <a id="file_list_link" href="#">File List</a>
52
+
53
+ </div>
54
+ <div class="clear"></div>
55
+ </div>
56
+
57
+ <iframe id="search_frame"></iframe>
58
+
59
+ <div id="content"><h1>Module: ElabsMatchers::Cucumber::Common
60
+
61
+
62
+
63
+ </h1>
64
+
65
+ <dl class="box">
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+ <dt class="r1">Included in:</dt>
74
+ <dd class="r1"><span class='object_link'><a href="../../Cucumber.html" title="Cucumber (module)">Cucumber</a></span></dd>
75
+
76
+
77
+
78
+ <dt class="r2 last">Defined in:</dt>
79
+ <dd class="r2 last">lib/elabs_matchers/cucumber/common.rb</dd>
80
+
81
+ </dl>
82
+ <div class="clear"></div>
83
+
84
+
85
+ <h2>Constant Summary</h2>
86
+
87
+ <dl class="constants">
88
+
89
+ <dt id="LIST_SEPARATOR-constant" class="">LIST_SEPARATOR =
90
+ <div class="docstring">
91
+ <div class="discussion">
92
+
93
+ <p>Matches a comma or the word 'and'.</p>
94
+
95
+ <p>Example: , and</p>
96
+
97
+
98
+ </div>
99
+ </div>
100
+ <div class="tags">
101
+
102
+
103
+ </div>
104
+ </dt>
105
+ <dd><pre class="code"><span class='tstring'><span class='regexp_beg'>%r{</span><span class='tstring_content'>(?:,\s|\sand\s)</span><span class='regexp_end'>}</span></span></pre></dd>
106
+
107
+ <dt id="LIST_REGEXP-constant" class="">LIST_REGEXP =
108
+ <div class="docstring">
109
+ <div class="discussion">
110
+
111
+ <p>Matches a list seperated by LIST_SEPARATOR (, or the word 'and')</p>
112
+
113
+ <p>Example: "foo", "bar" and "baz"</p>
114
+
115
+
116
+ </div>
117
+ </div>
118
+ <div class="tags">
119
+
120
+
121
+ </div>
122
+ </dt>
123
+ <dd><pre class="code"><span class='tstring'><span class='regexp_beg'>%r{</span><span class='tstring_content'>(?:&quot;(?:[^\&quot;]*)&quot;</span><span class='embexpr_beg'>#{</span><span class='const'>LIST_SEPARATOR</span><span class='rbrace'>}</span><span class='tstring_content'>?)+</span><span class='regexp_end'>}</span></span></pre></dd>
124
+
125
+ </dl>
126
+
127
+
128
+
129
+
130
+
131
+
132
+
133
+
134
+
135
+
136
+ </div>
137
+
138
+ <div id="footer">
139
+ Generated on Fri Feb 17 16:29:16 2012 by
140
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
141
+ 0.7.5 (ruby-1.9.3).
142
+ </div>
143
+
144
+ </body>
145
+ </html>
@@ -0,0 +1,108 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Module: ElabsMatchers::Cucumber
8
+
9
+ &mdash; Documentation by YARD 0.7.5
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../css/style.css" type="text/css" media="screen" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../css/common.css" type="text/css" media="screen" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ relpath = '..';
19
+ if (relpath != '') relpath += '/';
20
+ </script>
21
+
22
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
23
+
24
+ <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
25
+
26
+
27
+ </head>
28
+ <body>
29
+ <script type="text/javascript" charset="utf-8">
30
+ if (window.top.frames.main) document.body.className = 'frames';
31
+ </script>
32
+
33
+ <div id="header">
34
+ <div id="menu">
35
+
36
+ <a href="../_index.html">Index (C)</a> &raquo;
37
+ <span class='title'><span class='object_link'><a href="../ElabsMatchers.html" title="ElabsMatchers (module)">ElabsMatchers</a></span></span>
38
+ &raquo;
39
+ <span class="title">Cucumber</span>
40
+
41
+
42
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
43
+ </div>
44
+
45
+ <div id="search">
46
+
47
+ <a id="class_list_link" href="#">Class List</a>
48
+
49
+ <a id="method_list_link" href="#">Method List</a>
50
+
51
+ <a id="file_list_link" href="#">File List</a>
52
+
53
+ </div>
54
+ <div class="clear"></div>
55
+ </div>
56
+
57
+ <iframe id="search_frame"></iframe>
58
+
59
+ <div id="content"><h1>Module: ElabsMatchers::Cucumber
60
+
61
+
62
+
63
+ </h1>
64
+
65
+ <dl class="box">
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+ <dt class="r1 last">Defined in:</dt>
75
+ <dd class="r1 last">lib/elabs_matchers/cucumber/common.rb</dd>
76
+
77
+ </dl>
78
+ <div class="clear"></div>
79
+
80
+ <h2>Defined Under Namespace</h2>
81
+ <p class="children">
82
+
83
+
84
+ <strong class="modules">Modules:</strong> <span class='object_link'><a href="Cucumber/Common.html" title="ElabsMatchers::Cucumber::Common (module)">Common</a></span>
85
+
86
+
87
+
88
+
89
+ </p>
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+
98
+
99
+ </div>
100
+
101
+ <div id="footer">
102
+ Generated on Fri Feb 17 16:29:16 2012 by
103
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
104
+ 0.7.5 (ruby-1.9.3).
105
+ </div>
106
+
107
+ </body>
108
+ </html>