rook 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. data/LGPL +504 -0
  2. data/README.txt +15 -6
  3. data/bin/rook +1 -1
  4. data/doc-api/classes/BZ2/Reader.html +24 -24
  5. data/doc-api/classes/Digest/Base.html +18 -18
  6. data/doc-api/classes/Enumerable.html +55 -55
  7. data/doc-api/classes/File.html +53 -6
  8. data/doc-api/classes/FileUtils.html +90 -90
  9. data/doc-api/classes/Kernel.html +48 -48
  10. data/doc-api/classes/Rook.html +18 -5
  11. data/doc-api/classes/Rook/Assertion.html +29 -14
  12. data/doc-api/classes/Rook/Commands.html +296 -364
  13. data/doc-api/classes/Rook/Cookbook.html +165 -60
  14. data/doc-api/classes/Rook/CookbookError.html +7 -7
  15. data/doc-api/classes/Rook/CookbookValidator.html +24 -24
  16. data/doc-api/classes/Rook/Kitchen.html +379 -224
  17. data/doc-api/classes/Rook/KitchenHelper.html +69 -69
  18. data/doc-api/classes/Rook/Main.html +47 -30
  19. data/doc-api/classes/Rook/Recipe.html +63 -35
  20. data/doc-api/classes/Rook/Util.html +72 -68
  21. data/doc-api/classes/Rook/Util/UndefinedPropertyError.html +6 -6
  22. data/doc-api/classes/Rook/{Parameters.html → ValueTable.html} +129 -123
  23. data/doc-api/created.rid +1 -1
  24. data/doc-api/files/rook/commands_rb.html +2 -2
  25. data/doc-api/files/rook/cookbook_rb.html +2 -2
  26. data/doc-api/files/rook/helper/bz2_rb.html +1 -1
  27. data/doc-api/files/rook/helper/digest_rb.html +1 -1
  28. data/doc-api/files/rook/helper/enumerable_rb.html +1 -1
  29. data/doc-api/files/rook/helper/file_rb.html +2 -2
  30. data/doc-api/files/rook/helper/fileutils_rb.html +1 -1
  31. data/doc-api/files/rook/helper/kernel_rb.html +1 -1
  32. data/doc-api/files/rook/kitchen_rb.html +2 -2
  33. data/doc-api/files/rook/main_rb.html +2 -2
  34. data/doc-api/files/rook/recipe_rb.html +2 -2
  35. data/doc-api/files/rook/util_rb.html +2 -2
  36. data/doc-api/files/rook_rb.html +2 -2
  37. data/doc-api/fr_class_index.html +1 -1
  38. data/doc-api/fr_file_index.html +0 -1
  39. data/doc-api/fr_method_index.html +148 -140
  40. data/doc-api/index.html +1 -1
  41. data/examples/hello_c/Rookbook.rb +1 -1
  42. data/examples/hello_c/Rookbook.yaml +8 -8
  43. data/examples/project/README.txt +2 -2
  44. data/examples/project/Rookbook.rb +20 -19
  45. data/examples/project/Rookbook.yaml +30 -28
  46. data/examples/project/bin/example +2 -2
  47. data/examples/project/example.gemspec +1 -1
  48. data/examples/project/lib/example.rb +2 -2
  49. data/examples/project/test/test.rb +2 -2
  50. data/lib/rook.rb +5 -2
  51. data/lib/rook/commands.rb +28 -17
  52. data/lib/rook/cookbook.rb +107 -92
  53. data/lib/rook/helper/bz2.rb +1 -1
  54. data/lib/rook/helper/digest.rb +1 -1
  55. data/lib/rook/helper/enumerable.rb +1 -1
  56. data/lib/rook/helper/file.rb +28 -3
  57. data/lib/rook/helper/fileutils.rb +1 -1
  58. data/lib/rook/helper/kernel.rb +1 -1
  59. data/lib/rook/kitchen.rb +138 -100
  60. data/lib/rook/main.rb +72 -47
  61. data/lib/rook/recipe.rb +51 -35
  62. data/lib/rook/rookbook.schema.yaml +34 -54
  63. data/lib/rook/util.rb +22 -8
  64. data/rook.gemspec +5 -5
  65. metadata +5 -7
  66. data/COPYING +0 -340
  67. data/doc-api/files/__/README_txt.html +0 -313
@@ -86,11 +86,11 @@ add functions for DSL (ruby-style cookbook)
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000076">desc</a>&nbsp;&nbsp;
90
- <a href="#M000075">material</a>&nbsp;&nbsp;
91
- <a href="#M000073">property</a>&nbsp;&nbsp;
92
- <a href="#M000077">recipe</a>&nbsp;&nbsp;
93
- <a href="#M000074">variable</a>&nbsp;&nbsp;
89
+ <a href="#M000075">desc</a>&nbsp;&nbsp;
90
+ <a href="#M000074">material</a>&nbsp;&nbsp;
91
+ <a href="#M000073">parameter</a>&nbsp;&nbsp;
92
+ <a href="#M000072">property</a>&nbsp;&nbsp;
93
+ <a href="#M000076">recipe</a>&nbsp;&nbsp;
94
94
  </div>
95
95
  </div>
96
96
 
@@ -112,11 +112,11 @@ add functions for DSL (ruby-style cookbook)
112
112
  <div id="methods">
113
113
  <h3 class="section-bar">Private Instance methods</h3>
114
114
 
115
- <div id="method-M000076" class="method-detail">
116
- <a name="M000076"></a>
115
+ <div id="method-M000075" class="method-detail">
116
+ <a name="M000075"></a>
117
117
 
118
118
  <div class="method-heading">
119
- <a href="#M000076" class="method-signature">
119
+ <a href="#M000075" class="method-signature">
120
120
  <span class="method-name">desc</span><span class="method-args">(text)</span>
121
121
  </a>
122
122
  </div>
@@ -146,8 +146,8 @@ the above is equivarent to the following in Rookbook.yaml:
146
146
  sys &quot;gcc -c #{@ingreds[0]}&quot;
147
147
  </pre>
148
148
  <p><a class="source-toggle" href="#"
149
- onclick="toggleCode('M000076-source');return false;">[Source]</a></p>
150
- <div class="method-source-code" id="M000076-source">
149
+ onclick="toggleCode('M000075-source');return false;">[Source]</a></p>
150
+ <div class="method-source-code" id="M000075-source">
151
151
  <pre>
152
152
  <span class="ruby-comment cmt"># File rook/kitchen.rb, line 132</span>
153
153
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">desc</span>(<span class="ruby-identifier">text</span>) <span class="ruby-comment cmt"># :doc:</span>
@@ -158,11 +158,11 @@ the above is equivarent to the following in Rookbook.yaml:
158
158
  </div>
159
159
  </div>
160
160
 
161
- <div id="method-M000075" class="method-detail">
162
- <a name="M000075"></a>
161
+ <div id="method-M000074" class="method-detail">
162
+ <a name="M000074"></a>
163
163
 
164
164
  <div class="method-heading">
165
- <a href="#M000075" class="method-signature">
165
+ <a href="#M000074" class="method-signature">
166
166
  <span class="method-name">material</span><span class="method-args">(material_name)</span>
167
167
  </a>
168
168
  </div>
@@ -187,8 +187,8 @@ the above is equivarent to the following in Rookbook.yaml:
187
187
  - readme.html
188
188
  </pre>
189
189
  <p><a class="source-toggle" href="#"
190
- onclick="toggleCode('M000075-source');return false;">[Source]</a></p>
191
- <div class="method-source-code" id="M000075-source">
190
+ onclick="toggleCode('M000074-source');return false;">[Source]</a></p>
191
+ <div class="method-source-code" id="M000074-source">
192
192
  <pre>
193
193
  <span class="ruby-comment cmt"># File rook/kitchen.rb, line 100</span>
194
194
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">material</span>(<span class="ruby-identifier">material_name</span>) <span class="ruby-comment cmt"># :doc:</span>
@@ -204,6 +204,51 @@ the above is equivarent to the following in Rookbook.yaml:
204
204
 
205
205
  <div class="method-heading">
206
206
  <a href="#M000073" class="method-signature">
207
+ <span class="method-name">parameter</span><span class="method-args">(name, value, options={})</span>
208
+ </a>
209
+ </div>
210
+
211
+ <div class="method-description">
212
+ <p>
213
+ define a parameter in Rookbook.rb
214
+ </p>
215
+ <p>
216
+ ex. (in Rookbook.rb)
217
+ </p>
218
+ <pre>
219
+ parameter :srcdir, 'src'
220
+ parameter :files, Dir.glob('src/*.rb')
221
+ parameter :rook_product, :all
222
+ </pre>
223
+ <p>
224
+ the above code is equivalent to the following in Rookbook.yaml:
225
+ </p>
226
+ <pre>
227
+ parameters:
228
+ - srcdir : src
229
+ - files* : Dir.glob('src/*.rb')
230
+ - rook_product : :all
231
+ </pre>
232
+ <p><a class="source-toggle" href="#"
233
+ onclick="toggleCode('M000073-source');return false;">[Source]</a></p>
234
+ <div class="method-source-code" id="M000073-source">
235
+ <pre>
236
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 81</span>
237
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parameter</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">options</span>={}) <span class="ruby-comment cmt"># :doc:</span>
238
+ <span class="ruby-identifier">hash</span> = { <span class="ruby-value str">'name'</span>=<span class="ruby-operator">&gt;</span><span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_s</span>, <span class="ruby-value str">'value'</span>=<span class="ruby-operator">&gt;</span><span class="ruby-identifier">value</span> }
239
+ <span class="ruby-identifier">options</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span> <span class="ruby-identifier">hash</span>[<span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_s</span>] = <span class="ruby-identifier">value</span> }
240
+ <span class="ruby-identifier">add_parameter</span>(<span class="ruby-identifier">hash</span>)
241
+ <span class="ruby-keyword kw">end</span>
242
+ </pre>
243
+ </div>
244
+ </div>
245
+ </div>
246
+
247
+ <div id="method-M000072" class="method-detail">
248
+ <a name="M000072"></a>
249
+
250
+ <div class="method-heading">
251
+ <a href="#M000072" class="method-signature">
207
252
  <span class="method-name">property</span><span class="method-args">(name, value, options={})</span>
208
253
  </a>
209
254
  </div>
@@ -243,8 +288,8 @@ ex. (in command-line)
243
288
  $ rook --release=1.2.3 --project='myapp2'
244
289
  </pre>
245
290
  <p><a class="source-toggle" href="#"
246
- onclick="toggleCode('M000073-source');return false;">[Source]</a></p>
247
- <div class="method-source-code" id="M000073-source">
291
+ onclick="toggleCode('M000072-source');return false;">[Source]</a></p>
292
+ <div class="method-source-code" id="M000072-source">
248
293
  <pre>
249
294
  <span class="ruby-comment cmt"># File rook/kitchen.rb, line 48</span>
250
295
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">property</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">options</span>={}) <span class="ruby-comment cmt"># :doc:</span>
@@ -257,11 +302,11 @@ ex. (in command-line)
257
302
  </div>
258
303
  </div>
259
304
 
260
- <div id="method-M000077" class="method-detail">
261
- <a name="M000077"></a>
305
+ <div id="method-M000076" class="method-detail">
306
+ <a name="M000076"></a>
262
307
 
263
308
  <div class="method-heading">
264
- <a href="#M000077" class="method-signature">
309
+ <a href="#M000076" class="method-signature">
265
310
  <span class="method-name">recipe</span><span class="method-args">(product, *args, &amp;block)</span>
266
311
  </a>
267
312
  </div>
@@ -274,7 +319,7 @@ define a recipe in Rookbook.rb
274
319
  ex. (in Rookbook.rb)
275
320
  </p>
276
321
  <pre>
277
- recipe '*.o' , '$(1).c', :options=&gt;['$(1).h'], :desc=&gt;'compile *.c' do
322
+ recipe '*.o' , '$(1).c', :toppings=&gt;['$(1).h'], :desc=&gt;'compile *.c' do
278
323
  sys &quot;gcc -c #{@ingreds[0]}&quot;
279
324
  end
280
325
  </pre>
@@ -285,7 +330,7 @@ the above is equivarent to the following in Rookbook.yaml:
285
330
  recipes:
286
331
  - product: *.o
287
332
  ingreds: [ $(1).c ]
288
- options: [ $(1).h ]
333
+ toppings: [ $(1).h ]
289
334
  desc: compile *.c
290
335
  method: |
291
336
  sys &quot;gcc -c #{@ingreds[0]}&quot;
@@ -294,8 +339,8 @@ the above is equivarent to the following in Rookbook.yaml:
294
339
  return value is a recipe created.
295
340
  </p>
296
341
  <p><a class="source-toggle" href="#"
297
- onclick="toggleCode('M000077-source');return false;">[Source]</a></p>
298
- <div class="method-source-code" id="M000077-source">
342
+ onclick="toggleCode('M000076-source');return false;">[Source]</a></p>
343
+ <div class="method-source-code" id="M000076-source">
299
344
  <pre>
300
345
  <span class="ruby-comment cmt"># File rook/kitchen.rb, line 157</span>
301
346
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recipe</span>(<span class="ruby-identifier">product</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-comment cmt"># :doc:</span>
@@ -326,51 +371,6 @@ return value is a recipe created.
326
371
  </div>
327
372
  </div>
328
373
 
329
- <div id="method-M000074" class="method-detail">
330
- <a name="M000074"></a>
331
-
332
- <div class="method-heading">
333
- <a href="#M000074" class="method-signature">
334
- <span class="method-name">variable</span><span class="method-args">(name, value, options={})</span>
335
- </a>
336
- </div>
337
-
338
- <div class="method-description">
339
- <p>
340
- define a variable in Rookbook.rb
341
- </p>
342
- <p>
343
- ex. (in Rookbook.rb)
344
- </p>
345
- <pre>
346
- variable :srcdir, 'src'
347
- variable :files, Dir.glob('src/*.rb')
348
- variable :rook_product, :all
349
- </pre>
350
- <p>
351
- the above code is equivalent to the following in Rookbook.yaml:
352
- </p>
353
- <pre>
354
- variables:
355
- - srcdir : src
356
- - files* : Dir.glob('src/*.rb')
357
- - rook_product : :all
358
- </pre>
359
- <p><a class="source-toggle" href="#"
360
- onclick="toggleCode('M000074-source');return false;">[Source]</a></p>
361
- <div class="method-source-code" id="M000074-source">
362
- <pre>
363
- <span class="ruby-comment cmt"># File rook/kitchen.rb, line 81</span>
364
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">variable</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">options</span>={}) <span class="ruby-comment cmt"># :doc:</span>
365
- <span class="ruby-identifier">hash</span> = { <span class="ruby-value str">'name'</span>=<span class="ruby-operator">&gt;</span><span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_s</span>, <span class="ruby-value str">'value'</span>=<span class="ruby-operator">&gt;</span><span class="ruby-identifier">value</span> }
366
- <span class="ruby-identifier">options</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span> <span class="ruby-identifier">hash</span>[<span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_s</span>] = <span class="ruby-identifier">value</span> }
367
- <span class="ruby-identifier">add_variable</span>(<span class="ruby-identifier">hash</span>)
368
- <span class="ruby-keyword kw">end</span>
369
- </pre>
370
- </div>
371
- </div>
372
- </div>
373
-
374
374
 
375
375
  </div>
376
376
 
@@ -115,7 +115,7 @@
115
115
 
116
116
  <div class="method-heading">
117
117
  <a href="#M000092" class="method-signature">
118
- <span class="method-name">main</span><span class="method-args">(argv=ARGV, stdout=$stdout, stderr=$stderr)</span>
118
+ <span class="method-name">main</span><span class="method-args">(argv=ARGV)</span>
119
119
  </a>
120
120
  </div>
121
121
 
@@ -124,16 +124,17 @@
124
124
  onclick="toggleCode('M000092-source');return false;">[Source]</a></p>
125
125
  <div class="method-source-code" id="M000092-source">
126
126
  <pre>
127
- <span class="ruby-comment cmt"># File rook/main.rb, line 40</span>
128
- <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">main</span>(<span class="ruby-identifier">argv</span>=<span class="ruby-constant">ARGV</span>, <span class="ruby-identifier">stdout</span>=<span class="ruby-identifier">$stdout</span>, <span class="ruby-identifier">stderr</span>=<span class="ruby-identifier">$stderr</span>)
127
+ <span class="ruby-comment cmt"># File rook/main.rb, line 38</span>
128
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">main</span>(<span class="ruby-identifier">argv</span>=<span class="ruby-constant">ARGV</span>)
129
129
  <span class="ruby-identifier">status</span> = <span class="ruby-value">0</span>
130
130
  <span class="ruby-keyword kw">begin</span>
131
- <span class="ruby-identifier">main</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">argv</span>, <span class="ruby-identifier">stdout</span>, <span class="ruby-identifier">stderr</span>)
132
- <span class="ruby-identifier">main</span>.<span class="ruby-identifier">execute</span>()
131
+ <span class="ruby-identifier">main</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">argv</span>)
132
+ <span class="ruby-identifier">output</span> = <span class="ruby-identifier">main</span>.<span class="ruby-identifier">execute</span>()
133
+ <span class="ruby-comment cmt">#print output if output</span>
133
134
  <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">RookError</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">ex</span>
134
135
  <span class="ruby-identifier">status</span> = <span class="ruby-value">1</span>
135
136
  <span class="ruby-identifier">raise</span> <span class="ruby-identifier">ex</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$rook_debug</span>
136
- <span class="ruby-identifier">stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;*** error: #{ex.message}&quot;</span>
137
+ <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;*** error: #{ex.message}&quot;</span>
137
138
  <span class="ruby-keyword kw">end</span>
138
139
  <span class="ruby-identifier">exit</span> <span class="ruby-identifier">status</span>
139
140
  <span class="ruby-keyword kw">end</span>
@@ -147,7 +148,7 @@
147
148
 
148
149
  <div class="method-heading">
149
150
  <a href="#M000091" class="method-signature">
150
- <span class="method-name">new</span><span class="method-args">(argv=ARGV, stdout=$stdout, stderr=$stderr)</span>
151
+ <span class="method-name">new</span><span class="method-args">(argv=ARGV)</span>
151
152
  </a>
152
153
  </div>
153
154
 
@@ -157,10 +158,8 @@
157
158
  <div class="method-source-code" id="M000091-source">
158
159
  <pre>
159
160
  <span class="ruby-comment cmt"># File rook/main.rb, line 30</span>
160
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">argv</span>=<span class="ruby-constant">ARGV</span>, <span class="ruby-identifier">stdout</span>=<span class="ruby-identifier">$stdout</span>, <span class="ruby-identifier">stderr</span>=<span class="ruby-identifier">$stderr</span>)
161
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">argv</span>=<span class="ruby-constant">ARGV</span>)
161
162
  <span class="ruby-ivar">@argv</span> = <span class="ruby-identifier">argv</span>
162
- <span class="ruby-ivar">@stdout</span> = <span class="ruby-identifier">stdout</span>
163
- <span class="ruby-ivar">@stderr</span> = <span class="ruby-identifier">stderr</span>
164
163
  <span class="ruby-ivar">@options</span>, <span class="ruby-ivar">@properties</span> = <span class="ruby-identifier">parse_argv</span>(<span class="ruby-ivar">@argv</span>)
165
164
  <span class="ruby-ivar">@options</span>[<span class="ruby-value">?h</span>] = <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@properties</span>[<span class="ruby-value str">'help'</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword kw">true</span>
166
165
  <span class="ruby-ivar">@products</span> = <span class="ruby-identifier">argv</span>
@@ -186,7 +185,7 @@
186
185
  onclick="toggleCode('M000093-source');return false;">[Source]</a></p>
187
186
  <div class="method-source-code" id="M000093-source">
188
187
  <pre>
189
- <span class="ruby-comment cmt"># File rook/main.rb, line 54</span>
188
+ <span class="ruby-comment cmt"># File rook/main.rb, line 53</span>
190
189
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">execute</span>
191
190
  <span class="ruby-identifier">options</span> = <span class="ruby-ivar">@options</span>
192
191
  <span class="ruby-identifier">properties</span> = <span class="ruby-ivar">@properties</span>
@@ -201,9 +200,9 @@
201
200
  <span class="ruby-identifier">cmdname</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">$0</span>)
202
201
  <span class="ruby-comment cmt">#desc = &quot;#{cmdname} - a SCM (software configuration management) tool like Make, Rake, Ant, or Cook.\n&quot;</span>
203
202
  <span class="ruby-identifier">desc</span> = <span class="ruby-node">&quot;#{cmdname} - a SCM (Software Cooking Management) tool like Make, Rake, Ant, or Cook.\n&quot;</span>
204
- <span class="ruby-ivar">@stdout</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">version</span>() <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value">?v</span>]
205
- <span class="ruby-ivar">@stdout</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">desc</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value">?h</span>]
206
- <span class="ruby-ivar">@stdout</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">help</span>() <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value">?h</span>]
203
+ <span class="ruby-identifier">puts</span> <span class="ruby-identifier">version</span>() <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value">?v</span>]
204
+ <span class="ruby-identifier">puts</span> <span class="ruby-identifier">desc</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value">?h</span>]
205
+ <span class="ruby-identifier">puts</span> <span class="ruby-identifier">help</span>() <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value">?h</span>]
207
206
  <span class="ruby-keyword kw">return</span>
208
207
  <span class="ruby-keyword kw">end</span>
209
208
 
@@ -213,20 +212,20 @@
213
212
  <span class="ruby-comment cmt">## bookname</span>
214
213
  <span class="ruby-identifier">bookname</span> = <span class="ruby-ivar">@options</span>[<span class="ruby-value">?f</span>] <span class="ruby-operator">||</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value">?b</span>]
215
214
  <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">bookname</span>
216
- <span class="ruby-identifier">test</span>(<span class="ruby-value">?f</span>, <span class="ruby-identifier">bookname</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">CommandOptionError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;cookbook '#{bookname}' not found.&quot;</span>)
215
+ <span class="ruby-identifier">test</span>(<span class="ruby-value">?f</span>, <span class="ruby-identifier">bookname</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">raise</span> <span class="ruby-identifier">_error</span>(<span class="ruby-node">&quot;cookbook '#{bookname}' not found.&quot;</span>)
217
216
  <span class="ruby-keyword kw">else</span>
218
217
  [<span class="ruby-value str">'.yaml'</span>, <span class="ruby-value str">'.yml'</span>, <span class="ruby-value str">'.rb'</span>, <span class="ruby-value str">''</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">suffix</span><span class="ruby-operator">|</span>
219
218
  <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">test</span>(<span class="ruby-value">?f</span>, <span class="ruby-identifier">bookname</span> = <span class="ruby-node">&quot;Rookbook#{suffix}&quot;</span>)
220
219
  <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">test</span>(<span class="ruby-value">?f</span>, <span class="ruby-identifier">bookname</span> = <span class="ruby-node">&quot;rookbook#{suffix}&quot;</span>)
221
220
  <span class="ruby-identifier">bookname</span> = <span class="ruby-keyword kw">nil</span>
222
221
  <span class="ruby-keyword kw">end</span>
223
- <span class="ruby-identifier">bookname</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">CommandOptionError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;cookbook 'Rookbook.yaml' or 'Rookbook.rb' not found.&quot;</span>)
222
+ <span class="ruby-identifier">bookname</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">raise</span> <span class="ruby-identifier">_error</span>(<span class="ruby-value str">&quot;cookbook 'Rookbook.yaml' or 'Rookbook.rb' not found.&quot;</span>)
224
223
  <span class="ruby-keyword kw">end</span>
225
224
 
226
225
  <span class="ruby-comment cmt">## properties filename</span>
227
226
  <span class="ruby-identifier">propfile</span> = <span class="ruby-ivar">@options</span>[<span class="ruby-value">?P</span>]
228
227
  <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">propfile</span>
229
- <span class="ruby-identifier">test</span>(<span class="ruby-value">?f</span>, <span class="ruby-identifier">propfile</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">CommandOptionError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;file '#{propfile}' not found.&quot;</span>)
228
+ <span class="ruby-identifier">test</span>(<span class="ruby-value">?f</span>, <span class="ruby-identifier">propfile</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">raise</span> <span class="ruby-identifier">_error</span>(<span class="ruby-node">&quot;file '#{propfile}' not found.&quot;</span>)
230
229
  <span class="ruby-keyword kw">else</span>
231
230
  <span class="ruby-node">%w[Rookbook.props properties.yaml]</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
232
231
  <span class="ruby-keyword kw">break</span> <span class="ruby-identifier">propfile</span> = <span class="ruby-identifier">f</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">test</span>(<span class="ruby-value">?f</span>, <span class="ruby-identifier">f</span>)
@@ -244,23 +243,33 @@
244
243
  <span class="ruby-identifier">$rook_forced</span> = <span class="ruby-ivar">@options</span>[<span class="ruby-value">?F</span>]
245
244
  <span class="ruby-identifier">$rook_noexec</span> = <span class="ruby-ivar">@options</span>[<span class="ruby-value">?n</span>] <span class="ruby-operator">?</span> <span class="ruby-value">1</span> <span class="ruby-operator">:</span> (<span class="ruby-ivar">@options</span>[<span class="ruby-value">?N</span>] <span class="ruby-operator">?</span> <span class="ruby-value">2</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>)
246
245
 
247
- <span class="ruby-comment cmt"># kitchen</span>
248
- <span class="ruby-identifier">props</span> = { <span class="ruby-identifier">:verbose=</span><span class="ruby-operator">&gt;</span><span class="ruby-identifier">$rook_verbose</span>, <span class="ruby-identifier">:forced=</span><span class="ruby-operator">&gt;</span><span class="ruby-identifier">$rook_forced</span>, <span class="ruby-identifier">:noexec=</span><span class="ruby-operator">&gt;</span><span class="ruby-identifier">$rook_noexec</span> }
249
- <span class="ruby-identifier">kitchen</span> = <span class="ruby-constant">Kitchen</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@properties</span>, <span class="ruby-identifier">props</span>)
250
-
251
246
  <span class="ruby-comment cmt">## cookbook</span>
252
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">bookname</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/\.ya?ml\z/</span>
247
+ <span class="ruby-identifier">style</span> = <span class="ruby-identifier">bookname</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/\.ya?ml\z/</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">:yaml</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">:ruby</span>
248
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">style</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:yaml</span>
253
249
  <span class="ruby-identifier">flag_expand_tab</span> = <span class="ruby-operator">!</span><span class="ruby-identifier">options</span>[<span class="ruby-value">?T</span>]
254
250
  <span class="ruby-keyword kw">begin</span>
255
251
  <span class="ruby-identifier">cookbook</span> = <span class="ruby-constant">Cookbook</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">bookname</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">flag_expand_tab</span>)
256
252
  <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">CookbookError</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">ex</span>
257
- <span class="ruby-ivar">@stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;validation error:&quot;</span>
253
+ <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;validation error:&quot;</span>
258
254
  <span class="ruby-identifier">ex</span>.<span class="ruby-identifier">errors</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">error</span><span class="ruby-operator">|</span>
259
255
  <span class="ruby-identifier">e</span> = <span class="ruby-identifier">error</span>
260
- <span class="ruby-ivar">@stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot; - line #{e.linenum}: [#{e.path}] #{e.message}&quot;</span>
256
+ <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{bookname}:#{e.linenum}: [#{e.path}] #{e.message}&quot;</span>
261
257
  <span class="ruby-keyword kw">end</span>
262
258
  <span class="ruby-keyword kw">return</span>
263
259
  <span class="ruby-keyword kw">end</span>
260
+ <span class="ruby-keyword kw">end</span>
261
+
262
+ <span class="ruby-comment cmt">## check</span>
263
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value">?c</span>]
264
+ <span class="ruby-identifier">style</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:yaml</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">raise</span> <span class="ruby-identifier">_error</span>(<span class="ruby-value str">&quot;-c: cannot check Ruby-DSL style cookbook.&quot;</span>)
265
+ <span class="ruby-identifier">cookbook</span>.<span class="ruby-identifier">validate_rubycode</span>()
266
+ <span class="ruby-keyword kw">return</span>
267
+ <span class="ruby-keyword kw">end</span>
268
+
269
+ <span class="ruby-comment cmt">## kitchen</span>
270
+ <span class="ruby-identifier">props</span> = { <span class="ruby-identifier">:verbose=</span><span class="ruby-operator">&gt;</span><span class="ruby-identifier">$rook_verbose</span>, <span class="ruby-identifier">:forced=</span><span class="ruby-operator">&gt;</span><span class="ruby-identifier">$rook_forced</span>, <span class="ruby-identifier">:noexec=</span><span class="ruby-operator">&gt;</span><span class="ruby-identifier">$rook_noexec</span> }
271
+ <span class="ruby-identifier">kitchen</span> = <span class="ruby-constant">Kitchen</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@properties</span>, <span class="ruby-identifier">props</span>)
272
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">style</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:yaml</span>
264
273
  <span class="ruby-identifier">kitchen</span>.<span class="ruby-identifier">load_book</span>(<span class="ruby-identifier">cookbook</span>)
265
274
  <span class="ruby-keyword kw">else</span>
266
275
  <span class="ruby-identifier">kitchen</span>.<span class="ruby-identifier">load_script</span>(<span class="ruby-identifier">bookname</span>)
@@ -270,15 +279,21 @@
270
279
  <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value">?l</span>] <span class="ruby-operator">||</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value">?L</span>]
271
280
  <span class="ruby-identifier">show_all</span> = <span class="ruby-ivar">@options</span>[<span class="ruby-value">?L</span>] <span class="ruby-operator">?</span> <span class="ruby-keyword kw">true</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">false</span>
272
281
  <span class="ruby-identifier">list_properties</span>(<span class="ruby-identifier">kitchen</span>, <span class="ruby-identifier">show_all</span>)
273
- <span class="ruby-ivar">@stdout</span>.<span class="ruby-identifier">puts</span>
282
+ <span class="ruby-identifier">puts</span>
274
283
  <span class="ruby-identifier">list_recipes</span>(<span class="ruby-identifier">kitchen</span>, <span class="ruby-ivar">@options</span>[<span class="ruby-value">?L</span>])
275
284
  <span class="ruby-keyword kw">return</span>
276
285
  <span class="ruby-keyword kw">end</span>
277
286
 
278
- <span class="ruby-comment cmt">## show property value</span>
287
+ <span class="ruby-comment cmt">## show property/parameter value</span>
279
288
  <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value">?p</span>]
280
- <span class="ruby-ivar">@options</span>[<span class="ruby-value">?p</span>].<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/,/</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pname</span><span class="ruby-operator">|</span>
281
- <span class="ruby-identifier">pp</span> <span class="ruby-identifier">kitchen</span>.<span class="ruby-identifier">get_property</span>(<span class="ruby-identifier">pname</span>)
289
+ <span class="ruby-ivar">@options</span>[<span class="ruby-value">?p</span>].<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/,/</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span><span class="ruby-operator">|</span>
290
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">kitchen</span>.<span class="ruby-identifier">has_parameter?</span>(<span class="ruby-identifier">name</span>)
291
+ <span class="ruby-identifier">pp</span> <span class="ruby-identifier">kitchen</span>.<span class="ruby-identifier">get_parameter</span>(<span class="ruby-identifier">name</span>)
292
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">kitchen</span>.<span class="ruby-identifier">has_property?</span>(<span class="ruby-identifier">name</span>)
293
+ <span class="ruby-identifier">pp</span> <span class="ruby-identifier">kitchen</span>.<span class="ruby-identifier">get_property</span>(<span class="ruby-identifier">name</span>)
294
+ <span class="ruby-keyword kw">else</span>
295
+ <span class="ruby-identifier">raise</span> <span class="ruby-identifier">_error</span>(<span class="ruby-node">&quot;-p #{name}: no such parameter or property.&quot;</span>)
296
+ <span class="ruby-keyword kw">end</span>
282
297
  <span class="ruby-keyword kw">end</span>
283
298
  <span class="ruby-keyword kw">return</span>
284
299
  <span class="ruby-keyword kw">end</span>
@@ -288,12 +303,12 @@
288
303
  <span class="ruby-identifier">products</span> = <span class="ruby-ivar">@products</span>
289
304
  <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">kitchen</span>.<span class="ruby-identifier">find_specific_recipe</span>(<span class="ruby-identifier">:default</span>)
290
305
  <span class="ruby-identifier">products</span> = [ <span class="ruby-identifier">:default</span> ]
291
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">prod</span> = <span class="ruby-identifier">kitchen</span>.<span class="ruby-identifier">get_variable</span>(<span class="ruby-value str">'rook_product'</span>)
306
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">prod</span> = <span class="ruby-identifier">kitchen</span>.<span class="ruby-identifier">get_parameter</span>(<span class="ruby-value str">'rook_product'</span>)
292
307
  <span class="ruby-identifier">products</span> = [ <span class="ruby-identifier">prod</span> ]
293
308
  <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">prod</span> = <span class="ruby-identifier">kitchen</span>.<span class="ruby-identifier">get_property</span>(<span class="ruby-value str">'rook_product'</span>)
294
309
  <span class="ruby-identifier">products</span> = [ <span class="ruby-identifier">prod</span> ]
295
310
  <span class="ruby-keyword kw">else</span>
296
- <span class="ruby-ivar">@stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;*** no product specified.&quot;</span>
311
+ <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;*** no product specified.&quot;</span>
297
312
  <span class="ruby-identifier">list_recipes</span>(<span class="ruby-identifier">kitchen</span>)
298
313
  <span class="ruby-keyword kw">return</span>
299
314
  <span class="ruby-keyword kw">end</span>
@@ -304,6 +319,8 @@
304
319
  <span class="ruby-identifier">kitchen</span>.<span class="ruby-identifier">start_cooking</span>(<span class="ruby-identifier">product</span>)
305
320
  <span class="ruby-keyword kw">end</span>
306
321
 
322
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
323
+
307
324
  <span class="ruby-keyword kw">end</span>
308
325
  </pre>
309
326
  </div>
@@ -89,13 +89,13 @@ ex.
89
89
  hash = {
90
90
  'product'=&gt;'hello.o',
91
91
  'ingreds'=&gt;['hello.c'],
92
- 'options'=&gt;['hello.h'],
92
+ 'toppings'=&gt;['hello.h'],
93
93
  }
94
94
 
95
95
  recipe1 = Recipe.new(hash) { gcc -o #{@product} #{@ingred} }
96
96
  recipe1.invoke()
97
97
 
98
- hash['method'] = 'gcc -o #{@product} #{@ingred}'
98
+ hash['method'] = 'sys &quot;gcc -o #{@product} #{@ingred}&quot;'
99
99
  recipe2 = Recipe.new(hash)
100
100
  recipe2.invoke()
101
101
  </pre>
@@ -114,7 +114,8 @@ ex.
114
114
  <a href="#M000084">forced?</a>&nbsp;&nbsp;
115
115
  <a href="#M000090">invoke</a>&nbsp;&nbsp;
116
116
  <a href="#M000082">match?</a>&nbsp;&nbsp;
117
- <a href="#M000081">new</a>&nbsp;&nbsp;
117
+ <a href="#M000081">matched=</a>&nbsp;&nbsp;
118
+ <a href="#M000080">new</a>&nbsp;&nbsp;
118
119
  <a href="#M000083">public?</a>&nbsp;&nbsp;
119
120
  <a href="#M000086">symbolic?</a>&nbsp;&nbsp;
120
121
  <a href="#M000089">to_specific</a>&nbsp;&nbsp;
@@ -219,7 +220,7 @@ ex.
219
220
  <td class="context-item-desc"></td>
220
221
  </tr>
221
222
  <tr class="top-aligned-row context-row">
222
- <td class="context-item-name">matches</td>
223
+ <td class="context-item-name">matched</td>
223
224
  <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
224
225
  <td class="context-item-desc"></td>
225
226
  </tr>
@@ -229,7 +230,7 @@ ex.
229
230
  <td class="context-item-desc"></td>
230
231
  </tr>
231
232
  <tr class="top-aligned-row context-row">
232
- <td class="context-item-name">options</td>
233
+ <td class="context-item-name">params</td>
233
234
  <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
234
235
  <td class="context-item-desc"></td>
235
236
  </tr>
@@ -248,6 +249,11 @@ ex.
248
249
  <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
249
250
  <td class="context-item-desc"></td>
250
251
  </tr>
252
+ <tr class="top-aligned-row context-row">
253
+ <td class="context-item-name">toppings</td>
254
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
255
+ <td class="context-item-desc"></td>
256
+ </tr>
251
257
  <tr class="top-aligned-row context-row">
252
258
  <td class="context-item-name">verbose</td>
253
259
  <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
@@ -263,19 +269,19 @@ ex.
263
269
  <div id="methods">
264
270
  <h3 class="section-bar">Public Class methods</h3>
265
271
 
266
- <div id="method-M000081" class="method-detail">
267
- <a name="M000081"></a>
272
+ <div id="method-M000080" class="method-detail">
273
+ <a name="M000080"></a>
268
274
 
269
275
  <div class="method-heading">
270
- <a href="#M000081" class="method-signature">
276
+ <a href="#M000080" class="method-signature">
271
277
  <span class="method-name">new</span><span class="method-args">(hash, &amp;block)</span>
272
278
  </a>
273
279
  </div>
274
280
 
275
281
  <div class="method-description">
276
282
  <p><a class="source-toggle" href="#"
277
- onclick="toggleCode('M000081-source');return false;">[Source]</a></p>
278
- <div class="method-source-code" id="M000081-source">
283
+ onclick="toggleCode('M000080-source');return false;">[Source]</a></p>
284
+ <div class="method-source-code" id="M000080-source">
279
285
  <pre>
280
286
  <span class="ruby-comment cmt"># File rook/recipe.rb, line 41</span>
281
287
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">hash</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
@@ -284,10 +290,10 @@ ex.
284
290
  <span class="ruby-ivar">@ingreds</span> = (<span class="ruby-identifier">hash</span>[<span class="ruby-value str">'ingreds'</span>] <span class="ruby-operator">||</span> []).<span class="ruby-identifier">flatten</span>()
285
291
  <span class="ruby-ivar">@coprods</span> = (<span class="ruby-identifier">hash</span>[<span class="ruby-value str">'coprods'</span>] <span class="ruby-operator">||</span> []).<span class="ruby-identifier">flatten</span>()
286
292
  <span class="ruby-ivar">@byprods</span> = (<span class="ruby-identifier">hash</span>[<span class="ruby-value str">'byprods'</span>] <span class="ruby-operator">||</span> []).<span class="ruby-identifier">flatten</span>()
287
- <span class="ruby-ivar">@options</span> = (<span class="ruby-identifier">hash</span>[<span class="ruby-value str">'options'</span>] <span class="ruby-operator">||</span> []).<span class="ruby-identifier">flatten</span>()
293
+ <span class="ruby-ivar">@toppings</span> = (<span class="ruby-identifier">hash</span>[<span class="ruby-value str">'toppings'</span>] <span class="ruby-operator">||</span> []).<span class="ruby-identifier">flatten</span>()
294
+ <span class="ruby-ivar">@params</span> = <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'params'</span>]
288
295
  <span class="ruby-ivar">@kind</span> = <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'kind'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">_detect_kind</span>(<span class="ruby-ivar">@product</span>)
289
- <span class="ruby-ivar">@desc</span> = <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'desc'</span>]
290
- <span class="ruby-ivar">@method</span> = <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'method'</span>]
296
+ <span class="ruby-ivar">@method</span> = <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'method*'</span>]
291
297
  <span class="ruby-ivar">@block</span> = <span class="ruby-identifier">block</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'block'</span>]
292
298
  <span class="ruby-ivar">@desc</span> = <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'desc'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">_default_desc</span>(<span class="ruby-ivar">@product</span>)
293
299
  <span class="ruby-ivar">@access</span> = <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'access'</span>] <span class="ruby-operator">||</span> (<span class="ruby-ivar">@desc</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'public'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'private'</span>)
@@ -320,11 +326,11 @@ ex.
320
326
  onclick="toggleCode('M000088-source');return false;">[Source]</a></p>
321
327
  <div class="method-source-code" id="M000088-source">
322
328
  <pre>
323
- <span class="ruby-comment cmt"># File rook/recipe.rb, line 109</span>
329
+ <span class="ruby-comment cmt"># File rook/recipe.rb, line 114</span>
324
330
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">all_ingredients</span>
325
331
  <span class="ruby-identifier">list</span> = []
326
332
  <span class="ruby-identifier">list</span>.<span class="ruby-identifier">concat</span> <span class="ruby-ivar">@ingreds</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@ingreds</span>
327
- <span class="ruby-identifier">list</span>.<span class="ruby-identifier">concat</span> <span class="ruby-ivar">@options</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options</span>
333
+ <span class="ruby-identifier">list</span>.<span class="ruby-identifier">concat</span> <span class="ruby-ivar">@toppings</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@toppings</span>
328
334
  <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">list</span>
329
335
  <span class="ruby-keyword kw">end</span>
330
336
  </pre>
@@ -346,7 +352,7 @@ ex.
346
352
  onclick="toggleCode('M000087-source');return false;">[Source]</a></p>
347
353
  <div class="method-source-code" id="M000087-source">
348
354
  <pre>
349
- <span class="ruby-comment cmt"># File rook/recipe.rb, line 101</span>
355
+ <span class="ruby-comment cmt"># File rook/recipe.rb, line 106</span>
350
356
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">all_products</span>
351
357
  <span class="ruby-identifier">list</span> = [ <span class="ruby-ivar">@product</span> ]
352
358
  <span class="ruby-identifier">list</span>.<span class="ruby-identifier">concat</span> <span class="ruby-ivar">@coprods</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@coprods</span>
@@ -372,7 +378,7 @@ ex.
372
378
  onclick="toggleCode('M000084-source');return false;">[Source]</a></p>
373
379
  <div class="method-source-code" id="M000084-source">
374
380
  <pre>
375
- <span class="ruby-comment cmt"># File rook/recipe.rb, line 86</span>
381
+ <span class="ruby-comment cmt"># File rook/recipe.rb, line 91</span>
376
382
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">forced?</span>
377
383
  <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@forced</span>
378
384
  <span class="ruby-keyword kw">end</span>
@@ -386,7 +392,7 @@ ex.
386
392
 
387
393
  <div class="method-heading">
388
394
  <a href="#M000090" class="method-signature">
389
- <span class="method-name">invoke</span><span class="method-args">(parameters)</span>
395
+ <span class="method-name">invoke</span><span class="method-args">(kitchen)</span>
390
396
  </a>
391
397
  </div>
392
398
 
@@ -395,9 +401,9 @@ ex.
395
401
  onclick="toggleCode('M000090-source');return false;">[Source]</a></p>
396
402
  <div class="method-source-code" id="M000090-source">
397
403
  <pre>
398
- <span class="ruby-comment cmt"># File rook/recipe.rb, line 174</span>
399
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">invoke</span>(<span class="ruby-identifier">parameters</span>)
400
- <span class="ruby-constant">Oven</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>).<span class="ruby-identifier">bake</span>(<span class="ruby-identifier">parameters</span>)
404
+ <span class="ruby-comment cmt"># File rook/recipe.rb, line 178</span>
405
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">invoke</span>(<span class="ruby-identifier">kitchen</span>)
406
+ <span class="ruby-constant">Oven</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>).<span class="ruby-identifier">bake</span>(<span class="ruby-identifier">kitchen</span>)
401
407
  <span class="ruby-keyword kw">end</span>
402
408
  </pre>
403
409
  </div>
@@ -418,7 +424,7 @@ ex.
418
424
  onclick="toggleCode('M000082-source');return false;">[Source]</a></p>
419
425
  <div class="method-source-code" id="M000082-source">
420
426
  <pre>
421
- <span class="ruby-comment cmt"># File rook/recipe.rb, line 76</span>
427
+ <span class="ruby-comment cmt"># File rook/recipe.rb, line 81</span>
422
428
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">match?</span>(<span class="ruby-identifier">product</span>)
423
429
  <span class="ruby-keyword kw">return</span> (<span class="ruby-ivar">@pattern</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@product</span>) <span class="ruby-operator">===</span> <span class="ruby-identifier">product</span>
424
430
  <span class="ruby-keyword kw">end</span>
@@ -427,6 +433,29 @@ ex.
427
433
  </div>
428
434
  </div>
429
435
 
436
+ <div id="method-M000081" class="method-detail">
437
+ <a name="M000081"></a>
438
+
439
+ <div class="method-heading">
440
+ <a href="#M000081" class="method-signature">
441
+ <span class="method-name">matched=</span><span class="method-args">(val)</span>
442
+ </a>
443
+ </div>
444
+
445
+ <div class="method-description">
446
+ <p><a class="source-toggle" href="#"
447
+ onclick="toggleCode('M000081-source');return false;">[Source]</a></p>
448
+ <div class="method-source-code" id="M000081-source">
449
+ <pre>
450
+ <span class="ruby-comment cmt"># File rook/recipe.rb, line 67</span>
451
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">matched=</span>(<span class="ruby-identifier">val</span>)
452
+ <span class="ruby-ivar">@matched</span> = <span class="ruby-ivar">@m</span> = <span class="ruby-identifier">val</span>
453
+ <span class="ruby-keyword kw">end</span>
454
+ </pre>
455
+ </div>
456
+ </div>
457
+ </div>
458
+
430
459
  <div id="method-M000083" class="method-detail">
431
460
  <a name="M000083"></a>
432
461
 
@@ -441,7 +470,7 @@ ex.
441
470
  onclick="toggleCode('M000083-source');return false;">[Source]</a></p>
442
471
  <div class="method-source-code" id="M000083-source">
443
472
  <pre>
444
- <span class="ruby-comment cmt"># File rook/recipe.rb, line 81</span>
473
+ <span class="ruby-comment cmt"># File rook/recipe.rb, line 86</span>
445
474
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">public?</span>
446
475
  <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@access</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'public'</span>
447
476
  <span class="ruby-keyword kw">end</span>
@@ -464,7 +493,7 @@ ex.
464
493
  onclick="toggleCode('M000086-source');return false;">[Source]</a></p>
465
494
  <div class="method-source-code" id="M000086-source">
466
495
  <pre>
467
- <span class="ruby-comment cmt"># File rook/recipe.rb, line 96</span>
496
+ <span class="ruby-comment cmt"># File rook/recipe.rb, line 101</span>
468
497
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">symbolic?</span>
469
498
  <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@symbolic</span>
470
499
  <span class="ruby-keyword kw">end</span>
@@ -487,20 +516,19 @@ ex.
487
516
  onclick="toggleCode('M000089-source');return false;">[Source]</a></p>
488
517
  <div class="method-source-code" id="M000089-source">
489
518
  <pre>
490
- <span class="ruby-comment cmt"># File rook/recipe.rb, line 157</span>
519
+ <span class="ruby-comment cmt"># File rook/recipe.rb, line 162</span>
491
520
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_specific</span>(<span class="ruby-identifier">product</span>)
492
521
  <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@pattern</span>
493
- <span class="ruby-identifier">matches</span> = <span class="ruby-ivar">@pattern</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">product</span>)
494
- <span class="ruby-identifier">matches</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">RookError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;product '#{product}' doesn't match to /#{@pattern.source}/&quot;</span>)
495
- <span class="ruby-identifier">hash</span> = { <span class="ruby-value str">'product'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">product</span> }
522
+ <span class="ruby-identifier">matched</span> = <span class="ruby-ivar">@pattern</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">product</span>)
523
+ <span class="ruby-identifier">matched</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">RookError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;product '#{product}' doesn't match to /#{@pattern.source}/&quot;</span>)
524
+ <span class="ruby-identifier">recipe</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
496
525
  <span class="ruby-identifier">instance_variables</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">var</span><span class="ruby-operator">|</span>
497
- <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">var</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'@product'</span>
498
- <span class="ruby-identifier">w</span> = <span class="ruby-identifier">var</span>[<span class="ruby-value">1</span>, <span class="ruby-identifier">var</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>] <span class="ruby-comment cmt"># '@name' =&gt; 'name'</span>
499
- <span class="ruby-identifier">hash</span>[<span class="ruby-identifier">w</span>] = <span class="ruby-constant">Util</span>.<span class="ruby-identifier">expand_matches</span>(<span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-identifier">var</span>), <span class="ruby-identifier">matches</span>)
526
+ <span class="ruby-identifier">val</span> = <span class="ruby-constant">Util</span>.<span class="ruby-identifier">expand_matches</span>(<span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-identifier">var</span>), <span class="ruby-identifier">matched</span>)
527
+ <span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-identifier">var</span>, <span class="ruby-identifier">val</span>)
500
528
  <span class="ruby-keyword kw">end</span>
501
- <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'kind'</span>] = <span class="ruby-value str">'specific'</span>
502
- <span class="ruby-identifier">recipe</span> = <span class="ruby-constant">Recipe</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">hash</span>)
503
- <span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">matches</span> = <span class="ruby-identifier">matches</span>
529
+ <span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-value str">'@product'</span>, <span class="ruby-identifier">product</span>)
530
+ <span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">kind</span> = <span class="ruby-value str">'specific'</span>
531
+ <span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">matched</span> = <span class="ruby-identifier">matched</span>
504
532
  <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">recipe</span>
505
533
  <span class="ruby-keyword kw">end</span>
506
534
  </pre>
@@ -522,7 +550,7 @@ ex.
522
550
  onclick="toggleCode('M000085-source');return false;">[Source]</a></p>
523
551
  <div class="method-source-code" id="M000085-source">
524
552
  <pre>
525
- <span class="ruby-comment cmt"># File rook/recipe.rb, line 91</span>
553
+ <span class="ruby-comment cmt"># File rook/recipe.rb, line 96</span>
526
554
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">verbose?</span>
527
555
  <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@verbose</span>
528
556
  <span class="ruby-keyword kw">end</span>