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
@@ -101,26 +101,32 @@ ex.
101
101
  <h3 class="section-bar">Methods</h3>
102
102
 
103
103
  <div class="name-list">
104
- <a href="#M000119">add_material</a>&nbsp;&nbsp;
105
- <a href="#M000116">add_precooking</a>&nbsp;&nbsp;
106
- <a href="#M000117">add_property</a>&nbsp;&nbsp;
107
- <a href="#M000121">add_recipe</a>&nbsp;&nbsp;
108
- <a href="#M000120">add_recipe_hash</a>&nbsp;&nbsp;
109
- <a href="#M000118">add_variable</a>&nbsp;&nbsp;
110
- <a href="#M000126">cook</a>&nbsp;&nbsp;
111
- <a href="#M000122">find_generic_recipe</a>&nbsp;&nbsp;
112
- <a href="#M000124">find_recipe</a>&nbsp;&nbsp;
113
- <a href="#M000123">find_specific_recipe</a>&nbsp;&nbsp;
104
+ <a href="#M000118">_evaluate_expr</a>&nbsp;&nbsp;
105
+ <a href="#M000117">_expand_value</a>&nbsp;&nbsp;
106
+ <a href="#M000126">add_material</a>&nbsp;&nbsp;
107
+ <a href="#M000125">add_parameter</a>&nbsp;&nbsp;
108
+ <a href="#M000123">add_preparation</a>&nbsp;&nbsp;
109
+ <a href="#M000124">add_property</a>&nbsp;&nbsp;
110
+ <a href="#M000127">add_recipe</a>&nbsp;&nbsp;
111
+ <a href="#M000132">cook</a>&nbsp;&nbsp;
112
+ <a href="#M000128">find_generic_recipe</a>&nbsp;&nbsp;
113
+ <a href="#M000130">find_recipe</a>&nbsp;&nbsp;
114
+ <a href="#M000129">find_specific_recipe</a>&nbsp;&nbsp;
115
+ <a href="#M000111">get_parameter</a>&nbsp;&nbsp;
114
116
  <a href="#M000110">get_property</a>&nbsp;&nbsp;
115
- <a href="#M000111">get_variable</a>&nbsp;&nbsp;
117
+ <a href="#M000114">get_value</a>&nbsp;&nbsp;
118
+ <a href="#M000109">has_parameter?</a>&nbsp;&nbsp;
116
119
  <a href="#M000108">has_property?</a>&nbsp;&nbsp;
117
- <a href="#M000109">has_variable?</a>&nbsp;&nbsp;
118
- <a href="#M000113">load_book</a>&nbsp;&nbsp;
119
- <a href="#M000112">load_books</a>&nbsp;&nbsp;
120
- <a href="#M000114">load_script</a>&nbsp;&nbsp;
121
- <a href="#M000115">load_script!</a>&nbsp;&nbsp;
120
+ <a href="#M000120">load_book</a>&nbsp;&nbsp;
121
+ <a href="#M000119">load_books</a>&nbsp;&nbsp;
122
+ <a href="#M000121">load_script</a>&nbsp;&nbsp;
123
+ <a href="#M000122">load_script!</a>&nbsp;&nbsp;
122
124
  <a href="#M000107">new</a>&nbsp;&nbsp;
123
- <a href="#M000125">start_cooking</a>&nbsp;&nbsp;
125
+ <a href="#M000116">parameter_names</a>&nbsp;&nbsp;
126
+ <a href="#M000115">property_names</a>&nbsp;&nbsp;
127
+ <a href="#M000113">set_parameter</a>&nbsp;&nbsp;
128
+ <a href="#M000112">set_property</a>&nbsp;&nbsp;
129
+ <a href="#M000131">start_cooking</a>&nbsp;&nbsp;
124
130
  </div>
125
131
  </div>
126
132
 
@@ -154,22 +160,22 @@ ex.
154
160
  <td class="context-item-desc"></td>
155
161
  </tr>
156
162
  <tr class="top-aligned-row context-row">
157
- <td class="context-item-name">precookings</td>
163
+ <td class="context-item-name">parameters</td>
158
164
  <td class="context-item-value">&nbsp;[R]&nbsp;</td>
159
165
  <td class="context-item-desc"></td>
160
166
  </tr>
161
167
  <tr class="top-aligned-row context-row">
162
- <td class="context-item-name">properties</td>
168
+ <td class="context-item-name">preparations</td>
163
169
  <td class="context-item-value">&nbsp;[R]&nbsp;</td>
164
170
  <td class="context-item-desc"></td>
165
171
  </tr>
166
172
  <tr class="top-aligned-row context-row">
167
- <td class="context-item-name">recipes</td>
173
+ <td class="context-item-name">properties</td>
168
174
  <td class="context-item-value">&nbsp;[R]&nbsp;</td>
169
175
  <td class="context-item-desc"></td>
170
176
  </tr>
171
177
  <tr class="top-aligned-row context-row">
172
- <td class="context-item-name">variables</td>
178
+ <td class="context-item-name">recipes</td>
173
179
  <td class="context-item-value">&nbsp;[R]&nbsp;</td>
174
180
  <td class="context-item-desc"></td>
175
181
  </tr>
@@ -197,21 +203,21 @@ ex.
197
203
  onclick="toggleCode('M000107-source');return false;">[Source]</a></p>
198
204
  <div class="method-source-code" id="M000107-source">
199
205
  <pre>
200
- <span class="ruby-comment cmt"># File rook/kitchen.rb, line 294</span>
206
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 300</span>
201
207
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">properties</span>={}, <span class="ruby-identifier">options</span>={})
202
- <span class="ruby-ivar">@parameters</span> = <span class="ruby-constant">Parameters</span>.<span class="ruby-identifier">new</span>
208
+ <span class="ruby-ivar">@value_table</span> = <span class="ruby-constant">ValueTable</span>.<span class="ruby-identifier">new</span>
203
209
  <span class="ruby-ivar">@properties</span> = []
204
- <span class="ruby-ivar">@variables</span> = []
210
+ <span class="ruby-ivar">@parameters</span> = []
205
211
  <span class="ruby-identifier">properties</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-identifier">value</span><span class="ruby-operator">|</span>
206
212
  <span class="ruby-identifier">add_property</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>})
207
213
  <span class="ruby-keyword kw">end</span>
208
214
  <span class="ruby-ivar">@recipes</span> = []
209
215
  <span class="ruby-ivar">@recipe_table</span> = {}
210
216
  <span class="ruby-ivar">@materials</span> = []
211
- <span class="ruby-ivar">@precookings</span> = []
217
+ <span class="ruby-ivar">@preparations</span> = []
212
218
  <span class="ruby-ivar">@forced</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:forced</span>]
213
219
  <span class="ruby-comment cmt">#@verbose = options[:verbose]</span>
214
- <span class="ruby-comment cmt">#@noexec = options[:noexec]</span>
220
+ <span class="ruby-ivar">@noexec</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:noexec</span>]
215
221
  <span class="ruby-keyword kw">end</span>
216
222
  </pre>
217
223
  </div>
@@ -220,200 +226,233 @@ ex.
220
226
 
221
227
  <h3 class="section-bar">Public Instance methods</h3>
222
228
 
223
- <div id="method-M000119" class="method-detail">
224
- <a name="M000119"></a>
229
+ <div id="method-M000118" class="method-detail">
230
+ <a name="M000118"></a>
225
231
 
226
232
  <div class="method-heading">
227
- <a href="#M000119" class="method-signature">
228
- <span class="method-name">add_material</span><span class="method-args">(material_str)</span>
233
+ <a href="#M000118" class="method-signature">
234
+ <span class="method-name">_evaluate_expr</span><span class="method-args">(expr, linenum=nil)</span>
229
235
  </a>
230
236
  </div>
231
237
 
232
238
  <div class="method-description">
233
239
  <p><a class="source-toggle" href="#"
234
- onclick="toggleCode('M000119-source');return false;">[Source]</a></p>
235
- <div class="method-source-code" id="M000119-source">
240
+ onclick="toggleCode('M000118-source');return false;">[Source]</a></p>
241
+ <div class="method-source-code" id="M000118-source">
236
242
  <pre>
237
- <span class="ruby-comment cmt"># File rook/kitchen.rb, line 424</span>
238
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_material</span>(<span class="ruby-identifier">material_str</span>)
239
- <span class="ruby-identifier">mat_str</span> = <span class="ruby-ivar">@parameters</span>.<span class="ruby-identifier">evaluate_value</span>(<span class="ruby-identifier">material_str</span>)
240
- <span class="ruby-ivar">@materials</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">mat_str</span>
243
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 360</span>
244
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">_evaluate_expr</span>(<span class="ruby-identifier">expr</span>, <span class="ruby-identifier">linenum</span>=<span class="ruby-keyword kw">nil</span>)
245
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@value_table</span>.<span class="ruby-identifier">evaluate_expr</span>(<span class="ruby-identifier">expr</span>, <span class="ruby-ivar">@filename</span>, <span class="ruby-identifier">linenum</span>)
241
246
  <span class="ruby-keyword kw">end</span>
242
247
  </pre>
243
248
  </div>
244
249
  </div>
245
250
  </div>
246
251
 
247
- <div id="method-M000116" class="method-detail">
248
- <a name="M000116"></a>
252
+ <div id="method-M000117" class="method-detail">
253
+ <a name="M000117"></a>
249
254
 
250
255
  <div class="method-heading">
251
- <a href="#M000116" class="method-signature">
252
- <span class="method-name">add_precooking</span><span class="method-args">(code_str, bookname='', linenum=1)</span>
256
+ <a href="#M000117" class="method-signature">
257
+ <span class="method-name">_expand_value</span><span class="method-args">(value, linenum=nil)</span>
253
258
  </a>
254
259
  </div>
255
260
 
256
261
  <div class="method-description">
257
262
  <p><a class="source-toggle" href="#"
258
- onclick="toggleCode('M000116-source');return false;">[Source]</a></p>
259
- <div class="method-source-code" id="M000116-source">
263
+ onclick="toggleCode('M000117-source');return false;">[Source]</a></p>
264
+ <div class="method-source-code" id="M000117-source">
260
265
  <pre>
261
- <span class="ruby-comment cmt"># File rook/kitchen.rb, line 374</span>
262
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_precooking</span>(<span class="ruby-identifier">code_str</span>, <span class="ruby-identifier">bookname</span>=<span class="ruby-value str">''</span>, <span class="ruby-identifier">linenum</span>=<span class="ruby-value">1</span>)
263
- <span class="ruby-ivar">@precookings</span> <span class="ruby-operator">&lt;&lt;</span> [<span class="ruby-identifier">code_str</span>, <span class="ruby-identifier">bookname</span>, <span class="ruby-identifier">linenum</span>]
264
- <span class="ruby-constant">Util</span>.<span class="ruby-identifier">evaluate</span>(<span class="ruby-identifier">code_str</span>, <span class="ruby-identifier">bookname</span>, <span class="ruby-identifier">linenum</span>) <span class="ruby-comment cmt"># or instance_eval?</span>
266
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 356</span>
267
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">_expand_value</span>(<span class="ruby-identifier">value</span>, <span class="ruby-identifier">linenum</span>=<span class="ruby-keyword kw">nil</span>)
268
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@value_table</span>.<span class="ruby-identifier">expand_value</span>(<span class="ruby-identifier">value</span>, <span class="ruby-ivar">@filename</span>, <span class="ruby-identifier">linenum</span>)
265
269
  <span class="ruby-keyword kw">end</span>
266
270
  </pre>
267
271
  </div>
268
272
  </div>
269
273
  </div>
270
274
 
271
- <div id="method-M000117" class="method-detail">
272
- <a name="M000117"></a>
275
+ <div id="method-M000126" class="method-detail">
276
+ <a name="M000126"></a>
273
277
 
274
278
  <div class="method-heading">
275
- <a href="#M000117" class="method-signature">
276
- <span class="method-name">add_property</span><span class="method-args">(hash, bookname='')</span>
279
+ <a href="#M000126" class="method-signature">
280
+ <span class="method-name">add_material</span><span class="method-args">(material_str)</span>
277
281
  </a>
278
282
  </div>
279
283
 
280
284
  <div class="method-description">
281
285
  <p><a class="source-toggle" href="#"
282
- onclick="toggleCode('M000117-source');return false;">[Source]</a></p>
283
- <div class="method-source-code" id="M000117-source">
286
+ onclick="toggleCode('M000126-source');return false;">[Source]</a></p>
287
+ <div class="method-source-code" id="M000126-source">
284
288
  <pre>
285
- <span class="ruby-comment cmt"># File rook/kitchen.rb, line 380</span>
286
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_property</span>(<span class="ruby-identifier">hash</span>, <span class="ruby-identifier">bookname</span>=<span class="ruby-value str">''</span>)
287
- <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'access'</span>] <span class="ruby-operator">||=</span> <span class="ruby-value str">'public'</span>
289
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 460</span>
290
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_material</span>(<span class="ruby-identifier">material_str</span>)
291
+ <span class="ruby-identifier">mat_str</span> = <span class="ruby-identifier">_expand_value</span>(<span class="ruby-identifier">material_str</span>)
292
+ <span class="ruby-ivar">@materials</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">mat_str</span>
293
+ <span class="ruby-keyword kw">end</span>
294
+ </pre>
295
+ </div>
296
+ </div>
297
+ </div>
298
+
299
+ <div id="method-M000125" class="method-detail">
300
+ <a name="M000125"></a>
301
+
302
+ <div class="method-heading">
303
+ <a href="#M000125" class="method-signature">
304
+ <span class="method-name">add_parameter</span><span class="method-args">(hash, bookname='')</span>
305
+ </a>
306
+ </div>
307
+
308
+ <div class="method-description">
309
+ <p><a class="source-toggle" href="#"
310
+ onclick="toggleCode('M000125-source');return false;">[Source]</a></p>
311
+ <div class="method-source-code" id="M000125-source">
312
+ <pre>
313
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 439</span>
314
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_parameter</span>(<span class="ruby-identifier">hash</span>, <span class="ruby-identifier">bookname</span>=<span class="ruby-value str">''</span>)
288
315
  <span class="ruby-identifier">name</span> = <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'name'</span>]
289
- <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@parameters</span>.<span class="ruby-identifier">has_property?</span>(<span class="ruby-identifier">name</span>)
290
- <span class="ruby-identifier">value</span> = <span class="ruby-ivar">@parameters</span>.<span class="ruby-identifier">get_property</span>(<span class="ruby-identifier">name</span>)
316
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">has_parameter?</span>(<span class="ruby-identifier">name</span>)
317
+ <span class="ruby-ivar">@parameters</span>.<span class="ruby-identifier">delete_if</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">h</span><span class="ruby-operator">|</span> <span class="ruby-identifier">h</span>[<span class="ruby-value str">'name'</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">name</span> }
318
+ <span class="ruby-keyword kw">end</span>
319
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-value str">'value'</span>)
320
+ <span class="ruby-identifier">value</span> = <span class="ruby-identifier">_expand_value</span>(<span class="ruby-identifier">hash</span>[<span class="ruby-value str">'value'</span>])
321
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-value str">'value*'</span>)
322
+ <span class="ruby-identifier">code</span> = <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'value*'</span>]
323
+ <span class="ruby-identifier">linenum</span> = <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'linenum'</span>]
324
+ <span class="ruby-identifier">code</span> = <span class="ruby-identifier">_expand_value</span>(<span class="ruby-identifier">code</span>)
325
+ <span class="ruby-identifier">value</span> = <span class="ruby-identifier">_evaluate_expr</span>(<span class="ruby-identifier">code</span>, <span class="ruby-identifier">linenum</span>)
291
326
  <span class="ruby-keyword kw">else</span>
292
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-value str">'value'</span>)
293
- <span class="ruby-identifier">value</span> = <span class="ruby-ivar">@parameters</span>.<span class="ruby-identifier">evaluate_value</span>(<span class="ruby-identifier">hash</span>[<span class="ruby-value str">'value'</span>])
294
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-value str">'expr'</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-value str">'value*'</span>)
295
- <span class="ruby-identifier">expr</span> = <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-value str">'expr'</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'expr'</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'value*'</span>]
296
- <span class="ruby-identifier">expr</span> = <span class="ruby-ivar">@parameters</span>.<span class="ruby-identifier">evaluate_value</span>(<span class="ruby-identifier">expr</span>)
297
- <span class="ruby-identifier">value</span> = <span class="ruby-ivar">@valuemap</span>.<span class="ruby-identifier">evaluate_expr</span>(<span class="ruby-identifier">expr</span>, <span class="ruby-identifier">bookname</span>, <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'linenum'</span>])
298
- <span class="ruby-keyword kw">else</span>
299
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">RookError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;property '#{name}': no value.&quot;</span>)
300
- <span class="ruby-keyword kw">end</span>
301
- <span class="ruby-ivar">@parameters</span>.<span class="ruby-identifier">set_property</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>)
302
- <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'value'</span>] = <span class="ruby-identifier">value</span>
303
- <span class="ruby-ivar">@properties</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">hash</span>
327
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">RookError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;parameter '#{name}': no value.&quot;</span>)
304
328
  <span class="ruby-keyword kw">end</span>
305
- <span class="ruby-comment cmt">#eval &quot;$#{name} = value&quot;</span>
329
+ <span class="ruby-identifier">set_parameter</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>)
330
+ <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'value'</span>] = <span class="ruby-identifier">value</span>
331
+ <span class="ruby-ivar">@parameters</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">hash</span>
306
332
  <span class="ruby-keyword kw">end</span>
307
333
  </pre>
308
334
  </div>
309
335
  </div>
310
336
  </div>
311
337
 
312
- <div id="method-M000121" class="method-detail">
313
- <a name="M000121"></a>
338
+ <div id="method-M000123" class="method-detail">
339
+ <a name="M000123"></a>
314
340
 
315
341
  <div class="method-heading">
316
- <a href="#M000121" class="method-signature">
317
- <span class="method-name">add_recipe</span><span class="method-args">(recipe)</span>
342
+ <a href="#M000123" class="method-signature">
343
+ <span class="method-name">add_preparation</span><span class="method-args">(code_str, bookname='', linenum=1)</span>
318
344
  </a>
319
345
  </div>
320
346
 
321
347
  <div class="method-description">
322
348
  <p><a class="source-toggle" href="#"
323
- onclick="toggleCode('M000121-source');return false;">[Source]</a></p>
324
- <div class="method-source-code" id="M000121-source">
349
+ onclick="toggleCode('M000123-source');return false;">[Source]</a></p>
350
+ <div class="method-source-code" id="M000123-source">
325
351
  <pre>
326
- <span class="ruby-comment cmt"># File rook/kitchen.rb, line 447</span>
327
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_recipe</span>(<span class="ruby-identifier">recipe</span>)
328
- <span class="ruby-ivar">@recipes</span>.<span class="ruby-identifier">delete_if</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">r</span><span class="ruby-operator">|</span> <span class="ruby-identifier">r</span>.<span class="ruby-identifier">product</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">product</span> } <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@recipe_table</span>[<span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">product</span>]
329
- <span class="ruby-ivar">@recipe_table</span>[<span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">product</span>] = <span class="ruby-identifier">recipe</span>
330
- <span class="ruby-ivar">@recipes</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">recipe</span>
352
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 409</span>
353
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_preparation</span>(<span class="ruby-identifier">code_str</span>, <span class="ruby-identifier">bookname</span>=<span class="ruby-value str">''</span>, <span class="ruby-identifier">linenum</span>=<span class="ruby-value">1</span>)
354
+ <span class="ruby-ivar">@preparations</span> <span class="ruby-operator">&lt;&lt;</span> [<span class="ruby-identifier">code_str</span>, <span class="ruby-identifier">bookname</span>, <span class="ruby-identifier">linenum</span>]
355
+ <span class="ruby-constant">Util</span>.<span class="ruby-identifier">evaluate</span>(<span class="ruby-identifier">code_str</span>, <span class="ruby-identifier">bookname</span>, <span class="ruby-identifier">linenum</span>) <span class="ruby-comment cmt"># or instance_eval?</span>
331
356
  <span class="ruby-keyword kw">end</span>
332
357
  </pre>
333
358
  </div>
334
359
  </div>
335
360
  </div>
336
361
 
337
- <div id="method-M000120" class="method-detail">
338
- <a name="M000120"></a>
362
+ <div id="method-M000124" class="method-detail">
363
+ <a name="M000124"></a>
339
364
 
340
365
  <div class="method-heading">
341
- <a href="#M000120" class="method-signature">
342
- <span class="method-name">add_recipe_hash</span><span class="method-args">(hash)</span>
366
+ <a href="#M000124" class="method-signature">
367
+ <span class="method-name">add_property</span><span class="method-args">(hash, bookname='')</span>
343
368
  </a>
344
369
  </div>
345
370
 
346
371
  <div class="method-description">
347
372
  <p><a class="source-toggle" href="#"
348
- onclick="toggleCode('M000120-source');return false;">[Source]</a></p>
349
- <div class="method-source-code" id="M000120-source">
373
+ onclick="toggleCode('M000124-source');return false;">[Source]</a></p>
374
+ <div class="method-source-code" id="M000124-source">
350
375
  <pre>
351
- <span class="ruby-comment cmt"># File rook/kitchen.rb, line 430</span>
352
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_recipe_hash</span>(<span class="ruby-identifier">hash</span>)
353
- <span class="ruby-node">%w[ingreds byprods coprods options]</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span>
354
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-node">&quot;#{key}*&quot;</span>)
355
- <span class="ruby-identifier">val</span> = <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-node">&quot;#{key}*&quot;</span>)
356
- <span class="ruby-identifier">assert</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>), <span class="ruby-node">&quot;val.class=#{val.class}&quot;</span>
357
- <span class="ruby-identifier">val</span> = <span class="ruby-ivar">@parameters</span>.<span class="ruby-identifier">evaluate_expr</span>(<span class="ruby-identifier">val</span>)
358
- <span class="ruby-identifier">val</span> = [ <span class="ruby-identifier">val</span> ] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
359
- <span class="ruby-identifier">hash</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">val</span>
360
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-identifier">key</span>)
361
- <span class="ruby-identifier">val</span> = <span class="ruby-ivar">@parameters</span>.<span class="ruby-identifier">evaluate_expr</span>(<span class="ruby-identifier">val</span>)
362
- <span class="ruby-identifier">hash</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">val</span>
376
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 415</span>
377
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_property</span>(<span class="ruby-identifier">hash</span>, <span class="ruby-identifier">bookname</span>=<span class="ruby-value str">''</span>)
378
+ <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'access'</span>] <span class="ruby-operator">||=</span> <span class="ruby-value str">'public'</span>
379
+ <span class="ruby-identifier">name</span> = <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'name'</span>]
380
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">has_property?</span>(<span class="ruby-identifier">name</span>)
381
+ <span class="ruby-identifier">value</span> = <span class="ruby-identifier">get_property</span>(<span class="ruby-identifier">name</span>)
382
+ <span class="ruby-keyword kw">else</span>
383
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-value str">'value'</span>)
384
+ <span class="ruby-identifier">value</span> = <span class="ruby-identifier">_expand_value</span>(<span class="ruby-identifier">hash</span>[<span class="ruby-value str">'value'</span>])
385
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-value str">'expr'</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-value str">'value*'</span>)
386
+ <span class="ruby-identifier">code</span> = <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-value str">'expr'</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'expr'</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'value*'</span>]
387
+ <span class="ruby-identifier">code</span> = <span class="ruby-identifier">_expand_value</span>(<span class="ruby-identifier">code</span>)
388
+ <span class="ruby-identifier">value</span> = <span class="ruby-identifier">_evaluate_expr</span>(<span class="ruby-identifier">code</span>, <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'linenum'</span>])
389
+ <span class="ruby-keyword kw">else</span>
390
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">RookError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;property '#{name}': no value.&quot;</span>)
363
391
  <span class="ruby-keyword kw">end</span>
392
+ <span class="ruby-identifier">set_property</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>)
393
+ <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'value'</span>] = <span class="ruby-identifier">value</span>
394
+ <span class="ruby-ivar">@properties</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">hash</span>
364
395
  <span class="ruby-keyword kw">end</span>
365
- <span class="ruby-identifier">r</span> = <span class="ruby-constant">Recipe</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">hash</span>[<span class="ruby-value str">'product'</span>])
366
- <span class="ruby-identifier">add_recipe</span>(<span class="ruby-identifier">r</span>)
396
+ <span class="ruby-comment cmt">#eval &quot;$#{name} = value&quot;</span>
397
+ <span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-node">&quot;@#{name}&quot;</span>, <span class="ruby-identifier">value</span>)
367
398
  <span class="ruby-keyword kw">end</span>
368
399
  </pre>
369
400
  </div>
370
401
  </div>
371
402
  </div>
372
403
 
373
- <div id="method-M000118" class="method-detail">
374
- <a name="M000118"></a>
404
+ <div id="method-M000127" class="method-detail">
405
+ <a name="M000127"></a>
375
406
 
376
407
  <div class="method-heading">
377
- <a href="#M000118" class="method-signature">
378
- <span class="method-name">add_variable</span><span class="method-args">(hash, bookname='')</span>
408
+ <a href="#M000127" class="method-signature">
409
+ <span class="method-name">add_recipe</span><span class="method-args">(recipe)</span>
379
410
  </a>
380
411
  </div>
381
412
 
382
413
  <div class="method-description">
414
+ <p>
415
+ def add_recipe_hash(hash)
416
+ </p>
417
+ <pre>
418
+ %w[ingreds byprods coprods toppings].each do |key|
419
+ if hash.key?(&quot;#{key}*&quot;)
420
+ val = hash.delete(&quot;#{key}*&quot;)
421
+ assert val.is_a?(String), &quot;val.class=#{val.class}&quot;
422
+ val = _evaluate_expr(val)
423
+ val = [ val ] unless val.is_a?(Array)
424
+ hash[key] = val
425
+ elsif hash.key?(key)
426
+ val = _evaluate_expr(val)
427
+ hash[key] = val
428
+ end
429
+ end
430
+ r = Recipe.new(hash['product'])
431
+ add_recipe(r)
432
+ </pre>
433
+ <p>
434
+ end
435
+ </p>
383
436
  <p><a class="source-toggle" href="#"
384
- onclick="toggleCode('M000118-source');return false;">[Source]</a></p>
385
- <div class="method-source-code" id="M000118-source">
437
+ onclick="toggleCode('M000127-source');return false;">[Source]</a></p>
438
+ <div class="method-source-code" id="M000127-source">
386
439
  <pre>
387
- <span class="ruby-comment cmt"># File rook/kitchen.rb, line 403</span>
388
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_variable</span>(<span class="ruby-identifier">hash</span>, <span class="ruby-identifier">bookname</span>=<span class="ruby-value str">''</span>)
389
- <span class="ruby-identifier">name</span> = <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'name'</span>]
390
- <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@parameters</span>.<span class="ruby-identifier">has_variable?</span>(<span class="ruby-identifier">name</span>)
391
- <span class="ruby-ivar">@variables</span>.<span class="ruby-identifier">delete_if</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">h</span><span class="ruby-operator">|</span> <span class="ruby-identifier">h</span>[<span class="ruby-value str">'name'</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">name</span> }
392
- <span class="ruby-keyword kw">end</span>
393
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-value str">'value'</span>)
394
- <span class="ruby-identifier">value</span> = <span class="ruby-ivar">@parameters</span>.<span class="ruby-identifier">evaluate_value</span>(<span class="ruby-identifier">hash</span>[<span class="ruby-value str">'value'</span>])
395
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-value str">'expr'</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-value str">'value*'</span>)
396
- <span class="ruby-identifier">expr</span> = <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-value str">'expr'</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'expr'</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'value*'</span>]
397
- <span class="ruby-identifier">linenum</span> = <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'linenum'</span>] <span class="ruby-operator">||</span> <span class="ruby-value">1</span>
398
- <span class="ruby-identifier">expr</span> = <span class="ruby-ivar">@parameters</span>.<span class="ruby-identifier">evaluate_value</span>(<span class="ruby-identifier">expr</span>)
399
- <span class="ruby-identifier">value</span> = <span class="ruby-ivar">@parameters</span>.<span class="ruby-identifier">evaluate_expr</span>(<span class="ruby-identifier">expr</span>, <span class="ruby-identifier">bookname</span>, <span class="ruby-identifier">linenum</span>)
400
- <span class="ruby-keyword kw">else</span>
401
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">RookError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;variable '#{name}': no value.&quot;</span>)
402
- <span class="ruby-keyword kw">end</span>
403
- <span class="ruby-ivar">@parameters</span>.<span class="ruby-identifier">set_variable</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>)
404
- <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'value'</span>] = <span class="ruby-identifier">value</span>
405
- <span class="ruby-ivar">@variables</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">hash</span>
440
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 484</span>
441
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_recipe</span>(<span class="ruby-identifier">recipe</span>)
442
+ <span class="ruby-ivar">@recipes</span>.<span class="ruby-identifier">delete_if</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">r</span><span class="ruby-operator">|</span> <span class="ruby-identifier">r</span>.<span class="ruby-identifier">product</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">product</span> } <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@recipe_table</span>[<span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">product</span>]
443
+ <span class="ruby-ivar">@recipe_table</span>[<span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">product</span>] = <span class="ruby-identifier">recipe</span>
444
+ <span class="ruby-ivar">@recipes</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">recipe</span>
406
445
  <span class="ruby-keyword kw">end</span>
407
446
  </pre>
408
447
  </div>
409
448
  </div>
410
449
  </div>
411
450
 
412
- <div id="method-M000126" class="method-detail">
413
- <a name="M000126"></a>
451
+ <div id="method-M000132" class="method-detail">
452
+ <a name="M000132"></a>
414
453
 
415
454
  <div class="method-heading">
416
- <a href="#M000126" class="method-signature">
455
+ <a href="#M000132" class="method-signature">
417
456
  <span class="method-name">cook</span><span class="method-args">(product, cooking, level=0, verbose=nil, parent_fingerprint=false)</span>
418
457
  </a>
419
458
  </div>
@@ -426,10 +465,10 @@ cook product
426
465
  return true when product recipe is invoked, else return false.
427
466
  </p>
428
467
  <p><a class="source-toggle" href="#"
429
- onclick="toggleCode('M000126-source');return false;">[Source]</a></p>
430
- <div class="method-source-code" id="M000126-source">
468
+ onclick="toggleCode('M000132-source');return false;">[Source]</a></p>
469
+ <div class="method-source-code" id="M000132-source">
431
470
  <pre>
432
- <span class="ruby-comment cmt"># File rook/kitchen.rb, line 485</span>
471
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 522</span>
433
472
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cook</span>(<span class="ruby-identifier">product</span>, <span class="ruby-identifier">cooking</span>, <span class="ruby-identifier">level</span>=<span class="ruby-value">0</span>, <span class="ruby-identifier">verbose</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">parent_fingerprint</span>=<span class="ruby-keyword kw">false</span>)
434
473
  <span class="ruby-comment cmt">## check</span>
435
474
  <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@materials</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">product</span>)
@@ -463,7 +502,7 @@ return true when product recipe is invoked, else return false.
463
502
 
464
503
  <span class="ruby-comment cmt">## ingredients</span>
465
504
  <span class="ruby-identifier">ingreds</span> = <span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">ingreds</span> <span class="ruby-value">? </span><span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">ingreds</span>.<span class="ruby-identifier">dup</span> <span class="ruby-operator">:</span> []
466
- <span class="ruby-identifier">ingreds</span>.<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">options</span>.<span class="ruby-identifier">find_all</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">test</span>(<span class="ruby-value">?e</span>, <span class="ruby-identifier">f</span>) }) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">options</span>
505
+ <span class="ruby-identifier">ingreds</span>.<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">toppings</span>.<span class="ruby-identifier">find_all</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">test</span>(<span class="ruby-value">?e</span>, <span class="ruby-identifier">f</span>) }) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">toppings</span>
467
506
  <span class="ruby-comment cmt"># ingreds.each do |ingred|</span>
468
507
  <span class="ruby-comment cmt"># flag = cook(ingred, cooking, level+1, recipe.verbose?, recipe.fingerprint)</span>
469
508
  <span class="ruby-comment cmt"># flag_exec = true if flag</span>
@@ -493,7 +532,7 @@ return true when product recipe is invoked, else return false.
493
532
 
494
533
  <span class="ruby-comment cmt">## invoke ingredients' recipe</span>
495
534
  <span class="ruby-comment cmt">#ingreds = recipe.ingreds ? recipe.ingreds.dup : []</span>
496
- <span class="ruby-comment cmt">#ingreds.concat(recipe.options.find_all { |f| test(?e, f) }) if recipe.options</span>
535
+ <span class="ruby-comment cmt">#ingreds.concat(recipe.toppings.find_all { |f| test(?e, f) }) if recipe.toppings</span>
497
536
  <span class="ruby-identifier">ingreds</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ingred</span><span class="ruby-operator">|</span>
498
537
  <span class="ruby-identifier">flag</span> = <span class="ruby-identifier">cook</span>(<span class="ruby-identifier">ingred</span>, <span class="ruby-identifier">cooking</span>, <span class="ruby-identifier">level</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>, <span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">verbose?</span>, <span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">fingerprint</span>)
499
538
  <span class="ruby-identifier">flag_exec</span> = <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">flag</span>
@@ -512,7 +551,8 @@ return true when product recipe is invoked, else return false.
512
551
  <span class="ruby-keyword kw">end</span>
513
552
  <span class="ruby-identifier">report</span>(<span class="ruby-identifier">product</span>, <span class="ruby-identifier">level</span>, <span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">verbose?</span>)
514
553
  <span class="ruby-keyword kw">begin</span>
515
- <span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">invoke</span>(<span class="ruby-ivar">@parameters</span>)
554
+ <span class="ruby-comment cmt">#recipe.invoke(@value_table)</span>
555
+ <span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">invoke</span>(<span class="ruby-keyword kw">self</span>)
516
556
  <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">ex</span>
517
557
  <span class="ruby-identifier">prods</span> = [ <span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">product</span> ]
518
558
  <span class="ruby-identifier">prods</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">coprods</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">coprods</span>
@@ -526,7 +566,7 @@ return true when product recipe is invoked, else return false.
526
566
  <span class="ruby-keyword kw">end</span>
527
567
 
528
568
  <span class="ruby-comment cmt">## validate whether product is generated</span>
529
- <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">symbolic?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">test</span>(<span class="ruby-value">?e</span>, <span class="ruby-identifier">product</span>)
569
+ <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">recipe</span>.<span class="ruby-identifier">symbolic?</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@noexec</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">test</span>(<span class="ruby-value">?e</span>, <span class="ruby-identifier">product</span>)
530
570
  <span class="ruby-identifier">raise</span> <span class="ruby-constant">RookError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;product '#{Util.to_str(product)}': not generated&quot;</span>)
531
571
  <span class="ruby-keyword kw">end</span>
532
572
 
@@ -550,21 +590,21 @@ return true when product recipe is invoked, else return false.
550
590
  </div>
551
591
  </div>
552
592
 
553
- <div id="method-M000122" class="method-detail">
554
- <a name="M000122"></a>
593
+ <div id="method-M000128" class="method-detail">
594
+ <a name="M000128"></a>
555
595
 
556
596
  <div class="method-heading">
557
- <a href="#M000122" class="method-signature">
597
+ <a href="#M000128" class="method-signature">
558
598
  <span class="method-name">find_generic_recipe</span><span class="method-args">(product)</span>
559
599
  </a>
560
600
  </div>
561
601
 
562
602
  <div class="method-description">
563
603
  <p><a class="source-toggle" href="#"
564
- onclick="toggleCode('M000122-source');return false;">[Source]</a></p>
565
- <div class="method-source-code" id="M000122-source">
604
+ onclick="toggleCode('M000128-source');return false;">[Source]</a></p>
605
+ <div class="method-source-code" id="M000128-source">
566
606
  <pre>
567
- <span class="ruby-comment cmt"># File rook/kitchen.rb, line 454</span>
607
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 491</span>
568
608
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">find_generic_recipe</span>(<span class="ruby-identifier">product</span>)
569
609
  <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@recipes</span>.<span class="ruby-identifier">find</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">r</span><span class="ruby-operator">|</span> <span class="ruby-identifier">r</span>.<span class="ruby-identifier">kind</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'generic'</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">r</span>.<span class="ruby-identifier">match?</span>(<span class="ruby-identifier">product</span>) }
570
610
  <span class="ruby-keyword kw">end</span>
@@ -573,21 +613,21 @@ return true when product recipe is invoked, else return false.
573
613
  </div>
574
614
  </div>
575
615
 
576
- <div id="method-M000124" class="method-detail">
577
- <a name="M000124"></a>
616
+ <div id="method-M000130" class="method-detail">
617
+ <a name="M000130"></a>
578
618
 
579
619
  <div class="method-heading">
580
- <a href="#M000124" class="method-signature">
620
+ <a href="#M000130" class="method-signature">
581
621
  <span class="method-name">find_recipe</span><span class="method-args">(product)</span>
582
622
  </a>
583
623
  </div>
584
624
 
585
625
  <div class="method-description">
586
626
  <p><a class="source-toggle" href="#"
587
- onclick="toggleCode('M000124-source');return false;">[Source]</a></p>
588
- <div class="method-source-code" id="M000124-source">
627
+ onclick="toggleCode('M000130-source');return false;">[Source]</a></p>
628
+ <div class="method-source-code" id="M000130-source">
589
629
  <pre>
590
- <span class="ruby-comment cmt"># File rook/kitchen.rb, line 464</span>
630
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 501</span>
591
631
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">find_recipe</span>(<span class="ruby-identifier">product</span>)
592
632
  <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">find_specific_recipe</span>(<span class="ruby-identifier">product</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">find_generic_recipe</span>(<span class="ruby-identifier">product</span>)
593
633
  <span class="ruby-keyword kw">end</span>
@@ -596,21 +636,21 @@ return true when product recipe is invoked, else return false.
596
636
  </div>
597
637
  </div>
598
638
 
599
- <div id="method-M000123" class="method-detail">
600
- <a name="M000123"></a>
639
+ <div id="method-M000129" class="method-detail">
640
+ <a name="M000129"></a>
601
641
 
602
642
  <div class="method-heading">
603
- <a href="#M000123" class="method-signature">
643
+ <a href="#M000129" class="method-signature">
604
644
  <span class="method-name">find_specific_recipe</span><span class="method-args">(product)</span>
605
645
  </a>
606
646
  </div>
607
647
 
608
648
  <div class="method-description">
609
649
  <p><a class="source-toggle" href="#"
610
- onclick="toggleCode('M000123-source');return false;">[Source]</a></p>
611
- <div class="method-source-code" id="M000123-source">
650
+ onclick="toggleCode('M000129-source');return false;">[Source]</a></p>
651
+ <div class="method-source-code" id="M000129-source">
612
652
  <pre>
613
- <span class="ruby-comment cmt"># File rook/kitchen.rb, line 459</span>
653
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 496</span>
614
654
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">find_specific_recipe</span>(<span class="ruby-identifier">product</span>)
615
655
  <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@recipes</span>.<span class="ruby-identifier">find</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">r</span><span class="ruby-operator">|</span> <span class="ruby-identifier">r</span>.<span class="ruby-identifier">kind</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'specific'</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">r</span>.<span class="ruby-identifier">match?</span>(<span class="ruby-identifier">product</span>) }
616
656
  <span class="ruby-keyword kw">end</span>
@@ -619,6 +659,29 @@ return true when product recipe is invoked, else return false.
619
659
  </div>
620
660
  </div>
621
661
 
662
+ <div id="method-M000111" class="method-detail">
663
+ <a name="M000111"></a>
664
+
665
+ <div class="method-heading">
666
+ <a href="#M000111" class="method-signature">
667
+ <span class="method-name">get_parameter</span><span class="method-args">(name)</span>
668
+ </a>
669
+ </div>
670
+
671
+ <div class="method-description">
672
+ <p><a class="source-toggle" href="#"
673
+ onclick="toggleCode('M000111-source');return false;">[Source]</a></p>
674
+ <div class="method-source-code" id="M000111-source">
675
+ <pre>
676
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 332</span>
677
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_parameter</span>(<span class="ruby-identifier">name</span>)
678
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@value_table</span>.<span class="ruby-identifier">get_parameter</span>(<span class="ruby-identifier">name</span>)
679
+ <span class="ruby-keyword kw">end</span>
680
+ </pre>
681
+ </div>
682
+ </div>
683
+ </div>
684
+
622
685
  <div id="method-M000110" class="method-detail">
623
686
  <a name="M000110"></a>
624
687
 
@@ -633,125 +696,125 @@ return true when product recipe is invoked, else return false.
633
696
  onclick="toggleCode('M000110-source');return false;">[Source]</a></p>
634
697
  <div class="method-source-code" id="M000110-source">
635
698
  <pre>
636
- <span class="ruby-comment cmt"># File rook/kitchen.rb, line 322</span>
699
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 328</span>
637
700
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_property</span>(<span class="ruby-identifier">name</span>)
638
- <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@parameters</span>.<span class="ruby-identifier">get_property</span>(<span class="ruby-identifier">name</span>)
701
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@value_table</span>.<span class="ruby-identifier">get_property</span>(<span class="ruby-identifier">name</span>)
639
702
  <span class="ruby-keyword kw">end</span>
640
703
  </pre>
641
704
  </div>
642
705
  </div>
643
706
  </div>
644
707
 
645
- <div id="method-M000111" class="method-detail">
646
- <a name="M000111"></a>
708
+ <div id="method-M000114" class="method-detail">
709
+ <a name="M000114"></a>
647
710
 
648
711
  <div class="method-heading">
649
- <a href="#M000111" class="method-signature">
650
- <span class="method-name">get_variable</span><span class="method-args">(name)</span>
712
+ <a href="#M000114" class="method-signature">
713
+ <span class="method-name">get_value</span><span class="method-args">(name)</span>
651
714
  </a>
652
715
  </div>
653
716
 
654
717
  <div class="method-description">
655
718
  <p><a class="source-toggle" href="#"
656
- onclick="toggleCode('M000111-source');return false;">[Source]</a></p>
657
- <div class="method-source-code" id="M000111-source">
719
+ onclick="toggleCode('M000114-source');return false;">[Source]</a></p>
720
+ <div class="method-source-code" id="M000114-source">
658
721
  <pre>
659
- <span class="ruby-comment cmt"># File rook/kitchen.rb, line 326</span>
660
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_variable</span>(<span class="ruby-identifier">name</span>)
661
- <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@parameters</span>.<span class="ruby-identifier">get_variable</span>(<span class="ruby-identifier">name</span>)
722
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 344</span>
723
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_value</span>(<span class="ruby-identifier">name</span>)
724
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@value_table</span>.<span class="ruby-identifier">get_value</span>(<span class="ruby-identifier">name</span>)
662
725
  <span class="ruby-keyword kw">end</span>
663
726
  </pre>
664
727
  </div>
665
728
  </div>
666
729
  </div>
667
730
 
668
- <div id="method-M000108" class="method-detail">
669
- <a name="M000108"></a>
731
+ <div id="method-M000109" class="method-detail">
732
+ <a name="M000109"></a>
670
733
 
671
734
  <div class="method-heading">
672
- <a href="#M000108" class="method-signature">
673
- <span class="method-name">has_property?</span><span class="method-args">(name)</span>
735
+ <a href="#M000109" class="method-signature">
736
+ <span class="method-name">has_parameter?</span><span class="method-args">(name)</span>
674
737
  </a>
675
738
  </div>
676
739
 
677
740
  <div class="method-description">
678
- <p>
679
- attr_reader :forced, :quiet, :noexec
680
- </p>
681
741
  <p><a class="source-toggle" href="#"
682
- onclick="toggleCode('M000108-source');return false;">[Source]</a></p>
683
- <div class="method-source-code" id="M000108-source">
742
+ onclick="toggleCode('M000109-source');return false;">[Source]</a></p>
743
+ <div class="method-source-code" id="M000109-source">
684
744
  <pre>
685
- <span class="ruby-comment cmt"># File rook/kitchen.rb, line 314</span>
686
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_property?</span>(<span class="ruby-identifier">name</span>)
687
- <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@parameters</span>.<span class="ruby-identifier">has_property?</span>(<span class="ruby-identifier">name</span>)
745
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 324</span>
746
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_parameter?</span>(<span class="ruby-identifier">name</span>)
747
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@value_table</span>.<span class="ruby-identifier">has_parameter?</span>(<span class="ruby-identifier">name</span>)
688
748
  <span class="ruby-keyword kw">end</span>
689
749
  </pre>
690
750
  </div>
691
751
  </div>
692
752
  </div>
693
753
 
694
- <div id="method-M000109" class="method-detail">
695
- <a name="M000109"></a>
754
+ <div id="method-M000108" class="method-detail">
755
+ <a name="M000108"></a>
696
756
 
697
757
  <div class="method-heading">
698
- <a href="#M000109" class="method-signature">
699
- <span class="method-name">has_variable?</span><span class="method-args">(name)</span>
758
+ <a href="#M000108" class="method-signature">
759
+ <span class="method-name">has_property?</span><span class="method-args">(name)</span>
700
760
  </a>
701
761
  </div>
702
762
 
703
763
  <div class="method-description">
764
+ <p>
765
+ attr_reader :forced, :quiet, :noexec
766
+ </p>
704
767
  <p><a class="source-toggle" href="#"
705
- onclick="toggleCode('M000109-source');return false;">[Source]</a></p>
706
- <div class="method-source-code" id="M000109-source">
768
+ onclick="toggleCode('M000108-source');return false;">[Source]</a></p>
769
+ <div class="method-source-code" id="M000108-source">
707
770
  <pre>
708
- <span class="ruby-comment cmt"># File rook/kitchen.rb, line 318</span>
709
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_variable?</span>(<span class="ruby-identifier">name</span>)
710
- <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@parameters</span>.<span class="ruby-identifier">has_variable?</span>(<span class="ruby-identifier">name</span>)
771
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 320</span>
772
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_property?</span>(<span class="ruby-identifier">name</span>)
773
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@value_table</span>.<span class="ruby-identifier">has_property?</span>(<span class="ruby-identifier">name</span>)
711
774
  <span class="ruby-keyword kw">end</span>
712
775
  </pre>
713
776
  </div>
714
777
  </div>
715
778
  </div>
716
779
 
717
- <div id="method-M000113" class="method-detail">
718
- <a name="M000113"></a>
780
+ <div id="method-M000120" class="method-detail">
781
+ <a name="M000120"></a>
719
782
 
720
783
  <div class="method-heading">
721
- <a href="#M000113" class="method-signature">
784
+ <a href="#M000120" class="method-signature">
722
785
  <span class="method-name">load_book</span><span class="method-args">(cookbook)</span>
723
786
  </a>
724
787
  </div>
725
788
 
726
789
  <div class="method-description">
727
790
  <p><a class="source-toggle" href="#"
728
- onclick="toggleCode('M000113-source');return false;">[Source]</a></p>
729
- <div class="method-source-code" id="M000113-source">
791
+ onclick="toggleCode('M000120-source');return false;">[Source]</a></p>
792
+ <div class="method-source-code" id="M000120-source">
730
793
  <pre>
731
- <span class="ruby-comment cmt"># File rook/kitchen.rb, line 335</span>
794
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 370</span>
732
795
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load_book</span>(<span class="ruby-identifier">cookbook</span>)
733
796
  <span class="ruby-identifier">b</span> = <span class="ruby-identifier">cookbook</span>
734
- <span class="ruby-comment cmt"># precooking</span>
735
- <span class="ruby-identifier">b</span>.<span class="ruby-identifier">precookings</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">hash</span><span class="ruby-operator">|</span>
736
- <span class="ruby-identifier">add_precooking</span>(<span class="ruby-identifier">hash</span>[<span class="ruby-value str">'code'</span>], <span class="ruby-identifier">b</span>.<span class="ruby-identifier">bookname</span>, <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'linenum'</span>])
737
- <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">precooking</span>
797
+ <span class="ruby-comment cmt"># preparation</span>
798
+ <span class="ruby-identifier">b</span>.<span class="ruby-identifier">preparations</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">hash</span><span class="ruby-operator">|</span>
799
+ <span class="ruby-identifier">add_preparation</span>(<span class="ruby-identifier">hash</span>[<span class="ruby-value str">'code'</span>], <span class="ruby-identifier">b</span>.<span class="ruby-identifier">bookname</span>, <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'linenum'</span>])
800
+ <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">preparation</span>
738
801
  <span class="ruby-comment cmt"># properties</span>
739
802
  <span class="ruby-identifier">b</span>.<span class="ruby-identifier">properties</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">hash</span><span class="ruby-operator">|</span>
740
803
  <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'bookname'</span>] = <span class="ruby-identifier">b</span>.<span class="ruby-identifier">bookname</span>
741
804
  <span class="ruby-identifier">add_property</span>(<span class="ruby-identifier">hash</span>, <span class="ruby-identifier">b</span>.<span class="ruby-identifier">bookname</span>)
742
805
  <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">properties</span>
743
- <span class="ruby-comment cmt"># variables</span>
744
- <span class="ruby-identifier">b</span>.<span class="ruby-identifier">variables</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">hash</span><span class="ruby-operator">|</span>
806
+ <span class="ruby-comment cmt"># parameters</span>
807
+ <span class="ruby-identifier">b</span>.<span class="ruby-identifier">parameters</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">hash</span><span class="ruby-operator">|</span>
745
808
  <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'bookname'</span>] = <span class="ruby-identifier">b</span>.<span class="ruby-identifier">bookname</span>
746
- <span class="ruby-identifier">add_variable</span>(<span class="ruby-identifier">hash</span>, <span class="ruby-identifier">b</span>.<span class="ruby-identifier">bookname</span>)
747
- <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">variables</span>
809
+ <span class="ruby-identifier">add_parameter</span>(<span class="ruby-identifier">hash</span>, <span class="ruby-identifier">b</span>.<span class="ruby-identifier">bookname</span>)
810
+ <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">parameters</span>
748
811
  <span class="ruby-comment cmt"># materials</span>
749
812
  <span class="ruby-identifier">b</span>.<span class="ruby-identifier">materials</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">nonprod</span><span class="ruby-operator">|</span>
750
- <span class="ruby-identifier">add_nonproduct</span>(<span class="ruby-identifier">nonprod</span>)
813
+ <span class="ruby-identifier">add_material</span>(<span class="ruby-identifier">nonprod</span>)
751
814
  <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">materials</span>
752
815
  <span class="ruby-comment cmt"># recipes</span>
753
816
  <span class="ruby-identifier">b</span>.<span class="ruby-identifier">recipes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">hash</span><span class="ruby-operator">|</span>
754
- <span class="ruby-identifier">hash</span> = <span class="ruby-ivar">@parameters</span>.<span class="ruby-identifier">evaluate_value</span>(<span class="ruby-identifier">hash</span>)
817
+ <span class="ruby-identifier">hash</span> = <span class="ruby-ivar">@value_table</span>.<span class="ruby-identifier">expand_value</span>(<span class="ruby-identifier">hash</span>)
755
818
  <span class="ruby-identifier">hash</span>[<span class="ruby-value str">'bookname'</span>] = <span class="ruby-identifier">b</span>.<span class="ruby-identifier">bookname</span>
756
819
  <span class="ruby-identifier">recipe</span> = <span class="ruby-constant">Recipe</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">hash</span>)
757
820
  <span class="ruby-identifier">add_recipe</span>(<span class="ruby-identifier">recipe</span>)
@@ -762,21 +825,21 @@ attr_reader :forced, :quiet, :noexec
762
825
  </div>
763
826
  </div>
764
827
 
765
- <div id="method-M000112" class="method-detail">
766
- <a name="M000112"></a>
828
+ <div id="method-M000119" class="method-detail">
829
+ <a name="M000119"></a>
767
830
 
768
831
  <div class="method-heading">
769
- <a href="#M000112" class="method-signature">
832
+ <a href="#M000119" class="method-signature">
770
833
  <span class="method-name">load_books</span><span class="method-args">(cookbooks)</span>
771
834
  </a>
772
835
  </div>
773
836
 
774
837
  <div class="method-description">
775
838
  <p><a class="source-toggle" href="#"
776
- onclick="toggleCode('M000112-source');return false;">[Source]</a></p>
777
- <div class="method-source-code" id="M000112-source">
839
+ onclick="toggleCode('M000119-source');return false;">[Source]</a></p>
840
+ <div class="method-source-code" id="M000119-source">
778
841
  <pre>
779
- <span class="ruby-comment cmt"># File rook/kitchen.rb, line 330</span>
842
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 365</span>
780
843
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load_books</span>(<span class="ruby-identifier">cookbooks</span>)
781
844
  <span class="ruby-identifier">cookboos</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cookbook</span><span class="ruby-operator">|</span> <span class="ruby-identifier">load_book</span>(<span class="ruby-identifier">cookbook</span>) <span class="ruby-keyword kw">end</span>
782
845
  <span class="ruby-keyword kw">end</span>
@@ -785,21 +848,21 @@ attr_reader :forced, :quiet, :noexec
785
848
  </div>
786
849
  </div>
787
850
 
788
- <div id="method-M000114" class="method-detail">
789
- <a name="M000114"></a>
851
+ <div id="method-M000121" class="method-detail">
852
+ <a name="M000121"></a>
790
853
 
791
854
  <div class="method-heading">
792
- <a href="#M000114" class="method-signature">
855
+ <a href="#M000121" class="method-signature">
793
856
  <span class="method-name">load_script</span><span class="method-args">(filename)</span>
794
857
  </a>
795
858
  </div>
796
859
 
797
860
  <div class="method-description">
798
861
  <p><a class="source-toggle" href="#"
799
- onclick="toggleCode('M000114-source');return false;">[Source]</a></p>
800
- <div class="method-source-code" id="M000114-source">
862
+ onclick="toggleCode('M000121-source');return false;">[Source]</a></p>
863
+ <div class="method-source-code" id="M000121-source">
801
864
  <pre>
802
- <span class="ruby-comment cmt"># File rook/kitchen.rb, line 365</span>
865
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 400</span>
803
866
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load_script</span>(<span class="ruby-identifier">filename</span>)
804
867
  <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">instance_eval</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">filename</span>), <span class="ruby-identifier">filename</span>, <span class="ruby-value">1</span>
805
868
  <span class="ruby-keyword kw">end</span>
@@ -808,12 +871,58 @@ attr_reader :forced, :quiet, :noexec
808
871
  </div>
809
872
  </div>
810
873
 
874
+ <div id="method-M000122" class="method-detail">
875
+ <a name="M000122"></a>
876
+
877
+ <div class="method-heading">
878
+ <a href="#M000122" class="method-signature">
879
+ <span class="method-name">load_script!</span><span class="method-args">(script, filename)</span>
880
+ </a>
881
+ </div>
882
+
883
+ <div class="method-description">
884
+ <p><a class="source-toggle" href="#"
885
+ onclick="toggleCode('M000122-source');return false;">[Source]</a></p>
886
+ <div class="method-source-code" id="M000122-source">
887
+ <pre>
888
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 404</span>
889
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load_script!</span>(<span class="ruby-identifier">script</span>, <span class="ruby-identifier">filename</span>)
890
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">instance_eval</span> <span class="ruby-identifier">script</span>, <span class="ruby-identifier">filename</span>, <span class="ruby-value">1</span>
891
+ <span class="ruby-keyword kw">end</span>
892
+ </pre>
893
+ </div>
894
+ </div>
895
+ </div>
896
+
897
+ <div id="method-M000116" class="method-detail">
898
+ <a name="M000116"></a>
899
+
900
+ <div class="method-heading">
901
+ <a href="#M000116" class="method-signature">
902
+ <span class="method-name">parameter_names</span><span class="method-args">()</span>
903
+ </a>
904
+ </div>
905
+
906
+ <div class="method-description">
907
+ <p><a class="source-toggle" href="#"
908
+ onclick="toggleCode('M000116-source');return false;">[Source]</a></p>
909
+ <div class="method-source-code" id="M000116-source">
910
+ <pre>
911
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 352</span>
912
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parameter_names</span>
913
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@value_table</span>.<span class="ruby-identifier">parameter_names</span>
914
+ <span class="ruby-keyword kw">end</span>
915
+ </pre>
916
+ </div>
917
+ </div>
918
+ </div>
919
+
811
920
  <div id="method-M000115" class="method-detail">
812
921
  <a name="M000115"></a>
813
922
 
814
923
  <div class="method-heading">
815
924
  <a href="#M000115" class="method-signature">
816
- <span class="method-name">load_script!</span><span class="method-args">(script, filename)</span>
925
+ <span class="method-name">property_names</span><span class="method-args">()</span>
817
926
  </a>
818
927
  </div>
819
928
 
@@ -822,30 +931,76 @@ attr_reader :forced, :quiet, :noexec
822
931
  onclick="toggleCode('M000115-source');return false;">[Source]</a></p>
823
932
  <div class="method-source-code" id="M000115-source">
824
933
  <pre>
825
- <span class="ruby-comment cmt"># File rook/kitchen.rb, line 369</span>
826
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load_script!</span>(<span class="ruby-identifier">script</span>, <span class="ruby-identifier">filename</span>)
827
- <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">instance_eval</span> <span class="ruby-identifier">script</span>, <span class="ruby-identifier">filename</span>, <span class="ruby-value">1</span>
934
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 348</span>
935
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">property_names</span>
936
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@value_table</span>.<span class="ruby-identifier">property_names</span>
828
937
  <span class="ruby-keyword kw">end</span>
829
938
  </pre>
830
939
  </div>
831
940
  </div>
832
941
  </div>
833
942
 
834
- <div id="method-M000125" class="method-detail">
835
- <a name="M000125"></a>
943
+ <div id="method-M000113" class="method-detail">
944
+ <a name="M000113"></a>
836
945
 
837
946
  <div class="method-heading">
838
- <a href="#M000125" class="method-signature">
947
+ <a href="#M000113" class="method-signature">
948
+ <span class="method-name">set_parameter</span><span class="method-args">(name, value)</span>
949
+ </a>
950
+ </div>
951
+
952
+ <div class="method-description">
953
+ <p><a class="source-toggle" href="#"
954
+ onclick="toggleCode('M000113-source');return false;">[Source]</a></p>
955
+ <div class="method-source-code" id="M000113-source">
956
+ <pre>
957
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 340</span>
958
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_parameter</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>)
959
+ <span class="ruby-ivar">@value_table</span>.<span class="ruby-identifier">set_parameter</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>)
960
+ <span class="ruby-keyword kw">end</span>
961
+ </pre>
962
+ </div>
963
+ </div>
964
+ </div>
965
+
966
+ <div id="method-M000112" class="method-detail">
967
+ <a name="M000112"></a>
968
+
969
+ <div class="method-heading">
970
+ <a href="#M000112" class="method-signature">
971
+ <span class="method-name">set_property</span><span class="method-args">(name, value)</span>
972
+ </a>
973
+ </div>
974
+
975
+ <div class="method-description">
976
+ <p><a class="source-toggle" href="#"
977
+ onclick="toggleCode('M000112-source');return false;">[Source]</a></p>
978
+ <div class="method-source-code" id="M000112-source">
979
+ <pre>
980
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 336</span>
981
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_property</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>)
982
+ <span class="ruby-ivar">@value_table</span>.<span class="ruby-identifier">set_property</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>)
983
+ <span class="ruby-keyword kw">end</span>
984
+ </pre>
985
+ </div>
986
+ </div>
987
+ </div>
988
+
989
+ <div id="method-M000131" class="method-detail">
990
+ <a name="M000131"></a>
991
+
992
+ <div class="method-heading">
993
+ <a href="#M000131" class="method-signature">
839
994
  <span class="method-name">start_cooking</span><span class="method-args">(product)</span>
840
995
  </a>
841
996
  </div>
842
997
 
843
998
  <div class="method-description">
844
999
  <p><a class="source-toggle" href="#"
845
- onclick="toggleCode('M000125-source');return false;">[Source]</a></p>
846
- <div class="method-source-code" id="M000125-source">
1000
+ onclick="toggleCode('M000131-source');return false;">[Source]</a></p>
1001
+ <div class="method-source-code" id="M000131-source">
847
1002
  <pre>
848
- <span class="ruby-comment cmt"># File rook/kitchen.rb, line 469</span>
1003
+ <span class="ruby-comment cmt"># File rook/kitchen.rb, line 506</span>
849
1004
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">start_cooking</span>(<span class="ruby-identifier">product</span>)
850
1005
  <span class="ruby-identifier">cooking</span> = <span class="ruby-constant">Cooking</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">product</span>)
851
1006
  <span class="ruby-keyword kw">begin</span>