genosaurus 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,614 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: Genosaurus</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">Genosaurus</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../files/lib/genosaurus_rb.html">
59
+ lib/genosaurus.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ Object
69
+ </td>
70
+ </tr>
71
+ </table>
72
+ </div>
73
+ <!-- banner header -->
74
+
75
+ <div id="bodyContent">
76
+
77
+
78
+
79
+ <div id="contextContent">
80
+
81
+
82
+
83
+ </div>
84
+
85
+ <div id="method-list">
86
+ <h3 class="section-bar">Methods</h3>
87
+
88
+ <div class="name-list">
89
+ <a href="#M000007">after_generate</a>&nbsp;&nbsp;
90
+ <a href="#M000006">before_generate</a>&nbsp;&nbsp;
91
+ <a href="#M000013">directory</a>&nbsp;&nbsp;
92
+ <a href="#M000014">generate</a>&nbsp;&nbsp;
93
+ <a href="#M000008">manifest</a>&nbsp;&nbsp;
94
+ <a href="#M000004">manifest_path</a>&nbsp;&nbsp;
95
+ <a href="#M000002">new</a>&nbsp;&nbsp;
96
+ <a href="#M000011">param</a>&nbsp;&nbsp;
97
+ <a href="#M000009">require_param</a>&nbsp;&nbsp;
98
+ <a href="#M000010">required_params</a>&nbsp;&nbsp;
99
+ <a href="#M000001">run</a>&nbsp;&nbsp;
100
+ <a href="#M000005">setup</a>&nbsp;&nbsp;
101
+ <a href="#M000012">template</a>&nbsp;&nbsp;
102
+ <a href="#M000003">templates_directory_path</a>&nbsp;&nbsp;
103
+ </div>
104
+ </div>
105
+
106
+ </div>
107
+
108
+
109
+ <!-- if includes -->
110
+ <div id="includes">
111
+ <h3 class="section-bar">Included Modules</h3>
112
+
113
+ <div id="includes-list">
114
+ <span class="include-name">FileUtils</span>
115
+ </div>
116
+ </div>
117
+
118
+ <div id="section">
119
+
120
+
121
+
122
+
123
+
124
+
125
+
126
+
127
+ <!-- if method_list -->
128
+ <div id="methods">
129
+ <h3 class="section-bar">Public Class methods</h3>
130
+
131
+ <div id="method-M000002" class="method-detail">
132
+ <a name="M000002"></a>
133
+
134
+ <div class="method-heading">
135
+ <a href="#M000002" class="method-signature">
136
+ <span class="method-name">new</span><span class="method-args">(options = {})</span>
137
+ </a>
138
+ </div>
139
+
140
+ <div class="method-description">
141
+ <p>
142
+ Takes any options needed for this generator. If the generator requires any
143
+ parameters an ArgumentError exception will be raised if those parameters
144
+ are found in the options Hash. The <a
145
+ href="Genosaurus.html#M000005">setup</a> method is called at the end of the
146
+ initialization.
147
+ </p>
148
+ <p><a class="source-toggle" href="#"
149
+ onclick="toggleCode('M000002-source');return false;">[Source]</a></p>
150
+ <div class="method-source-code" id="M000002-source">
151
+ <pre>
152
+ <span class="ruby-comment cmt"># File lib/genosaurus.rb, line 24</span>
153
+ 24: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span> = {})
154
+ 25: <span class="ruby-ivar">@options</span> = <span class="ruby-identifier">options</span>
155
+ 26: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">required_params</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
156
+ 27: <span class="ruby-identifier">raise</span> <span class="ruby-operator">::</span><span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;The required parameter '#{p.to_s.upcase}' is missing for this generator!&quot;</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">param</span>(<span class="ruby-identifier">p</span>)
157
+ 28: <span class="ruby-keyword kw">end</span>
158
+ 29: <span class="ruby-ivar">@generator_name</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">name</span>
159
+ 30: <span class="ruby-ivar">@generator_name_underscore</span> = <span class="ruby-ivar">@generator_name</span>.<span class="ruby-identifier">underscore</span>
160
+ 31: <span class="ruby-ivar">@templates_directory_path</span> = <span class="ruby-keyword kw">nil</span>
161
+ 32: <span class="ruby-ivar">@manifest_path</span> = <span class="ruby-keyword kw">nil</span>
162
+ 33: <span class="ruby-identifier">$&quot;</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>
163
+ 34: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">match</span>(<span class="ruby-node">/#{@generator_name_underscore}\.rb$/</span>)
164
+ 35: <span class="ruby-ivar">@templates_directory_path</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">f</span>), <span class="ruby-value str">&quot;templates&quot;</span>)
165
+ 36: <span class="ruby-ivar">@manifest_path</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">f</span>), <span class="ruby-value str">&quot;manifest.yml&quot;</span>)
166
+ 37: <span class="ruby-keyword kw">end</span>
167
+ 38: <span class="ruby-keyword kw">end</span>
168
+ 39: <span class="ruby-identifier">setup</span>
169
+ 40: <span class="ruby-keyword kw">end</span>
170
+ </pre>
171
+ </div>
172
+ </div>
173
+ </div>
174
+
175
+ <div id="method-M000009" class="method-detail">
176
+ <a name="M000009"></a>
177
+
178
+ <div class="method-heading">
179
+ <a href="#M000009" class="method-signature">
180
+ <span class="method-name">require_param</span><span class="method-args">(*args)</span>
181
+ </a>
182
+ </div>
183
+
184
+ <div class="method-description">
185
+ <p>
186
+ Used to define arguments that are required by the generator.
187
+ </p>
188
+ <p><a class="source-toggle" href="#"
189
+ onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
190
+ <div class="method-source-code" id="M000009-source">
191
+ <pre>
192
+ <span class="ruby-comment cmt"># File lib/genosaurus.rb, line 103</span>
193
+ 103: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">require_param</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
194
+ 104: <span class="ruby-identifier">required_params</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">args</span>
195
+ 105: <span class="ruby-identifier">required_params</span>.<span class="ruby-identifier">flatten!</span>
196
+ 106: <span class="ruby-keyword kw">end</span>
197
+ </pre>
198
+ </div>
199
+ </div>
200
+ </div>
201
+
202
+ <div id="method-M000010" class="method-detail">
203
+ <a name="M000010"></a>
204
+
205
+ <div class="method-heading">
206
+ <a href="#M000010" class="method-signature">
207
+ <span class="method-name">required_params</span><span class="method-args">()</span>
208
+ </a>
209
+ </div>
210
+
211
+ <div class="method-description">
212
+ <p>
213
+ Returns the <a href="Genosaurus.html#M000010">required_params</a> array.
214
+ </p>
215
+ <p><a class="source-toggle" href="#"
216
+ onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
217
+ <div class="method-source-code" id="M000010-source">
218
+ <pre>
219
+ <span class="ruby-comment cmt"># File lib/genosaurus.rb, line 109</span>
220
+ 109: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">required_params</span>
221
+ 110: <span class="ruby-ivar">@required_params</span> <span class="ruby-operator">||=</span> []
222
+ 111: <span class="ruby-keyword kw">end</span>
223
+ </pre>
224
+ </div>
225
+ </div>
226
+ </div>
227
+
228
+ <div id="method-M000001" class="method-detail">
229
+ <a name="M000001"></a>
230
+
231
+ <div class="method-heading">
232
+ <a href="#M000001" class="method-signature">
233
+ <span class="method-name">run</span><span class="method-args">(options = ENV.to_hash)</span>
234
+ </a>
235
+ </div>
236
+
237
+ <div class="method-description">
238
+ <p>
239
+ Instantiates a <a href="Genosaurus.html#M000002">new</a> <a
240
+ href="Genosaurus.html">Genosaurus</a>, passing the ENV hash as options into
241
+ it, runs the <a href="Genosaurus.html#M000014">generate</a> method, and
242
+ returns the <a href="Genosaurus.html">Genosaurus</a> object.
243
+ </p>
244
+ <p><a class="source-toggle" href="#"
245
+ onclick="toggleCode('M000001-source');return false;">[Source]</a></p>
246
+ <div class="method-source-code" id="M000001-source">
247
+ <pre>
248
+ <span class="ruby-comment cmt"># File lib/genosaurus.rb, line 14</span>
249
+ 14: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">run</span>(<span class="ruby-identifier">options</span> = <span class="ruby-constant">ENV</span>.<span class="ruby-identifier">to_hash</span>)
250
+ 15: <span class="ruby-identifier">gen</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">options</span>)
251
+ 16: <span class="ruby-identifier">gen</span>.<span class="ruby-identifier">generate</span>
252
+ 17: <span class="ruby-identifier">gen</span>
253
+ 18: <span class="ruby-keyword kw">end</span>
254
+ </pre>
255
+ </div>
256
+ </div>
257
+ </div>
258
+
259
+ <h3 class="section-bar">Public Instance methods</h3>
260
+
261
+ <div id="method-M000007" class="method-detail">
262
+ <a name="M000007"></a>
263
+
264
+ <div class="method-heading">
265
+ <a href="#M000007" class="method-signature">
266
+ <span class="method-name">after_generate</span><span class="method-args">()</span>
267
+ </a>
268
+ </div>
269
+
270
+ <div class="method-description">
271
+ <p>
272
+ To be overridden in subclasses to do work after the <a
273
+ href="Genosaurus.html#M000014">generate</a> method is <a
274
+ href="Genosaurus.html#M000001">run</a>. This is a simple way to call other
275
+ generators.
276
+ </p>
277
+ <p><a class="source-toggle" href="#"
278
+ onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
279
+ <div class="method-source-code" id="M000007-source">
280
+ <pre>
281
+ <span class="ruby-comment cmt"># File lib/genosaurus.rb, line 69</span>
282
+ 69: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">after_generate</span>
283
+ 70: <span class="ruby-keyword kw">end</span>
284
+ </pre>
285
+ </div>
286
+ </div>
287
+ </div>
288
+
289
+ <div id="method-M000006" class="method-detail">
290
+ <a name="M000006"></a>
291
+
292
+ <div class="method-heading">
293
+ <a href="#M000006" class="method-signature">
294
+ <span class="method-name">before_generate</span><span class="method-args">()</span>
295
+ </a>
296
+ </div>
297
+
298
+ <div class="method-description">
299
+ <p>
300
+ To be overridden in subclasses to do work before the <a
301
+ href="Genosaurus.html#M000014">generate</a> method is <a
302
+ href="Genosaurus.html#M000001">run</a>.
303
+ </p>
304
+ <p><a class="source-toggle" href="#"
305
+ onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
306
+ <div class="method-source-code" id="M000006-source">
307
+ <pre>
308
+ <span class="ruby-comment cmt"># File lib/genosaurus.rb, line 64</span>
309
+ 64: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">before_generate</span>
310
+ 65: <span class="ruby-keyword kw">end</span>
311
+ </pre>
312
+ </div>
313
+ </div>
314
+ </div>
315
+
316
+ <div id="method-M000013" class="method-detail">
317
+ <a name="M000013"></a>
318
+
319
+ <div class="method-heading">
320
+ <a href="#M000013" class="method-signature">
321
+ <span class="method-name">directory</span><span class="method-args">(output_dir, options = @options)</span>
322
+ </a>
323
+ </div>
324
+
325
+ <div class="method-description">
326
+ <p>
327
+ Creates the specified <a href="Genosaurus.html#M000013">directory</a>.
328
+ </p>
329
+ <p><a class="source-toggle" href="#"
330
+ onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
331
+ <div class="method-source-code" id="M000013-source">
332
+ <pre>
333
+ <span class="ruby-comment cmt"># File lib/genosaurus.rb, line 141</span>
334
+ 141: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">directory</span>(<span class="ruby-identifier">output_dir</span>, <span class="ruby-identifier">options</span> = <span class="ruby-ivar">@options</span>)
335
+ 142: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$genosaurus_output_directory</span>
336
+ 143: <span class="ruby-identifier">output_dir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">$genosaurus_output_directory</span>, <span class="ruby-identifier">output_dir</span>)
337
+ 144: <span class="ruby-keyword kw">end</span>
338
+ 145: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-identifier">output_dir</span>)
339
+ 146: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Exists: #{output_dir}&quot;</span>
340
+ 147: <span class="ruby-keyword kw">return</span>
341
+ 148: <span class="ruby-keyword kw">end</span>
342
+ 149: <span class="ruby-identifier">mkdir_p</span>(<span class="ruby-identifier">output_dir</span>)
343
+ 150: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Created: #{output_dir}&quot;</span>
344
+ 151: <span class="ruby-keyword kw">end</span>
345
+ </pre>
346
+ </div>
347
+ </div>
348
+ </div>
349
+
350
+ <div id="method-M000014" class="method-detail">
351
+ <a name="M000014"></a>
352
+
353
+ <div class="method-heading">
354
+ <a href="#M000014" class="method-signature">
355
+ <span class="method-name">generate</span><span class="method-args">()</span>
356
+ </a>
357
+ </div>
358
+
359
+ <div class="method-description">
360
+ <p>
361
+ This does the dirty work of generation.
362
+ </p>
363
+ <p><a class="source-toggle" href="#"
364
+ onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
365
+ <div class="method-source-code" id="M000014-source">
366
+ <pre>
367
+ <span class="ruby-comment cmt"># File lib/genosaurus.rb, line 154</span>
368
+ 154: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generate</span>
369
+ 155: <span class="ruby-identifier">generate_callbacks</span> <span class="ruby-keyword kw">do</span>
370
+ 156: <span class="ruby-identifier">manifest</span>.<span class="ruby-identifier">each_value</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">info</span><span class="ruby-operator">|</span>
371
+ 157: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">info</span>[<span class="ruby-value str">&quot;type&quot;</span>]
372
+ 158: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;file&quot;</span>
373
+ 159: <span class="ruby-identifier">template</span>(<span class="ruby-identifier">info</span>[<span class="ruby-value str">&quot;template_path&quot;</span>], <span class="ruby-identifier">info</span>[<span class="ruby-value str">&quot;output_path&quot;</span>])
374
+ 160: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;directory&quot;</span>
375
+ 161: <span class="ruby-identifier">directory</span>(<span class="ruby-identifier">info</span>[<span class="ruby-value str">&quot;output_path&quot;</span>])
376
+ 162: <span class="ruby-keyword kw">else</span>
377
+ 163: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown 'type': #{info[&quot;type&quot;]}!&quot;</span>
378
+ 164: <span class="ruby-keyword kw">end</span>
379
+ 165: <span class="ruby-keyword kw">end</span>
380
+ 166: <span class="ruby-keyword kw">end</span>
381
+ 167: <span class="ruby-keyword kw">end</span>
382
+ </pre>
383
+ </div>
384
+ </div>
385
+ </div>
386
+
387
+ <div id="method-M000008" class="method-detail">
388
+ <a name="M000008"></a>
389
+
390
+ <div class="method-heading">
391
+ <a href="#M000008" class="method-signature">
392
+ <span class="method-name">manifest</span><span class="method-args">()</span>
393
+ </a>
394
+ </div>
395
+
396
+ <div class="method-description">
397
+ <p>
398
+ Returns the <a href="Genosaurus.html#M000008">manifest</a> for this
399
+ generator, which is used by the <a
400
+ href="Genosaurus.html#M000014">generate</a> method to do the dirty work. If
401
+ there is a manifest.yml, defined by the <a
402
+ href="Genosaurus.html#M000004">manifest_path</a> method, then the contents
403
+ of that file are processed with ERB and returned. If there is not
404
+ manifest.yml then an implied <a href="Genosaurus.html#M000008">manifest</a>
405
+ is generated from the contents of the <a
406
+ href="Genosaurus.html#M000003">templates_directory_path</a>.
407
+ </p>
408
+ <p><a class="source-toggle" href="#"
409
+ onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
410
+ <div class="method-source-code" id="M000008-source">
411
+ <pre>
412
+ <span class="ruby-comment cmt"># File lib/genosaurus.rb, line 76</span>
413
+ 76: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">manifest</span>
414
+ 77: <span class="ruby-identifier">ivar_cache</span> <span class="ruby-keyword kw">do</span>
415
+ 78: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-identifier">manifest_path</span>)
416
+ 79: <span class="ruby-comment cmt"># run using the yml file</span>
417
+ 80: <span class="ruby-identifier">template</span> = <span class="ruby-constant">ERB</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">manifest_path</span>).<span class="ruby-identifier">read</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">&quot;-&gt;&quot;</span>)
418
+ 81: <span class="ruby-identifier">man</span> = <span class="ruby-constant">YAML</span>.<span class="ruby-identifier">load</span>(<span class="ruby-identifier">template</span>.<span class="ruby-identifier">result</span>(<span class="ruby-identifier">binding</span>))
419
+ 82: <span class="ruby-keyword kw">else</span>
420
+ 83: <span class="ruby-identifier">files</span> = <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">glob</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">templates_directory_path</span>, <span class="ruby-value str">&quot;**/*.template&quot;</span>))
421
+ 84: <span class="ruby-identifier">man</span> = {}
422
+ 85: <span class="ruby-identifier">files</span>.<span class="ruby-identifier">each_with_index</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span>, <span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
423
+ 86: <span class="ruby-identifier">output_path</span> = <span class="ruby-identifier">f</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-identifier">templates_directory_path</span>, <span class="ruby-value str">&quot;&quot;</span>)
424
+ 87: <span class="ruby-identifier">output_path</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-value str">&quot;.template&quot;</span>, <span class="ruby-value str">&quot;&quot;</span>)
425
+ 88: <span class="ruby-identifier">output_path</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/^\//</span>, <span class="ruby-value str">&quot;&quot;</span>)
426
+ 89: <span class="ruby-identifier">man</span>[<span class="ruby-node">&quot;template_#{i+1}&quot;</span>] = {
427
+ 90: <span class="ruby-value str">&quot;type&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">f</span>) <span class="ruby-operator">?</span> <span class="ruby-value str">&quot;directory&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-value str">&quot;file&quot;</span>,
428
+ 91: <span class="ruby-value str">&quot;template_path&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">f</span>,
429
+ 92: <span class="ruby-value str">&quot;output_path&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">ERB</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">output_path</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">&quot;-&gt;&quot;</span>).<span class="ruby-identifier">result</span>(<span class="ruby-identifier">binding</span>)
430
+ 93: }
431
+ 94: <span class="ruby-keyword kw">end</span>
432
+ 95: <span class="ruby-keyword kw">end</span>
433
+ 96: <span class="ruby-comment cmt"># puts man.inspect</span>
434
+ 97: <span class="ruby-identifier">man</span>
435
+ 98: <span class="ruby-keyword kw">end</span>
436
+ 99: <span class="ruby-keyword kw">end</span>
437
+ </pre>
438
+ </div>
439
+ </div>
440
+ </div>
441
+
442
+ <div id="method-M000004" class="method-detail">
443
+ <a name="M000004"></a>
444
+
445
+ <div class="method-heading">
446
+ <a href="#M000004" class="method-signature">
447
+ <span class="method-name">manifest_path</span><span class="method-args">()</span>
448
+ </a>
449
+ </div>
450
+
451
+ <div class="method-description">
452
+ <p>
453
+ Returns the path to the manifest.yml. This is only used if you have a
454
+ manifest.yml file, if there is no file, or this method returns nil, then an
455
+ implied <a href="Genosaurus.html#M000008">manifest</a> is used based on the
456
+ <a href="Genosaurus.html#M000003">templates_directory_path</a> contents.
457
+ IMPORTANT: <a href="Genosaurus.html">Genosaurus</a> will attempt to find
458
+ this location automatically, HOWEVER, if there is a problem, or you want to
459
+ be special, you can override this method in your generator and have it
460
+ return the correct path.
461
+ </p>
462
+ <p><a class="source-toggle" href="#"
463
+ onclick="toggleCode('M000004-source');return false;">[Source]</a></p>
464
+ <div class="method-source-code" id="M000004-source">
465
+ <pre>
466
+ <span class="ruby-comment cmt"># File lib/genosaurus.rb, line 54</span>
467
+ 54: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">manifest_path</span>
468
+ 55: <span class="ruby-ivar">@manifest_path</span>
469
+ 56: <span class="ruby-keyword kw">end</span>
470
+ </pre>
471
+ </div>
472
+ </div>
473
+ </div>
474
+
475
+ <div id="method-M000011" class="method-detail">
476
+ <a name="M000011"></a>
477
+
478
+ <div class="method-heading">
479
+ <a href="#M000011" class="method-signature">
480
+ <span class="method-name">param</span><span class="method-args">(key)</span>
481
+ </a>
482
+ </div>
483
+
484
+ <div class="method-description">
485
+ <p>
486
+ Returns a parameter from the initial Hash of parameters.
487
+ </p>
488
+ <p><a class="source-toggle" href="#"
489
+ onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
490
+ <div class="method-source-code" id="M000011-source">
491
+ <pre>
492
+ <span class="ruby-comment cmt"># File lib/genosaurus.rb, line 114</span>
493
+ 114: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">param</span>(<span class="ruby-identifier">key</span>)
494
+ 115: (<span class="ruby-ivar">@options</span>[<span class="ruby-identifier">key</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">downcase</span>] <span class="ruby-operator">||=</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">key</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">upcase</span>])
495
+ 116: <span class="ruby-keyword kw">end</span>
496
+ </pre>
497
+ </div>
498
+ </div>
499
+ </div>
500
+
501
+ <div id="method-M000005" class="method-detail">
502
+ <a name="M000005"></a>
503
+
504
+ <div class="method-heading">
505
+ <a href="#M000005" class="method-signature">
506
+ <span class="method-name">setup</span><span class="method-args">()</span>
507
+ </a>
508
+ </div>
509
+
510
+ <div class="method-description">
511
+ <p>
512
+ To be overridden in subclasses to do any <a
513
+ href="Genosaurus.html#M000005">setup</a> work needed by the generator.
514
+ </p>
515
+ <p><a class="source-toggle" href="#"
516
+ onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
517
+ <div class="method-source-code" id="M000005-source">
518
+ <pre>
519
+ <span class="ruby-comment cmt"># File lib/genosaurus.rb, line 59</span>
520
+ 59: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setup</span>
521
+ 60: <span class="ruby-comment cmt"># does nothing, unless overridden in subclass.</span>
522
+ 61: <span class="ruby-keyword kw">end</span>
523
+ </pre>
524
+ </div>
525
+ </div>
526
+ </div>
527
+
528
+ <div id="method-M000012" class="method-detail">
529
+ <a name="M000012"></a>
530
+
531
+ <div class="method-heading">
532
+ <a href="#M000012" class="method-signature">
533
+ <span class="method-name">template</span><span class="method-args">(input_file, output_file, options = @options)</span>
534
+ </a>
535
+ </div>
536
+
537
+ <div class="method-description">
538
+ <p>
539
+ Takes an input_file runs it through ERB and saves it to the specified
540
+ output_file. If the output_file exists it will be skipped. If you would
541
+ like to force the writing of the file, use the :force =&gt; true option.
542
+ </p>
543
+ <p><a class="source-toggle" href="#"
544
+ onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
545
+ <div class="method-source-code" id="M000012-source">
546
+ <pre>
547
+ <span class="ruby-comment cmt"># File lib/genosaurus.rb, line 122</span>
548
+ 122: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">template</span>(<span class="ruby-identifier">input_file</span>, <span class="ruby-identifier">output_file</span>, <span class="ruby-identifier">options</span> = <span class="ruby-ivar">@options</span>)
549
+ 123: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-identifier">output_file</span>)
550
+ 124: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:force</span>]
551
+ 125: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Skipped: #{output_file}&quot;</span>
552
+ 126: <span class="ruby-keyword kw">return</span>
553
+ 127: <span class="ruby-keyword kw">end</span>
554
+ 128: <span class="ruby-keyword kw">end</span>
555
+ 129: <span class="ruby-comment cmt"># incase the directory doesn't exist, let's create it.</span>
556
+ 130: <span class="ruby-identifier">directory</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">output_file</span>))
557
+ 131: <span class="ruby-comment cmt"># puts &quot;input_file: #{input_file}&quot;</span>
558
+ 132: <span class="ruby-comment cmt"># puts &quot;output_file: #{output_file}&quot;</span>
559
+ 133: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$genosaurus_output_directory</span>
560
+ 134: <span class="ruby-identifier">output_file</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">$genosaurus_output_directory</span>, <span class="ruby-identifier">output_file</span>)
561
+ 135: <span class="ruby-keyword kw">end</span>
562
+ 136: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">output_file</span>, <span class="ruby-value str">&quot;w&quot;</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">puts</span> <span class="ruby-constant">ERB</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">input_file</span>).<span class="ruby-identifier">read</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">&quot;-&gt;&quot;</span>).<span class="ruby-identifier">result</span>(<span class="ruby-identifier">binding</span>)}
563
+ 137: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Wrote: #{output_file}&quot;</span>
564
+ 138: <span class="ruby-keyword kw">end</span>
565
+ </pre>
566
+ </div>
567
+ </div>
568
+ </div>
569
+
570
+ <div id="method-M000003" class="method-detail">
571
+ <a name="M000003"></a>
572
+
573
+ <div class="method-heading">
574
+ <a href="#M000003" class="method-signature">
575
+ <span class="method-name">templates_directory_path</span><span class="method-args">()</span>
576
+ </a>
577
+ </div>
578
+
579
+ <div class="method-description">
580
+ <p>
581
+ Returns the path to the templates <a
582
+ href="Genosaurus.html#M000013">directory</a>. IMPORTANT: The location of
583
+ the <a href="Genosaurus.html#M000003">templates_directory_path</a> is VERY
584
+ important! <a href="Genosaurus.html">Genosaurus</a> will attempt to find
585
+ this location automatically, HOWEVER, if there is a problem, or you want to
586
+ be special, you can override this method in your generator and have it
587
+ return the correct path.
588
+ </p>
589
+ <p><a class="source-toggle" href="#"
590
+ onclick="toggleCode('M000003-source');return false;">[Source]</a></p>
591
+ <div class="method-source-code" id="M000003-source">
592
+ <pre>
593
+ <span class="ruby-comment cmt"># File lib/genosaurus.rb, line 46</span>
594
+ 46: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">templates_directory_path</span>
595
+ 47: <span class="ruby-ivar">@templates_directory_path</span>
596
+ 48: <span class="ruby-keyword kw">end</span>
597
+ </pre>
598
+ </div>
599
+ </div>
600
+ </div>
601
+
602
+
603
+ </div>
604
+
605
+
606
+ </div>
607
+
608
+
609
+ <div id="validator-badges">
610
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
611
+ </div>
612
+
613
+ </body>
614
+ </html>
data/doc/created.rid ADDED
@@ -0,0 +1 @@
1
+ Tue, 22 Apr 2008 17:04:53 -0400