radiant-ray-extension 3.0.0.alpha

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 (78) hide show
  1. data/LICENSE +19 -0
  2. data/README.markdown +30 -0
  3. data/Rakefile +26 -0
  4. data/bin/ray +5 -0
  5. data/doc/Extension.html +1189 -0
  6. data/doc/Ray.html +175 -0
  7. data/doc/Ray/CLI.html +585 -0
  8. data/doc/Ray/Cache.html +709 -0
  9. data/doc/Ray/Gem.html +760 -0
  10. data/doc/Ray/Git.html +278 -0
  11. data/doc/Ray/GitHub.html +553 -0
  12. data/doc/Ray/RubyGems.html +501 -0
  13. data/doc/Ray/Zip.html +300 -0
  14. data/doc/Search.html +433 -0
  15. data/doc/String.html +242 -0
  16. data/doc/_index.html +84 -0
  17. data/doc/class_list.html +47 -0
  18. data/doc/css/common.css +1 -0
  19. data/doc/css/full_list.css +55 -0
  20. data/doc/css/style.css +322 -0
  21. data/doc/file.LICENSE.html +85 -0
  22. data/doc/file.README.html +97 -0
  23. data/doc/file_list.html +46 -0
  24. data/doc/frames.html +13 -0
  25. data/doc/index.html +84 -0
  26. data/doc/js/app.js +205 -0
  27. data/doc/js/full_list.js +167 -0
  28. data/doc/js/jquery.js +16 -0
  29. data/doc/method_list.html +46 -0
  30. data/doc/top-level-namespace.html +105 -0
  31. data/lib/ray.rb +8 -0
  32. data/lib/ray/cli.rb +271 -0
  33. data/lib/ray/constants.rb +17 -0
  34. data/lib/ray/extension.rb +116 -0
  35. data/lib/ray/extension/gem.rb +96 -0
  36. data/lib/ray/extension/git.rb +30 -0
  37. data/lib/ray/extension/zip.rb +44 -0
  38. data/lib/ray/search.rb +62 -0
  39. data/lib/ray/search/cache.rb +61 -0
  40. data/lib/ray/search/github.rb +40 -0
  41. data/lib/ray/search/rubygems.rb +36 -0
  42. data/lib/ray/string.rb +18 -0
  43. data/ray.gemspec +31 -0
  44. data/spec/fixtures/Gemfile +4 -0
  45. data/spec/fixtures/cache_single.yml +8 -0
  46. data/spec/fixtures/cassettes/github_v2_api_no_matches.yml +38 -0
  47. data/spec/fixtures/cassettes/github_v2_api_search_no_matches.yml +38 -0
  48. data/spec/fixtures/cassettes/github_v2_api_search_reorder_children.yml +75 -0
  49. data/spec/fixtures/cassettes/github_v2_api_search_single.yml +74 -0
  50. data/spec/fixtures/cassettes/github_v3_api_owner_name.yml +75 -0
  51. data/spec/fixtures/cassettes/rubygems_v1_api_gem_info.yml +36 -0
  52. data/spec/fixtures/cassettes/rubygems_v1_api_no_matches.yml +34 -0
  53. data/spec/fixtures/cassettes/rubygems_v1_api_search_no_matches.yml +34 -0
  54. data/spec/fixtures/cassettes/rubygems_v1_api_search_reorder.yml +36 -0
  55. data/spec/fixtures/cassettes/rubygems_v1_api_search_reorder_children.yml +36 -0
  56. data/spec/fixtures/cassettes/rubygems_v1_api_search_single.yml +41 -0
  57. data/spec/fixtures/cassettes/zip_file.yml +101 -0
  58. data/spec/fixtures/dummy.zip +0 -0
  59. data/spec/fixtures/dummy/README +1 -0
  60. data/spec/fixtures/dummy/Rakefile +109 -0
  61. data/spec/fixtures/dummy/config/initializers/radiant_config.rb +3 -0
  62. data/spec/fixtures/dummy/config/locales/en.yml +3 -0
  63. data/spec/fixtures/dummy/config/routes.rb +5 -0
  64. data/spec/fixtures/dummy/dummy_extension.rb +21 -0
  65. data/spec/fixtures/dummy/lib/radiant-dummy-extension.rb +8 -0
  66. data/spec/fixtures/dummy/lib/tasks/dummy_extension_tasks.rake +47 -0
  67. data/spec/fixtures/dummy/public/stylesheets/extensions/dummy/dummy.css +0 -0
  68. data/spec/fixtures/dummy/radiant-dummy-extension.gemspec +29 -0
  69. data/spec/ray/cli_spec.rb +56 -0
  70. data/spec/ray/extension/gem_spec.rb +214 -0
  71. data/spec/ray/extension/git_spec.rb +216 -0
  72. data/spec/ray/extension/zip_spec.rb +239 -0
  73. data/spec/ray/search/cache_spec.rb +74 -0
  74. data/spec/ray/search/github_spec.rb +137 -0
  75. data/spec/ray/search/rubygems_spec.rb +127 -0
  76. data/spec/ray/string_spec.rb +30 -0
  77. data/spec/spec_helper.rb +27 -0
  78. metadata +205 -0
@@ -0,0 +1,175 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Module: Ray
8
+
9
+ &mdash; Documentation by YARD 0.7.3
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ relpath = '';
19
+ if (relpath != '') relpath += '/';
20
+ </script>
21
+
22
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
23
+
24
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
25
+
26
+
27
+ </head>
28
+ <body>
29
+ <script type="text/javascript" charset="utf-8">
30
+ if (window.top.frames.main) document.body.className = 'frames';
31
+ </script>
32
+
33
+ <div id="header">
34
+ <div id="menu">
35
+
36
+ <a href="_index.html">Index (R)</a> &raquo;
37
+
38
+
39
+ <span class="title">Ray</span>
40
+
41
+
42
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
43
+ </div>
44
+
45
+ <div id="search">
46
+
47
+ <a id="class_list_link" href="#">Class List</a>
48
+
49
+ <a id="method_list_link" href="#">Method List</a>
50
+
51
+ <a id="file_list_link" href="#">File List</a>
52
+
53
+ </div>
54
+ <div class="clear"></div>
55
+ </div>
56
+
57
+ <iframe id="search_frame"></iframe>
58
+
59
+ <div id="content"><h1>Module: Ray
60
+
61
+
62
+
63
+ </h1>
64
+
65
+ <dl class="box">
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+ <dt class="r1 last">Defined in:</dt>
75
+ <dd class="r1 last">lib/ray/constants.rb<span class="defines">,<br />
76
+ lib/ray/cli.rb,<br /> lib/ray/search/cache.rb,<br /> lib/ray/search/github.rb,<br /> lib/ray/extension/gem.rb,<br /> lib/ray/extension/zip.rb,<br /> lib/ray/extension/git.rb,<br /> lib/ray/search/rubygems.rb</span>
77
+ </dd>
78
+
79
+ </dl>
80
+ <div class="clear"></div>
81
+
82
+ <h2>Overview</h2><div class="docstring">
83
+ <div class="discussion">
84
+ <p>Friendly extension management for Radiant CMS</p>
85
+
86
+
87
+ </div>
88
+ </div>
89
+ <div class="tags">
90
+
91
+
92
+ </div><h2>Defined Under Namespace</h2>
93
+ <p class="children">
94
+
95
+
96
+
97
+
98
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="Ray/CLI.html" title="Ray::CLI (class)">CLI</a></span>, <span class='object_link'><a href="Ray/Cache.html" title="Ray::Cache (class)">Cache</a></span>, <span class='object_link'><a href="Ray/Gem.html" title="Ray::Gem (class)">Gem</a></span>, <span class='object_link'><a href="Ray/Git.html" title="Ray::Git (class)">Git</a></span>, <span class='object_link'><a href="Ray/GitHub.html" title="Ray::GitHub (class)">GitHub</a></span>, <span class='object_link'><a href="Ray/RubyGems.html" title="Ray::RubyGems (class)">RubyGems</a></span>, <span class='object_link'><a href="Ray/Zip.html" title="Ray::Zip (class)">Zip</a></span>
99
+
100
+
101
+ </p>
102
+
103
+ <h2>Constant Summary</h2>
104
+
105
+ <dl class="constants">
106
+
107
+ <dt id="VERSION-constant" class="">VERSION =
108
+
109
+ </dt>
110
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>3.0.0.alpha</span><span class='tstring_end'>&quot;</span></span></pre></dd>
111
+
112
+ <dt id="RAY-constant" class="">RAY =
113
+
114
+ </dt>
115
+ <dd><pre class="code"><span class='const'>File</span><span class='period'>.</span><span class='id expand_path'>expand_path</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>~/.ray</span><span class='tstring_end'>&quot;</span></span></pre></dd>
116
+
117
+ <dt id="CACHE-constant" class="">CACHE =
118
+
119
+ </dt>
120
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='const'>RAY</span><span class='rbrace'>}</span><span class='tstring_content'>/cache.yml</span><span class='tstring_end'>&quot;</span></span></pre></dd>
121
+
122
+ <dt id="ROOT-constant" class="">ROOT =
123
+
124
+ </dt>
125
+ <dd><pre class="code"><span class='const'>File</span><span class='period'>.</span><span class='id expand_path'>expand_path</span> <span class='const'>Dir</span><span class='period'>.</span><span class='id pwd'>pwd</span></pre></dd>
126
+
127
+ <dt id="GEMFILE-constant" class="">GEMFILE =
128
+
129
+ </dt>
130
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='const'>ROOT</span><span class='rbrace'>}</span><span class='tstring_content'>/Gemfile</span><span class='tstring_end'>&quot;</span></span></pre></dd>
131
+
132
+ <dt id="EXT_DIR-constant" class="">EXT_DIR =
133
+
134
+ </dt>
135
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='const'>ROOT</span><span class='rbrace'>}</span><span class='tstring_content'>/vendor/extensions</span><span class='tstring_end'>&quot;</span></span></pre></dd>
136
+
137
+ <dt id="TMP_DIR-constant" class="">TMP_DIR =
138
+
139
+ </dt>
140
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='const'>ROOT</span><span class='rbrace'>}</span><span class='tstring_content'>/tmp/ray</span><span class='tstring_end'>&quot;</span></span></pre></dd>
141
+
142
+ <dt id="RG_V1_API-constant" class="">RG_V1_API =
143
+
144
+ </dt>
145
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>http://rubygems.org/api/v1</span><span class='tstring_end'>&quot;</span></span></pre></dd>
146
+
147
+ <dt id="GH_V2_API-constant" class="">GH_V2_API =
148
+
149
+ </dt>
150
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>http://github.com/api/v2/json</span><span class='tstring_end'>&quot;</span></span></pre></dd>
151
+
152
+ <dt id="GH_V3_API-constant" class="">GH_V3_API =
153
+
154
+ </dt>
155
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>https://api.github.com</span><span class='tstring_end'>&quot;</span></span></pre></dd>
156
+
157
+ </dl>
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+ </div>
167
+
168
+ <div id="footer">
169
+ Generated on Sun Nov 20 20:26:43 2011 by
170
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
171
+ 0.7.3 (ruby-1.9.3).
172
+ </div>
173
+
174
+ </body>
175
+ </html>
@@ -0,0 +1,585 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Class: Ray::CLI
8
+
9
+ &mdash; Documentation by YARD 0.7.3
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../css/style.css" type="text/css" media="screen" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../css/common.css" type="text/css" media="screen" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ relpath = '..';
19
+ if (relpath != '') relpath += '/';
20
+ </script>
21
+
22
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
23
+
24
+ <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
25
+
26
+
27
+ </head>
28
+ <body>
29
+ <script type="text/javascript" charset="utf-8">
30
+ if (window.top.frames.main) document.body.className = 'frames';
31
+ </script>
32
+
33
+ <div id="header">
34
+ <div id="menu">
35
+
36
+ <a href="../_index.html">Index (C)</a> &raquo;
37
+ <span class='title'><span class='object_link'><a href="../Ray.html" title="Ray (module)">Ray</a></span></span>
38
+ &raquo;
39
+ <span class="title">CLI</span>
40
+
41
+
42
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
43
+ </div>
44
+
45
+ <div id="search">
46
+
47
+ <a id="class_list_link" href="#">Class List</a>
48
+
49
+ <a id="method_list_link" href="#">Method List</a>
50
+
51
+ <a id="file_list_link" href="#">File List</a>
52
+
53
+ </div>
54
+ <div class="clear"></div>
55
+ </div>
56
+
57
+ <iframe id="search_frame"></iframe>
58
+
59
+ <div id="content"><h1>Class: Ray::CLI
60
+
61
+
62
+
63
+ </h1>
64
+
65
+ <dl class="box">
66
+
67
+ <dt class="r1">Inherits:</dt>
68
+ <dd class="r1">
69
+ <span class="inheritName">Thor</span>
70
+
71
+ <ul class="fullTree">
72
+ <li>Object</li>
73
+
74
+ <li class="next">Thor</li>
75
+
76
+ <li class="next">Ray::CLI</li>
77
+
78
+ </ul>
79
+ <a href="#" class="inheritanceTree">show all</a>
80
+
81
+ </dd>
82
+
83
+
84
+
85
+
86
+
87
+
88
+ <dt class="r2">Includes:</dt>
89
+ <dd class="r2">Thor::Actions, Thor::Shell</dd>
90
+
91
+
92
+
93
+
94
+
95
+ <dt class="r1 last">Defined in:</dt>
96
+ <dd class="r1 last">lib/ray/cli.rb</dd>
97
+
98
+ </dl>
99
+ <div class="clear"></div>
100
+
101
+ <h2>Overview</h2><div class="docstring">
102
+ <div class="discussion">
103
+ <p>This is the CLI for Ray.
104
+ If you&rsquo;re trying to figure out how to use the Ray CLI
105
+ refer to the <a href="http://goo.gl/5UtP8">User Manual</a> instead.</p>
106
+
107
+
108
+ </div>
109
+ </div>
110
+ <div class="tags">
111
+
112
+
113
+ </div>
114
+
115
+
116
+
117
+
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
+ <h2>
126
+ Instance Method Summary
127
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
128
+ </h2>
129
+
130
+ <ul class="summary">
131
+
132
+ <li class="public ">
133
+ <span class="summary_signature">
134
+
135
+ <a href="#cache-instance_method" title="#cache (instance method)">- (Object) <strong>cache</strong> </a>
136
+
137
+
138
+
139
+ </span>
140
+
141
+
142
+
143
+
144
+
145
+
146
+
147
+
148
+ <span class="summary_desc"><div class='inline'>
149
+ </div></span>
150
+
151
+ </li>
152
+
153
+
154
+ <li class="public ">
155
+ <span class="summary_signature">
156
+
157
+ <a href="#install-instance_method" title="#install (instance method)">- (Object) <strong>install</strong>(*extensions) </a>
158
+
159
+
160
+
161
+ </span>
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+
170
+ <span class="summary_desc"><div class='inline'>
171
+ </div></span>
172
+
173
+ </li>
174
+
175
+
176
+ <li class="public ">
177
+ <span class="summary_signature">
178
+
179
+ <a href="#search-instance_method" title="#search (instance method)">- (Object) <strong>search</strong>(query) </a>
180
+
181
+
182
+
183
+ </span>
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+
192
+ <span class="summary_desc"><div class='inline'>
193
+ </div></span>
194
+
195
+ </li>
196
+
197
+
198
+ <li class="public ">
199
+ <span class="summary_signature">
200
+
201
+ <a href="#version-instance_method" title="#version (instance method)">- (Object) <strong>version</strong> </a>
202
+
203
+
204
+
205
+ </span>
206
+
207
+
208
+
209
+
210
+
211
+
212
+
213
+
214
+ <span class="summary_desc"><div class='inline'>
215
+ </div></span>
216
+
217
+ </li>
218
+
219
+
220
+ </ul>
221
+
222
+
223
+
224
+
225
+
226
+
227
+
228
+ <div id="instance_method_details" class="method_details_list">
229
+ <h2>Instance Method Details</h2>
230
+
231
+
232
+ <div class="method_details first">
233
+ <p class="signature first" id="cache-instance_method">
234
+
235
+ - (<tt>Object</tt>) <strong>cache</strong>
236
+
237
+
238
+
239
+ </p><table class="source_code">
240
+ <tr>
241
+ <td>
242
+ <pre class="lines">
243
+
244
+
245
+ 191
246
+ 192
247
+ 193
248
+ 194
249
+ 195
250
+ 196
251
+ 197
252
+ 198</pre>
253
+ </td>
254
+ <td>
255
+ <pre class="code"><span class="info file"># File 'lib/ray/cli.rb', line 191</span>
256
+
257
+ <span class='kw'>def</span> <span class='id cache'>cache</span>
258
+ <span class='kw'>if</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>clear</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
259
+ <span class='const'>Ray</span><span class='op'>::</span><span class='const'>Cache</span><span class='period'>.</span><span class='id clear'>clear</span>
260
+ <span class='kw'>else</span>
261
+ <span class='id require'>require</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>pp</span><span class='tstring_end'>&quot;</span></span>
262
+ <span class='id say'>say</span> <span class='const'>File</span><span class='period'>.</span><span class='id read'>read</span> <span class='const'>Ray</span><span class='op'>::</span><span class='const'>CACHE</span>
263
+ <span class='kw'>end</span>
264
+ <span class='kw'>end</span></pre>
265
+ </td>
266
+ </tr>
267
+ </table>
268
+ </div>
269
+
270
+ <div class="method_details ">
271
+ <p class="signature " id="install-instance_method">
272
+
273
+ - (<tt>Object</tt>) <strong>install</strong>(*extensions)
274
+
275
+
276
+
277
+ </p><table class="source_code">
278
+ <tr>
279
+ <td>
280
+ <pre class="lines">
281
+
282
+
283
+ 92
284
+ 93
285
+ 94
286
+ 95
287
+ 96
288
+ 97
289
+ 98
290
+ 99
291
+ 100
292
+ 101
293
+ 102
294
+ 103
295
+ 104
296
+ 105
297
+ 106
298
+ 107
299
+ 108
300
+ 109
301
+ 110
302
+ 111
303
+ 112
304
+ 113
305
+ 114
306
+ 115
307
+ 116
308
+ 117
309
+ 118
310
+ 119
311
+ 120
312
+ 121
313
+ 122
314
+ 123
315
+ 124
316
+ 125
317
+ 126
318
+ 127
319
+ 128
320
+ 129
321
+ 130
322
+ 131
323
+ 132
324
+ 133
325
+ 134
326
+ 135
327
+ 136
328
+ 137
329
+ 138
330
+ 139
331
+ 140
332
+ 141
333
+ 142
334
+ 143
335
+ 144
336
+ 145
337
+ 146
338
+ 147
339
+ 148
340
+ 149
341
+ 150
342
+ 151
343
+ 152
344
+ 153
345
+ 154
346
+ 155
347
+ 156
348
+ 157
349
+ 158
350
+ 159
351
+ 160
352
+ 161
353
+ 162
354
+ 163
355
+ 164
356
+ 165
357
+ 166
358
+ 167
359
+ 168
360
+ 169
361
+ 170
362
+ 171
363
+ 172
364
+ 173
365
+ 174
366
+ 175
367
+ 176
368
+ 177
369
+ 178
370
+ 179
371
+ 180
372
+ 181
373
+ 182
374
+ 183
375
+ 184
376
+ 185
377
+ 186
378
+ 187</pre>
379
+ </td>
380
+ <td>
381
+ <pre class="code"><span class="info file"># File 'lib/ray/cli.rb', line 92</span>
382
+
383
+ <span class='kw'>def</span> <span class='id install'>install</span> <span class='op'>*</span><span class='id extensions'>extensions</span>
384
+ <span class='kw'>if</span> <span class='id extensions'>extensions</span><span class='period'>.</span><span class='id empty?'>empty?</span>
385
+ <span class='id say'>say</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>You didn't list any extensions to install</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='symbol'>:red</span>
386
+ <span class='id say'>say</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Try: ray help install</span><span class='tstring_end'>&quot;</span></span>
387
+ <span class='id exit'>exit</span> <span class='int'>1</span>
388
+ <span class='kw'>end</span>
389
+
390
+ <span class='kw'>case</span>
391
+ <span class='kw'>when</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>gem</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='comment'># --gem
392
+ </span> <span class='kw'>if</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>gem</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>gem</span><span class='tstring_end'>&quot;</span></span> <span class='comment'># no uri was passed to --gem
393
+ </span> <span class='id extensions'>extensions</span><span class='period'>.</span><span class='id each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id extension'>extension</span><span class='op'>|</span>
394
+ <span class='id search'>search</span> <span class='op'>=</span> <span class='const'>Ray</span><span class='op'>::</span><span class='const'>Cache</span><span class='period'>.</span><span class='id new'>new</span> <span class='id extension'>extension</span> <span class='comment'># first we search the cache
395
+ </span> <span class='kw'>if</span> <span class='id search'>search</span><span class='period'>.</span><span class='id results'>results</span><span class='period'>.</span><span class='id empty?'>empty?</span> <span class='comment'># when there are no cache hits
396
+ </span> <span class='id search'>search</span> <span class='op'>=</span> <span class='const'>Ray</span><span class='op'>::</span><span class='const'>RubyGems</span><span class='period'>.</span><span class='id new'>new</span> <span class='id extension'>extension</span> <span class='comment'># then search rubygems
397
+ </span> <span class='kw'>else</span> <span class='comment'># when there are cache hits
398
+ </span> <span class='id results'>results</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
399
+ <span class='id search'>search</span><span class='period'>.</span><span class='id results'>results</span><span class='period'>.</span><span class='id select'>select</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id name'>name</span><span class='comma'>,</span> <span class='id info'>info</span><span class='op'>|</span> <span class='comment'># filter out non-gem extensions
400
+ </span> <span class='id info'>info</span><span class='lbracket'>[</span><span class='symbol'>:uri</span><span class='rbracket'>]</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>rubygems</span><span class='regexp_end'>/</span></span>
401
+ <span class='kw'>end</span><span class='period'>.</span><span class='id map'>map</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id extension'>extension</span><span class='op'>|</span>
402
+ <span class='id results'>results</span><span class='lbracket'>[</span><span class='id extension'>extension</span><span class='period'>.</span><span class='id first'>first</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id extension'>extension</span><span class='period'>.</span><span class='id last'>last</span> <span class='comment'># rebuild the results hash
403
+ </span> <span class='kw'>end</span>
404
+ <span class='id search'>search</span><span class='period'>.</span><span class='id results'>results</span> <span class='op'>=</span> <span class='id results'>results</span> <span class='comment'># reset the results hash
405
+ </span> <span class='kw'>end</span>
406
+ <span class='kw'>if</span> <span class='id search'>search</span><span class='period'>.</span><span class='id results'>results</span><span class='period'>.</span><span class='id size'>size</span> <span class='op'>==</span> <span class='int'>1</span> <span class='comment'># when there is just one match
407
+ </span> <span class='id extension'>extension</span> <span class='op'>=</span> <span class='const'>Ray</span><span class='op'>::</span><span class='const'>Gem</span><span class='period'>.</span><span class='id new'>new</span> <span class='id search'>search</span><span class='period'>.</span><span class='id results'>results</span><span class='period'>.</span><span class='id first'>first</span><span class='period'>.</span><span class='id last'>last</span> <span class='comment'># that's our extension
408
+ </span> <span class='kw'>else</span> <span class='comment'># when there is more than one match
409
+ </span> <span class='id extension'>extension</span> <span class='op'>=</span> <span class='const'>Ray</span><span class='op'>::</span><span class='const'>Gem</span><span class='period'>.</span><span class='id new'>new</span> <span class='id search'>search</span><span class='period'>.</span><span class='id multiple_choice'>multiple_choice</span> <span class='comment'># make the user pick
410
+ </span> <span class='kw'>end</span>
411
+ <span class='id extension'>extension</span><span class='period'>.</span><span class='id install'>install</span> <span class='comment'># install the extension
412
+ </span> <span class='id say'>say</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id extension'>extension</span><span class='period'>.</span><span class='id name'>name</span><span class='rbrace'>}</span><span class='tstring_content'> =&gt; Installation complete!</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='symbol'>:green</span>
413
+ <span class='kw'>end</span>
414
+ <span class='kw'>else</span> <span class='comment'># a uri was passed to --gem
415
+ </span> <span class='id extension'>extension</span> <span class='op'>=</span> <span class='const'>Ray</span><span class='op'>::</span><span class='const'>Gem</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='lbrace'>{</span> <span class='comment'># instantiate with minimal info
416
+ </span> <span class='symbol'>:name</span> <span class='op'>=&gt;</span> <span class='id extensions'>extensions</span><span class='period'>.</span><span class='id first'>first</span><span class='comma'>,</span> <span class='comment'># nothing works without a name
417
+ </span> <span class='symbol'>:uri</span> <span class='op'>=&gt;</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>gem</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='comment'># uri should be a git repo
418
+ </span> <span class='rbrace'>}</span><span class='rparen'>)</span>
419
+ <span class='id say'>say</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id extension'>extension</span><span class='period'>.</span><span class='id name'>name</span><span class='rbrace'>}</span><span class='tstring_content'> =&gt; Adding to Gemfile...</span><span class='tstring_end'>&quot;</span></span>
420
+ <span class='id name'>name</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>radiant-</span><span class='embexpr_beg'>#{</span><span class='id extension'>extension</span><span class='period'>.</span><span class='id name'>name</span><span class='rbrace'>}</span><span class='tstring_content'>-extension</span><span class='tstring_end'>&quot;</span></span>
421
+ <span class='const'>File</span><span class='period'>.</span><span class='id open'>open</span> <span class='const'>Ray</span><span class='op'>::</span><span class='const'>GEMFILE</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>a</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>do</span> <span class='op'>|</span><span class='id gemfile'>gemfile</span><span class='op'>|</span>
422
+ <span class='id gemfile'>gemfile</span><span class='period'>.</span><span class='id puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>gem \&quot;</span><span class='embexpr_beg'>#{</span><span class='id name'>name</span><span class='rbrace'>}</span><span class='tstring_content'>\&quot;, :git =&gt; \&quot;</span><span class='embexpr_beg'>#{</span><span class='id extension'>extension</span><span class='period'>.</span><span class='id uri'>uri</span><span class='rbrace'>}</span><span class='tstring_content'>\&quot;</span><span class='tstring_end'>&quot;</span></span> <span class='comment'># add it to the gemfile
423
+ </span> <span class='kw'>end</span>
424
+ <span class='id extension'>extension</span><span class='period'>.</span><span class='id bundle'>bundle</span> <span class='comment'># we don't use install here
425
+ </span> <span class='id extension'>extension</span><span class='period'>.</span><span class='id copy_tasks'>copy_tasks</span> <span class='comment'># because add_gem only works
426
+ </span> <span class='id extension'>extension</span><span class='period'>.</span><span class='id run_tasks'>run_tasks</span> <span class='comment'># with released gem extensions
427
+ </span> <span class='id say'>say</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id extension'>extension</span><span class='period'>.</span><span class='id name'>name</span><span class='rbrace'>}</span><span class='tstring_content'> =&gt; Installation complete!</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='symbol'>:green</span>
428
+ <span class='kw'>end</span>
429
+ <span class='kw'>when</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>git</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
430
+ <span class='kw'>if</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>git</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>git</span><span class='tstring_end'>&quot;</span></span>
431
+ <span class='id extensions'>extensions</span><span class='period'>.</span><span class='id each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id extension'>extension</span><span class='op'>|</span>
432
+ <span class='id search'>search</span> <span class='op'>=</span> <span class='const'>Ray</span><span class='op'>::</span><span class='const'>Cache</span><span class='period'>.</span><span class='id new'>new</span> <span class='id extension'>extension</span> <span class='comment'># first we search the cache
433
+ </span> <span class='kw'>if</span> <span class='id search'>search</span><span class='period'>.</span><span class='id results'>results</span><span class='period'>.</span><span class='id empty?'>empty?</span> <span class='comment'># when there are no cache hits
434
+ </span> <span class='id search'>search</span> <span class='op'>=</span> <span class='const'>Ray</span><span class='op'>::</span><span class='const'>GitHub</span><span class='period'>.</span><span class='id new'>new</span> <span class='id extension'>extension</span> <span class='comment'># then search github
435
+ </span> <span class='kw'>end</span>
436
+ <span class='kw'>if</span> <span class='id search'>search</span><span class='period'>.</span><span class='id results'>results</span><span class='period'>.</span><span class='id size'>size</span> <span class='op'>==</span> <span class='int'>1</span> <span class='comment'># when there is just one match
437
+ </span> <span class='id extension'>extension</span> <span class='op'>=</span> <span class='const'>Ray</span><span class='op'>::</span><span class='const'>Git</span><span class='period'>.</span><span class='id new'>new</span> <span class='id search'>search</span><span class='period'>.</span><span class='id results'>results</span><span class='period'>.</span><span class='id first'>first</span><span class='period'>.</span><span class='id last'>last</span> <span class='comment'># that's our extension
438
+ </span> <span class='kw'>else</span> <span class='comment'># when there is more than one match
439
+ </span> <span class='id extension'>extension</span> <span class='op'>=</span> <span class='const'>Ray</span><span class='op'>::</span><span class='const'>Git</span><span class='period'>.</span><span class='id new'>new</span> <span class='id search'>search</span><span class='period'>.</span><span class='id multiple_choice'>multiple_choice</span> <span class='comment'># make the user pick
440
+ </span> <span class='kw'>end</span>
441
+ <span class='id extension'>extension</span><span class='period'>.</span><span class='id install'>install</span> <span class='comment'># install the extension
442
+ </span> <span class='id say'>say</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id extension'>extension</span><span class='period'>.</span><span class='id name'>name</span><span class='rbrace'>}</span><span class='tstring_content'> =&gt; Installation complete!</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='symbol'>:green</span>
443
+ <span class='kw'>end</span>
444
+ <span class='kw'>else</span>
445
+ <span class='id extension'>extension</span> <span class='op'>=</span> <span class='const'>Ray</span><span class='op'>::</span><span class='const'>Git</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='lbrace'>{</span> <span class='comment'># instantiate with minimal info
446
+ </span> <span class='symbol'>:name</span> <span class='op'>=&gt;</span> <span class='id extensions'>extensions</span><span class='period'>.</span><span class='id first'>first</span><span class='comma'>,</span> <span class='comment'># nothing works without a name
447
+ </span> <span class='symbol'>:uri</span> <span class='op'>=&gt;</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>git</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='comment'># uri should be a git repo
448
+ </span> <span class='rbrace'>}</span><span class='rparen'>)</span>
449
+ <span class='id extension'>extension</span><span class='period'>.</span><span class='id install'>install</span> <span class='comment'># install the extension
450
+ </span> <span class='id say'>say</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id extension'>extension</span><span class='period'>.</span><span class='id name'>name</span><span class='rbrace'>}</span><span class='tstring_content'> =&gt; Installation complete!</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='symbol'>:green</span>
451
+ <span class='kw'>end</span>
452
+ <span class='kw'>when</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>zip</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
453
+ <span class='kw'>if</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>zip</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>zip</span><span class='tstring_end'>&quot;</span></span>
454
+ <span class='id extensions'>extensions</span><span class='period'>.</span><span class='id each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id extension'>extension</span><span class='op'>|</span>
455
+ <span class='id search'>search</span> <span class='op'>=</span> <span class='const'>Ray</span><span class='op'>::</span><span class='const'>Cache</span><span class='period'>.</span><span class='id new'>new</span> <span class='id extension'>extension</span> <span class='comment'># first we search the cache
456
+ </span> <span class='kw'>if</span> <span class='id search'>search</span><span class='period'>.</span><span class='id results'>results</span><span class='period'>.</span><span class='id empty?'>empty?</span> <span class='comment'># when there are no cache hits
457
+ </span> <span class='id search'>search</span> <span class='op'>=</span> <span class='const'>Ray</span><span class='op'>::</span><span class='const'>GitHub</span><span class='period'>.</span><span class='id new'>new</span> <span class='id extension'>extension</span> <span class='comment'># then search github
458
+ </span> <span class='kw'>end</span>
459
+ <span class='kw'>if</span> <span class='id search'>search</span><span class='period'>.</span><span class='id results'>results</span><span class='period'>.</span><span class='id size'>size</span> <span class='op'>==</span> <span class='int'>1</span> <span class='comment'># when there is just one match
460
+ </span> <span class='id extension'>extension</span> <span class='op'>=</span> <span class='const'>Ray</span><span class='op'>::</span><span class='const'>Zip</span><span class='period'>.</span><span class='id new'>new</span> <span class='id search'>search</span><span class='period'>.</span><span class='id results'>results</span><span class='period'>.</span><span class='id first'>first</span><span class='period'>.</span><span class='id last'>last</span> <span class='comment'># that's our extension
461
+ </span> <span class='kw'>else</span> <span class='comment'># when there is more than one match
462
+ </span> <span class='id extension'>extension</span> <span class='op'>=</span> <span class='const'>Ray</span><span class='op'>::</span><span class='const'>Zip</span><span class='period'>.</span><span class='id new'>new</span> <span class='id search'>search</span><span class='period'>.</span><span class='id multiple_choice'>multiple_choice</span> <span class='comment'># make the user pick
463
+ </span> <span class='kw'>end</span>
464
+ <span class='id extension'>extension</span><span class='period'>.</span><span class='id install'>install</span> <span class='comment'># install the extension
465
+ </span> <span class='id say'>say</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id extension'>extension</span><span class='period'>.</span><span class='id name'>name</span><span class='rbrace'>}</span><span class='tstring_content'> =&gt; Installation complete!</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='symbol'>:green</span>
466
+ <span class='kw'>end</span>
467
+ <span class='kw'>else</span>
468
+ <span class='id extension'>extension</span> <span class='op'>=</span> <span class='const'>Ray</span><span class='op'>::</span><span class='const'>Zip</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='lbrace'>{</span> <span class='comment'># instantiate with minimal info
469
+ </span> <span class='symbol'>:name</span> <span class='op'>=&gt;</span> <span class='id extensions'>extensions</span><span class='period'>.</span><span class='id first'>first</span><span class='comma'>,</span> <span class='comment'># nothing works without a name
470
+ </span> <span class='symbol'>:uri</span> <span class='op'>=&gt;</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>zip</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='comment'># uri should be a zip archive
471
+ </span> <span class='rbrace'>}</span><span class='rparen'>)</span>
472
+ <span class='id extension'>extension</span><span class='period'>.</span><span class='id install'>install</span> <span class='comment'># install the extension
473
+ </span> <span class='id say'>say</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id extension'>extension</span><span class='period'>.</span><span class='id name'>name</span><span class='rbrace'>}</span><span class='tstring_content'> =&gt; Installation complete!</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='symbol'>:green</span>
474
+ <span class='kw'>end</span>
475
+ <span class='kw'>else</span>
476
+ <span class='id p'>p</span> <span class='id options'>options</span>
477
+ <span class='kw'>end</span>
478
+ <span class='kw'>end</span></pre>
479
+ </td>
480
+ </tr>
481
+ </table>
482
+ </div>
483
+
484
+ <div class="method_details ">
485
+ <p class="signature " id="search-instance_method">
486
+
487
+ - (<tt>Object</tt>) <strong>search</strong>(query)
488
+
489
+
490
+
491
+ </p><table class="source_code">
492
+ <tr>
493
+ <td>
494
+ <pre class="lines">
495
+
496
+
497
+ 56
498
+ 57
499
+ 58
500
+ 59
501
+ 60
502
+ 61
503
+ 62
504
+ 63
505
+ 64
506
+ 65
507
+ 66
508
+ 67
509
+ 68
510
+ 69
511
+ 70
512
+ 71
513
+ 72
514
+ 73
515
+ 74</pre>
516
+ </td>
517
+ <td>
518
+ <pre class="code"><span class="info file"># File 'lib/ray/cli.rb', line 56</span>
519
+
520
+ <span class='kw'>def</span> <span class='id search'>search</span> <span class='id query'>query</span>
521
+ <span class='id search'>search</span> <span class='op'>=</span> <span class='kw'>case</span>
522
+ <span class='kw'>when</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>github</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
523
+ <span class='const'>Ray</span><span class='op'>::</span><span class='const'>GitHub</span><span class='period'>.</span><span class='id new'>new</span> <span class='id query'>query</span>
524
+ <span class='kw'>when</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>rubygems</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
525
+ <span class='const'>Ray</span><span class='op'>::</span><span class='const'>RubyGems</span><span class='period'>.</span><span class='id new'>new</span> <span class='id query'>query</span>
526
+ <span class='kw'>when</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>live</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
527
+ <span class='const'>Ray</span><span class='op'>::</span><span class='const'>GitHub</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='id query'>query</span><span class='rparen'>)</span><span class='period'>.</span><span class='id merge'>merge</span> <span class='const'>Ray</span><span class='op'>::</span><span class='const'>RubyGems</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='id query'>query</span><span class='rparen'>)</span>
528
+ <span class='kw'>else</span>
529
+ <span class='kw'>if</span> <span class='const'>Ray</span><span class='op'>::</span><span class='const'>Cache</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='id query'>query</span><span class='rparen'>)</span><span class='period'>.</span><span class='id results'>results</span><span class='period'>.</span><span class='id empty?'>empty?</span>
530
+ <span class='const'>Ray</span><span class='op'>::</span><span class='const'>GitHub</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='id query'>query</span><span class='rparen'>)</span><span class='period'>.</span><span class='id merge'>merge</span> <span class='const'>Ray</span><span class='op'>::</span><span class='const'>RubyGems</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='id query'>query</span><span class='rparen'>)</span>
531
+ <span class='kw'>else</span>
532
+ <span class='const'>Ray</span><span class='op'>::</span><span class='const'>Cache</span><span class='period'>.</span><span class='id new'>new</span> <span class='id query'>query</span>
533
+ <span class='kw'>end</span>
534
+ <span class='kw'>end</span>
535
+
536
+ <span class='id search'>search</span><span class='period'>.</span><span class='id cache'>cache</span>
537
+ <span class='id say'>say</span> <span class='id search'>search</span><span class='period'>.</span><span class='id output'>output</span>
538
+ <span class='kw'>end</span></pre>
539
+ </td>
540
+ </tr>
541
+ </table>
542
+ </div>
543
+
544
+ <div class="method_details ">
545
+ <p class="signature " id="version-instance_method">
546
+
547
+ - (<tt>Object</tt>) <strong>version</strong>
548
+
549
+
550
+
551
+ </p><table class="source_code">
552
+ <tr>
553
+ <td>
554
+ <pre class="lines">
555
+
556
+
557
+ 29
558
+ 30
559
+ 31
560
+ 32</pre>
561
+ </td>
562
+ <td>
563
+ <pre class="code"><span class="info file"># File 'lib/ray/cli.rb', line 29</span>
564
+
565
+ <span class='kw'>def</span> <span class='id version'>version</span>
566
+ <span class='id say'>say</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Friendly extension management for Radiant CMS</span><span class='tstring_end'>&quot;</span></span>
567
+ <span class='id say'>say</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Version: </span><span class='embexpr_beg'>#{</span><span class='const'>Ray</span><span class='op'>::</span><span class='const'>VERSION</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
568
+ <span class='kw'>end</span></pre>
569
+ </td>
570
+ </tr>
571
+ </table>
572
+ </div>
573
+
574
+ </div>
575
+
576
+ </div>
577
+
578
+ <div id="footer">
579
+ Generated on Sun Nov 20 20:26:43 2011 by
580
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
581
+ 0.7.3 (ruby-1.9.3).
582
+ </div>
583
+
584
+ </body>
585
+ </html>