genspec 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. data/LICENSE +20 -0
  2. data/README.rdoc +122 -0
  3. data/Rakefile +55 -0
  4. data/VERSION +1 -0
  5. data/genspec.gemspec +83 -0
  6. data/lib/genspec.rb +14 -0
  7. data/lib/genspec/generation_matchers.rb +27 -0
  8. data/lib/genspec/generation_matchers/generation_matcher.rb +147 -0
  9. data/lib/genspec/generation_matchers/result_matcher.rb +42 -0
  10. data/lib/genspec/generator_example_group.rb +71 -0
  11. data/pkg/genspec-0.0.0.gem +0 -0
  12. data/pkg/genspec-0.1.0.gem +0 -0
  13. data/rdoc/classes/GenSpec.html +124 -0
  14. data/rdoc/classes/GenSpec/GenerationMatchers.html +197 -0
  15. data/rdoc/classes/GenSpec/GenerationMatchers/GenerationMatcher.html +363 -0
  16. data/rdoc/classes/GenSpec/GenerationMatchers/ResultMatcher.html +241 -0
  17. data/rdoc/classes/GenSpec/GeneratorExampleGroup.html +285 -0
  18. data/rdoc/created.rid +1 -0
  19. data/rdoc/files/README_rdoc.html +261 -0
  20. data/rdoc/files/lib/genspec/generation_matchers/generation_matcher_rb.html +101 -0
  21. data/rdoc/files/lib/genspec/generation_matchers/result_matcher_rb.html +101 -0
  22. data/rdoc/files/lib/genspec/generation_matchers_rb.html +109 -0
  23. data/rdoc/files/lib/genspec/generator_example_group_rb.html +101 -0
  24. data/rdoc/files/lib/genspec_rb.html +114 -0
  25. data/rdoc/fr_class_index.html +31 -0
  26. data/rdoc/fr_file_index.html +32 -0
  27. data/rdoc/fr_method_index.html +46 -0
  28. data/rdoc/index.html +26 -0
  29. data/rdoc/rdoc-style.css +208 -0
  30. data/spec/environment_spec.rb +18 -0
  31. data/spec/generators/test_spec.rb +96 -0
  32. data/spec/spec_helper.rb +4 -0
  33. data/spec/support/generators/test/templates/file +1 -0
  34. data/spec/support/generators/test/test_generator.rb +29 -0
  35. metadata +124 -0
@@ -0,0 +1,42 @@
1
+ module GenSpec
2
+ module GenerationMatchers
3
+ class ResultMatcher < GenSpec::GenerationMatchers::GenerationMatcher
4
+ attr_reader :filename
5
+
6
+ def initialize(filename, &block)
7
+ @filename = filename
8
+ @block = block
9
+ super(:does_not_matter)
10
+ end
11
+
12
+ def after_replay(target)
13
+ path = File.join(target.destination_root, filename)
14
+ if File.exist?(path)
15
+ matched!
16
+ validate_block(target, path)
17
+ end
18
+ end
19
+
20
+ def failure_message
21
+ "Expected to generate file #{filename}"
22
+ end
23
+
24
+ def negative_failure_message
25
+ "Expected to not generate file #{filename}"
26
+ end
27
+
28
+ private
29
+ def validate_block(target, path)
30
+ if @block
31
+ if @block.arity == 2
32
+ @block.call(File.read(path), target)
33
+ else
34
+ @block.call(File.read(path))
35
+ end
36
+ else
37
+ true
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,71 @@
1
+ module GenSpec
2
+ class GeneratorExampleGroup
3
+ extend Spec::Example::ExampleGroupMethods
4
+ include Spec::Example::ExampleMethods
5
+ include GenSpec::GenerationMatchers
6
+ delegate :generator_arguments, :generator_options, :generator_args, :to => "self.class"
7
+
8
+ class << self
9
+ def generator_arguments
10
+ @generator_args.dup? || []
11
+ end
12
+
13
+ def generator_options
14
+ @generator_options.dup? || {}
15
+ end
16
+
17
+ def with_arguments(*args, &block)
18
+ if block_given?
19
+ context "with arguments #{args.inspect}" do
20
+ with_arguments(*args)
21
+ instance_eval(&block)
22
+ end
23
+ else
24
+ @generator_args = args.flatten.collect { |c| c.to_s }
25
+ end
26
+ end
27
+
28
+ def with_options(hash, &block)
29
+ if block_given?
30
+ context "with options #{hash.inspect}" do
31
+ with_options(hash)
32
+ instance_eval(&block)
33
+ end
34
+ else
35
+ @generator_options = hash
36
+ end
37
+ end
38
+
39
+ alias_method :generator_args, :generator_arguments
40
+ alias_method :with_args, :with_arguments
41
+ end
42
+
43
+ def subject(&block)
44
+ block.nil? ?
45
+ explicit_subject || implicit_subject : @explicit_subject_block = block
46
+ end
47
+
48
+ private
49
+ def explicit_subject
50
+ group = self
51
+ while group.respond_to?(:explicit_subject_block)
52
+ return group.explicit_subject_block if group.explicit_subject_block
53
+ group = group.superclass
54
+ end
55
+ end
56
+
57
+ def implicit_subject
58
+ target = example_group_hierarchy[1].described_class || example_group_hierarchy[1].description_args.first
59
+
60
+ if target.kind_of?(Symbol) || target.kind_of?(String)
61
+ target = self.class.lookup_missing_generator("#{target.to_s.underscore}_generator".camelize)
62
+ end
63
+ target.new(generator_args, generator_options)
64
+ rescue Rails::Generator::GeneratorError, Rails::Generator::UsageError
65
+ # let them pass, so the user can test the output.
66
+ # TODO: Make this disable-able via configuration.
67
+
68
+ $! # return this because it is the content we'll check against.
69
+ end
70
+ end
71
+ end
Binary file
Binary file
@@ -0,0 +1,124 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Module: GenSpec</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Module</strong></td>
53
+ <td class="class-name-in-header">GenSpec</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../files/lib/genspec/generation_matchers/generation_matcher_rb.html">
59
+ lib/genspec/generation_matchers/generation_matcher.rb
60
+ </a>
61
+ <br />
62
+ <a href="../files/lib/genspec/generation_matchers/result_matcher_rb.html">
63
+ lib/genspec/generation_matchers/result_matcher.rb
64
+ </a>
65
+ <br />
66
+ <a href="../files/lib/genspec/generation_matchers_rb.html">
67
+ lib/genspec/generation_matchers.rb
68
+ </a>
69
+ <br />
70
+ <a href="../files/lib/genspec/generator_example_group_rb.html">
71
+ lib/genspec/generator_example_group.rb
72
+ </a>
73
+ <br />
74
+ </td>
75
+ </tr>
76
+
77
+ </table>
78
+ </div>
79
+ <!-- banner header -->
80
+
81
+ <div id="bodyContent">
82
+
83
+
84
+
85
+ <div id="contextContent">
86
+
87
+
88
+
89
+ </div>
90
+
91
+
92
+ </div>
93
+
94
+
95
+ <!-- if includes -->
96
+
97
+ <div id="section">
98
+
99
+ <div id="class-list">
100
+ <h3 class="section-bar">Classes and Modules</h3>
101
+
102
+ Module <a href="GenSpec/GenerationMatchers.html" class="link">GenSpec::GenerationMatchers</a><br />
103
+ Class <a href="GenSpec/GeneratorExampleGroup.html" class="link">GenSpec::GeneratorExampleGroup</a><br />
104
+
105
+ </div>
106
+
107
+
108
+
109
+
110
+
111
+
112
+
113
+ <!-- if method_list -->
114
+
115
+
116
+ </div>
117
+
118
+
119
+ <div id="validator-badges">
120
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
121
+ </div>
122
+
123
+ </body>
124
+ </html>
@@ -0,0 +1,197 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Module: GenSpec::GenerationMatchers</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Module</strong></td>
53
+ <td class="class-name-in-header">GenSpec::GenerationMatchers</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../files/lib/genspec/generation_matchers/generation_matcher_rb.html">
59
+ lib/genspec/generation_matchers/generation_matcher.rb
60
+ </a>
61
+ <br />
62
+ <a href="../../files/lib/genspec/generation_matchers/result_matcher_rb.html">
63
+ lib/genspec/generation_matchers/result_matcher.rb
64
+ </a>
65
+ <br />
66
+ <a href="../../files/lib/genspec/generation_matchers_rb.html">
67
+ lib/genspec/generation_matchers.rb
68
+ </a>
69
+ <br />
70
+ </td>
71
+ </tr>
72
+
73
+ </table>
74
+ </div>
75
+ <!-- banner header -->
76
+
77
+ <div id="bodyContent">
78
+
79
+
80
+
81
+ <div id="contextContent">
82
+
83
+
84
+
85
+ </div>
86
+
87
+ <div id="method-list">
88
+ <h3 class="section-bar">Methods</h3>
89
+
90
+ <div class="name-list">
91
+ <a href="#M000001">generate</a>&nbsp;&nbsp;
92
+ <a href="#M000002">output</a>&nbsp;&nbsp;
93
+ </div>
94
+ </div>
95
+
96
+ </div>
97
+
98
+
99
+ <!-- if includes -->
100
+
101
+ <div id="section">
102
+
103
+ <div id="class-list">
104
+ <h3 class="section-bar">Classes and Modules</h3>
105
+
106
+ Class <a href="GenerationMatchers/GenerationMatcher.html" class="link">GenSpec::GenerationMatchers::GenerationMatcher</a><br />
107
+ Class <a href="GenerationMatchers/ResultMatcher.html" class="link">GenSpec::GenerationMatchers::ResultMatcher</a><br />
108
+
109
+ </div>
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
+ <!-- if method_list -->
118
+ <div id="methods">
119
+ <h3 class="section-bar">Public Instance methods</h3>
120
+
121
+ <div id="method-M000001" class="method-detail">
122
+ <a name="M000001"></a>
123
+
124
+ <div class="method-heading">
125
+ <a href="#M000001" class="method-signature">
126
+ <span class="method-name">generate</span><span class="method-args">(kind, *args, &amp;block)</span>
127
+ </a>
128
+ </div>
129
+
130
+ <div class="method-description">
131
+ <p>
132
+ Valid types: :dependency, :class_collisions, :file, :template,
133
+ :complex_template, :directory, :readme, :migration_template,
134
+ :route_resources
135
+ </p>
136
+ <p><a class="source-toggle" href="#"
137
+ onclick="toggleCode('M000001-source');return false;">[Source]</a></p>
138
+ <div class="method-source-code" id="M000001-source">
139
+ <pre>
140
+ <span class="ruby-comment cmt"># File lib/genspec/generation_matchers.rb, line 8</span>
141
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generate</span>(<span class="ruby-identifier">kind</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
142
+ <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">kind</span>.<span class="ruby-identifier">to_s</span>
143
+ <span class="ruby-keyword kw">when</span> <span class="ruby-operator">*</span><span class="ruby-constant">GenSpec</span><span class="ruby-operator">::</span><span class="ruby-constant">GenerationMatchers</span><span class="ruby-operator">::</span><span class="ruby-constant">GenerationMatcher</span>.<span class="ruby-identifier">generation_methods</span>
144
+ <span class="ruby-constant">GenSpec</span><span class="ruby-operator">::</span><span class="ruby-constant">GenerationMatchers</span><span class="ruby-operator">::</span><span class="ruby-constant">GenerationMatcher</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">kind</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
145
+ <span class="ruby-keyword kw">else</span>
146
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">kind</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">String</span>)
147
+ <span class="ruby-constant">GenSpec</span><span class="ruby-operator">::</span><span class="ruby-constant">GenerationMatchers</span><span class="ruby-operator">::</span><span class="ruby-constant">ResultMatcher</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">kind</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
148
+ <span class="ruby-keyword kw">else</span>
149
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;No generator matcher for #{kind.inspect}&quot;</span>
150
+ <span class="ruby-keyword kw">end</span>
151
+ <span class="ruby-keyword kw">end</span>
152
+ <span class="ruby-keyword kw">end</span>
153
+ </pre>
154
+ </div>
155
+ </div>
156
+ </div>
157
+
158
+ <div id="method-M000002" class="method-detail">
159
+ <a name="M000002"></a>
160
+
161
+ <div class="method-heading">
162
+ <a href="#M000002" class="method-signature">
163
+ <span class="method-name">output</span><span class="method-args">(text_or_regexp)</span>
164
+ </a>
165
+ </div>
166
+
167
+ <div class="method-description">
168
+ <p>
169
+ This tests the content sent to the command line, instead of the generated
170
+ product. Useful for testing help messages, etc.
171
+ </p>
172
+ <p><a class="source-toggle" href="#"
173
+ onclick="toggleCode('M000002-source');return false;">[Source]</a></p>
174
+ <div class="method-source-code" id="M000002-source">
175
+ <pre>
176
+ <span class="ruby-comment cmt"># File lib/genspec/generation_matchers.rb, line 23</span>
177
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">output</span>(<span class="ruby-identifier">text_or_regexp</span>)
178
+ <span class="ruby-constant">GenSpec</span><span class="ruby-operator">::</span><span class="ruby-constant">GenerationMatchers</span><span class="ruby-operator">::</span><span class="ruby-constant">GenerationMatcher</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">:output</span>, <span class="ruby-identifier">text_or_regexp</span>)
179
+ <span class="ruby-keyword kw">end</span>
180
+ </pre>
181
+ </div>
182
+ </div>
183
+ </div>
184
+
185
+
186
+ </div>
187
+
188
+
189
+ </div>
190
+
191
+
192
+ <div id="validator-badges">
193
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
194
+ </div>
195
+
196
+ </body>
197
+ </html>
@@ -0,0 +1,363 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: GenSpec::GenerationMatchers::GenerationMatcher</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">GenSpec::GenerationMatchers::GenerationMatcher</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../../files/lib/genspec/generation_matchers/generation_matcher_rb.html">
59
+ lib/genspec/generation_matchers/generation_matcher.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ Object
69
+ </td>
70
+ </tr>
71
+ </table>
72
+ </div>
73
+ <!-- banner header -->
74
+
75
+ <div id="bodyContent">
76
+
77
+
78
+
79
+ <div id="contextContent">
80
+
81
+
82
+
83
+ </div>
84
+
85
+ <div id="method-list">
86
+ <h3 class="section-bar">Methods</h3>
87
+
88
+ <div class="name-list">
89
+ <a href="#M000013">after_replay</a>&nbsp;&nbsp;
90
+ <a href="#M000010">failure_message</a>&nbsp;&nbsp;
91
+ <a href="#M000008">generation_methods</a>&nbsp;&nbsp;
92
+ <a href="#M000014">matched!</a>&nbsp;&nbsp;
93
+ <a href="#M000015">matched?</a>&nbsp;&nbsp;
94
+ <a href="#M000009">matches?</a>&nbsp;&nbsp;
95
+ <a href="#M000011">negative_failure_message</a>&nbsp;&nbsp;
96
+ <a href="#M000007">new</a>&nbsp;&nbsp;
97
+ <a href="#M000012">replay</a>&nbsp;&nbsp;
98
+ </div>
99
+ </div>
100
+
101
+ </div>
102
+
103
+
104
+ <!-- if includes -->
105
+
106
+ <div id="section">
107
+
108
+
109
+
110
+
111
+
112
+
113
+
114
+
115
+ <!-- if method_list -->
116
+ <div id="methods">
117
+ <h3 class="section-bar">Public Class methods</h3>
118
+
119
+ <div id="method-M000008" class="method-detail">
120
+ <a name="M000008"></a>
121
+
122
+ <div class="method-heading">
123
+ <a href="#M000008" class="method-signature">
124
+ <span class="method-name">generation_methods</span><span class="method-args">()</span>
125
+ </a>
126
+ </div>
127
+
128
+ <div class="method-description">
129
+ <p><a class="source-toggle" href="#"
130
+ onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
131
+ <div class="method-source-code" id="M000008-source">
132
+ <pre>
133
+ <span class="ruby-comment cmt"># File lib/genspec/generation_matchers/generation_matcher.rb, line 13</span>
134
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">generation_methods</span>
135
+ <span class="ruby-ivar">@generation_methods</span> <span class="ruby-operator">||=</span> <span class="ruby-node">%w(dependency class_collisions file template complex_template directory readme
136
+ migration_template route_resources)</span>
137
+ <span class="ruby-keyword kw">end</span>
138
+ </pre>
139
+ </div>
140
+ </div>
141
+ </div>
142
+
143
+ <div id="method-M000007" class="method-detail">
144
+ <a name="M000007"></a>
145
+
146
+ <div class="method-heading">
147
+ <a href="#M000007" class="method-signature">
148
+ <span class="method-name">new</span><span class="method-args">(kind = nil, *args)</span>
149
+ </a>
150
+ </div>
151
+
152
+ <div class="method-description">
153
+ <p><a class="source-toggle" href="#"
154
+ onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
155
+ <div class="method-source-code" id="M000007-source">
156
+ <pre>
157
+ <span class="ruby-comment cmt"># File lib/genspec/generation_matchers/generation_matcher.rb, line 6</span>
158
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">kind</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
159
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;Call with kind&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">kind</span>
160
+ <span class="ruby-ivar">@kind</span> = <span class="ruby-identifier">kind</span>.<span class="ruby-identifier">to_s</span>
161
+ <span class="ruby-ivar">@args</span> = <span class="ruby-identifier">args</span>
162
+ <span class="ruby-ivar">@but_found</span> = <span class="ruby-keyword kw">nil</span>
163
+ <span class="ruby-keyword kw">end</span>
164
+ </pre>
165
+ </div>
166
+ </div>
167
+ </div>
168
+
169
+ <h3 class="section-bar">Public Instance methods</h3>
170
+
171
+ <div id="method-M000010" class="method-detail">
172
+ <a name="M000010"></a>
173
+
174
+ <div class="method-heading">
175
+ <a href="#M000010" class="method-signature">
176
+ <span class="method-name">failure_message</span><span class="method-args">()</span>
177
+ </a>
178
+ </div>
179
+
180
+ <div class="method-description">
181
+ <p><a class="source-toggle" href="#"
182
+ onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
183
+ <div class="method-source-code" id="M000010-source">
184
+ <pre>
185
+ <span class="ruby-comment cmt"># File lib/genspec/generation_matchers/generation_matcher.rb, line 35</span>
186
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">failure_message</span>
187
+ <span class="ruby-node">&quot;Expected to generate #{@kind}#{with_file}#{but_found}&quot;</span>
188
+ <span class="ruby-keyword kw">end</span>
189
+ </pre>
190
+ </div>
191
+ </div>
192
+ </div>
193
+
194
+ <div id="method-M000009" class="method-detail">
195
+ <a name="M000009"></a>
196
+
197
+ <div class="method-heading">
198
+ <a href="#M000009" class="method-signature">
199
+ <span class="method-name">matches?</span><span class="method-args">(target)</span>
200
+ </a>
201
+ </div>
202
+
203
+ <div class="method-description">
204
+ <p><a class="source-toggle" href="#"
205
+ onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
206
+ <div class="method-source-code" id="M000009-source">
207
+ <pre>
208
+ <span class="ruby-comment cmt"># File lib/genspec/generation_matchers/generation_matcher.rb, line 18</span>
209
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">matches?</span>(<span class="ruby-identifier">target</span>)
210
+ <span class="ruby-comment cmt"># if it's a string then it's an error message or some such from the generator.</span>
211
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">target</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Rails</span><span class="ruby-operator">::</span><span class="ruby-constant">Generator</span><span class="ruby-operator">::</span><span class="ruby-constant">GeneratorError</span>)
212
+ <span class="ruby-comment cmt"># if we're not checking output then why hold on to it? Raise it like the error it is!</span>
213
+ <span class="ruby-identifier">raise</span> <span class="ruby-identifier">target</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@kind</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'output'</span>
214
+ <span class="ruby-ivar">@log</span> = <span class="ruby-identifier">target</span>.<span class="ruby-identifier">message</span>
215
+ <span class="ruby-keyword kw">else</span>
216
+ <span class="ruby-identifier">temporary_root</span>(<span class="ruby-identifier">target</span>) <span class="ruby-keyword kw">do</span>
217
+ <span class="ruby-identifier">swap_loggers</span>(<span class="ruby-identifier">target</span>) <span class="ruby-keyword kw">do</span>
218
+ <span class="ruby-identifier">replay</span>(<span class="ruby-identifier">target</span>)
219
+ <span class="ruby-keyword kw">end</span>
220
+ <span class="ruby-keyword kw">end</span>
221
+ <span class="ruby-keyword kw">end</span>
222
+ <span class="ruby-identifier">match_content</span>
223
+ <span class="ruby-identifier">matched?</span>
224
+ <span class="ruby-keyword kw">end</span>
225
+ </pre>
226
+ </div>
227
+ </div>
228
+ </div>
229
+
230
+ <div id="method-M000011" class="method-detail">
231
+ <a name="M000011"></a>
232
+
233
+ <div class="method-heading">
234
+ <a href="#M000011" class="method-signature">
235
+ <span class="method-name">negative_failure_message</span><span class="method-args">()</span>
236
+ </a>
237
+ </div>
238
+
239
+ <div class="method-description">
240
+ <p><a class="source-toggle" href="#"
241
+ onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
242
+ <div class="method-source-code" id="M000011-source">
243
+ <pre>
244
+ <span class="ruby-comment cmt"># File lib/genspec/generation_matchers/generation_matcher.rb, line 39</span>
245
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">negative_failure_message</span>
246
+ <span class="ruby-node">&quot;Expected not to generate #{@kind}#{with_file}&quot;</span>
247
+ <span class="ruby-keyword kw">end</span>
248
+ </pre>
249
+ </div>
250
+ </div>
251
+ </div>
252
+
253
+ <h3 class="section-bar">Protected Instance methods</h3>
254
+
255
+ <div id="method-M000013" class="method-detail">
256
+ <a name="M000013"></a>
257
+
258
+ <div class="method-heading">
259
+ <a href="#M000013" class="method-signature">
260
+ <span class="method-name">after_replay</span><span class="method-args">(target)</span>
261
+ </a>
262
+ </div>
263
+
264
+ <div class="method-description">
265
+ <p>
266
+ hook
267
+ </p>
268
+ <p><a class="source-toggle" href="#"
269
+ onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
270
+ <div class="method-source-code" id="M000013-source">
271
+ <pre>
272
+ <span class="ruby-comment cmt"># File lib/genspec/generation_matchers/generation_matcher.rb, line 52</span>
273
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">after_replay</span>(<span class="ruby-identifier">target</span>)
274
+ <span class="ruby-keyword kw">end</span>
275
+ </pre>
276
+ </div>
277
+ </div>
278
+ </div>
279
+
280
+ <div id="method-M000014" class="method-detail">
281
+ <a name="M000014"></a>
282
+
283
+ <div class="method-heading">
284
+ <a href="#M000014" class="method-signature">
285
+ <span class="method-name">matched!</span><span class="method-args">()</span>
286
+ </a>
287
+ </div>
288
+
289
+ <div class="method-description">
290
+ <p><a class="source-toggle" href="#"
291
+ onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
292
+ <div class="method-source-code" id="M000014-source">
293
+ <pre>
294
+ <span class="ruby-comment cmt"># File lib/genspec/generation_matchers/generation_matcher.rb, line 55</span>
295
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">matched!</span>
296
+ <span class="ruby-ivar">@matched</span> = <span class="ruby-keyword kw">true</span>
297
+ <span class="ruby-keyword kw">end</span>
298
+ </pre>
299
+ </div>
300
+ </div>
301
+ </div>
302
+
303
+ <div id="method-M000015" class="method-detail">
304
+ <a name="M000015"></a>
305
+
306
+ <div class="method-heading">
307
+ <a href="#M000015" class="method-signature">
308
+ <span class="method-name">matched?</span><span class="method-args">()</span>
309
+ </a>
310
+ </div>
311
+
312
+ <div class="method-description">
313
+ <p><a class="source-toggle" href="#"
314
+ onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
315
+ <div class="method-source-code" id="M000015-source">
316
+ <pre>
317
+ <span class="ruby-comment cmt"># File lib/genspec/generation_matchers/generation_matcher.rb, line 59</span>
318
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">matched?</span>
319
+ <span class="ruby-operator">!</span><span class="ruby-operator">!</span><span class="ruby-ivar">@matched</span>
320
+ <span class="ruby-keyword kw">end</span>
321
+ </pre>
322
+ </div>
323
+ </div>
324
+ </div>
325
+
326
+ <div id="method-M000012" class="method-detail">
327
+ <a name="M000012"></a>
328
+
329
+ <div class="method-heading">
330
+ <a href="#M000012" class="method-signature">
331
+ <span class="method-name">replay</span><span class="method-args">(target)</span>
332
+ </a>
333
+ </div>
334
+
335
+ <div class="method-description">
336
+ <p><a class="source-toggle" href="#"
337
+ onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
338
+ <div class="method-source-code" id="M000012-source">
339
+ <pre>
340
+ <span class="ruby-comment cmt"># File lib/genspec/generation_matchers/generation_matcher.rb, line 45</span>
341
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">replay</span>(<span class="ruby-identifier">target</span>)
342
+ <span class="ruby-ivar">@create</span> = <span class="ruby-constant">Rails</span><span class="ruby-operator">::</span><span class="ruby-constant">Generator</span><span class="ruby-operator">::</span><span class="ruby-constant">Commands</span><span class="ruby-operator">::</span><span class="ruby-constant">Create</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">target</span>)
343
+ <span class="ruby-identifier">target</span>.<span class="ruby-identifier">manifest</span>.<span class="ruby-identifier">replay</span>(<span class="ruby-keyword kw">self</span>)
344
+ <span class="ruby-identifier">after_replay</span>(<span class="ruby-identifier">target</span>)
345
+ <span class="ruby-keyword kw">end</span>
346
+ </pre>
347
+ </div>
348
+ </div>
349
+ </div>
350
+
351
+
352
+ </div>
353
+
354
+
355
+ </div>
356
+
357
+
358
+ <div id="validator-badges">
359
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
360
+ </div>
361
+
362
+ </body>
363
+ </html>