mack_ruby_core_extensions 0.1.23 → 0.1.24

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 (44) hide show
  1. data/doc/classes/Array.html +465 -0
  2. data/doc/classes/Class.html +233 -0
  3. data/doc/classes/Float.html +148 -0
  4. data/doc/classes/Hash.html +233 -0
  5. data/doc/classes/Kernel.html +184 -0
  6. data/doc/classes/Mack/Utils/Inflector.html +422 -0
  7. data/doc/classes/Math.html +188 -0
  8. data/doc/classes/MethodNotImplemented.html +155 -0
  9. data/doc/classes/Module.html +203 -0
  10. data/doc/classes/NilClass.html +151 -0
  11. data/doc/classes/Object.html +472 -0
  12. data/doc/classes/String.html +977 -0
  13. data/doc/classes/Symbol.html +148 -0
  14. data/doc/created.rid +1 -0
  15. data/doc/files/README.html +151 -0
  16. data/doc/files/lib/extensions/array_rb.html +101 -0
  17. data/doc/files/lib/extensions/class_rb.html +101 -0
  18. data/doc/files/lib/extensions/float_rb.html +101 -0
  19. data/doc/files/lib/extensions/hash_rb.html +108 -0
  20. data/doc/files/lib/extensions/kernel_rb.html +109 -0
  21. data/doc/files/lib/extensions/math_rb.html +101 -0
  22. data/doc/files/lib/extensions/method_not_implemented_rb.html +108 -0
  23. data/doc/files/lib/extensions/module_rb.html +101 -0
  24. data/doc/files/lib/extensions/nil_rb.html +101 -0
  25. data/doc/files/lib/extensions/object_rb.html +101 -0
  26. data/doc/files/lib/extensions/string_rb.html +108 -0
  27. data/doc/files/lib/extensions/symbol_rb.html +101 -0
  28. data/doc/files/lib/mack_ruby_core_extensions_rb.html +101 -0
  29. data/doc/files/lib/utils/inflections_rb.html +101 -0
  30. data/doc/files/lib/utils/inflector_rb.html +108 -0
  31. data/doc/files/lib/utils/options_merger_rb.html +101 -0
  32. data/doc/fr_class_index.html +39 -0
  33. data/doc/fr_file_index.html +43 -0
  34. data/doc/fr_method_index.html +97 -0
  35. data/doc/index.html +24 -0
  36. data/doc/rdoc-style.css +208 -0
  37. data/lib/extensions/hash.rb +0 -13
  38. data/lib/extensions/object.rb +4 -0
  39. data/lib/mack_ruby_core_extensions.rb +1 -1
  40. data/lib/utils/options_merger.rb +27 -0
  41. data/test/extensions/hash_test.rb +0 -14
  42. data/test/extensions/object_test.rb +16 -0
  43. data/test/test_helper.rb +16 -0
  44. metadata +40 -3
@@ -0,0 +1,151 @@
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: NilClass</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">NilClass</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../files/lib/extensions/nil_rb.html">
59
+ lib/extensions/nil.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
+ <a href="Object.html">
69
+ Object
70
+ </a>
71
+ </td>
72
+ </tr>
73
+ </table>
74
+ </div>
75
+ <!-- banner header -->
76
+
77
+ <div id="bodyContent">
78
+
79
+
80
+
81
+ <div id="contextContent">
82
+
83
+
84
+
85
+ </div>
86
+
87
+ <div id="method-list">
88
+ <h3 class="section-bar">Methods</h3>
89
+
90
+ <div class="name-list">
91
+ <a href="#M000023">blank?</a>&nbsp;&nbsp;
92
+ </div>
93
+ </div>
94
+
95
+ </div>
96
+
97
+
98
+ <!-- if includes -->
99
+
100
+ <div id="section">
101
+
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+ <!-- if method_list -->
110
+ <div id="methods">
111
+ <h3 class="section-bar">Public Instance methods</h3>
112
+
113
+ <div id="method-M000023" class="method-detail">
114
+ <a name="M000023"></a>
115
+
116
+ <div class="method-heading">
117
+ <a href="#M000023" class="method-signature">
118
+ <span class="method-name">blank?</span><span class="method-args">()</span>
119
+ </a>
120
+ </div>
121
+
122
+ <div class="method-description">
123
+ <p>
124
+ Will always allow true since nil&#8216;s are well, nils.
125
+ </p>
126
+ <p><a class="source-toggle" href="#"
127
+ onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
128
+ <div class="method-source-code" id="M000023-source">
129
+ <pre>
130
+ <span class="ruby-comment cmt"># File lib/extensions/nil.rb, line 4</span>
131
+ 4: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">blank?</span>
132
+ 5: <span class="ruby-keyword kw">true</span>
133
+ 6: <span class="ruby-keyword kw">end</span>
134
+ </pre>
135
+ </div>
136
+ </div>
137
+ </div>
138
+
139
+
140
+ </div>
141
+
142
+
143
+ </div>
144
+
145
+
146
+ <div id="validator-badges">
147
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
148
+ </div>
149
+
150
+ </body>
151
+ </html>
@@ -0,0 +1,472 @@
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: Object</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">Object</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../files/lib/extensions/object_rb.html">
59
+ lib/extensions/object.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
+ <a href="Object.html">
69
+ Object
70
+ </a>
71
+ </td>
72
+ </tr>
73
+ </table>
74
+ </div>
75
+ <!-- banner header -->
76
+
77
+ <div id="bodyContent">
78
+
79
+
80
+
81
+ <div id="contextContent">
82
+
83
+
84
+
85
+ </div>
86
+
87
+ <div id="method-list">
88
+ <h3 class="section-bar">Methods</h3>
89
+
90
+ <div class="name-list">
91
+ <a href="#M000025">class_parents</a>&nbsp;&nbsp;
92
+ <a href="#M000030">ivar_cache</a>&nbsp;&nbsp;
93
+ <a href="#M000031">ivar_cache_clear</a>&nbsp;&nbsp;
94
+ <a href="#M000032">namespaces</a>&nbsp;&nbsp;
95
+ <a href="#M000027">needs_method</a>&nbsp;&nbsp;
96
+ <a href="#M000028">running_time</a>&nbsp;&nbsp;
97
+ <a href="#M000029">send_with_chain</a>&nbsp;&nbsp;
98
+ <a href="#M000026">to_param</a>&nbsp;&nbsp;
99
+ <a href="#M000024">with_options</a>&nbsp;&nbsp;
100
+ </div>
101
+ </div>
102
+
103
+ </div>
104
+
105
+
106
+ <!-- if includes -->
107
+
108
+ <div id="section">
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
+ <!-- if method_list -->
118
+ <div id="methods">
119
+ <h3 class="section-bar">Public Class methods</h3>
120
+
121
+ <div id="method-M000027" class="method-detail">
122
+ <a name="M000027"></a>
123
+
124
+ <div class="method-heading">
125
+ <a href="#M000027" class="method-signature">
126
+ <span class="method-name">needs_method</span><span class="method-args">(meth)</span>
127
+ </a>
128
+ </div>
129
+
130
+ <div class="method-description">
131
+ <p>
132
+ Uses <tt>define_method</tt> to create an empty for the method parameter
133
+ defined. That method will then raise <a
134
+ href="MethodNotImplemented.html">MethodNotImplemented</a>. This is useful
135
+ for creating interfaces and you want to stub out methods that others need
136
+ to implement.
137
+ </p>
138
+ <p><a class="source-toggle" href="#"
139
+ onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
140
+ <div class="method-source-code" id="M000027-source">
141
+ <pre>
142
+ <span class="ruby-comment cmt"># File lib/extensions/object.rb, line 21</span>
143
+ 21: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">needs_method</span>(<span class="ruby-identifier">meth</span>)
144
+ 22: <span class="ruby-identifier">define_method</span>(<span class="ruby-identifier">meth</span>) <span class="ruby-keyword kw">do</span>
145
+ 23: <span class="ruby-identifier">raise</span> <span class="ruby-constant">MethodNotImplemented</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">meth</span>)
146
+ 24: <span class="ruby-keyword kw">end</span>
147
+ 25: <span class="ruby-keyword kw">end</span>
148
+ </pre>
149
+ </div>
150
+ </div>
151
+ </div>
152
+
153
+ <h3 class="section-bar">Public Instance methods</h3>
154
+
155
+ <div id="method-M000025" class="method-detail">
156
+ <a name="M000025"></a>
157
+
158
+ <div class="method-heading">
159
+ <a href="#M000025" class="method-signature">
160
+ <span class="method-name">class_parents</span><span class="method-args">()</span>
161
+ </a>
162
+ </div>
163
+
164
+ <div class="method-description">
165
+ <p>
166
+ See <a href="Class.html">Class</a> parents for more information.
167
+ </p>
168
+ <p><a class="source-toggle" href="#"
169
+ onclick="toggleCode('M000025-source');return false;">[Source]</a></p>
170
+ <div class="method-source-code" id="M000025-source">
171
+ <pre>
172
+ <span class="ruby-comment cmt"># File lib/extensions/object.rb, line 8</span>
173
+ 8: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">class_parents</span>
174
+ 9: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">parents</span>
175
+ 10: <span class="ruby-keyword kw">end</span>
176
+ </pre>
177
+ </div>
178
+ </div>
179
+ </div>
180
+
181
+ <div id="method-M000030" class="method-detail">
182
+ <a name="M000030"></a>
183
+
184
+ <div class="method-heading">
185
+ <a href="#M000030" class="method-signature">
186
+ <span class="method-name">ivar_cache</span><span class="method-args">(var_name = nil) {|| ...}</span>
187
+ </a>
188
+ </div>
189
+
190
+ <div class="method-description">
191
+ <p>
192
+ <a href="Object.html#M000030">ivar_cache</a> allows you to cache the
193
+ results of the block into an instance variable in a class, and then will
194
+ serve up that instance variable the next time you call that method again.
195
+ </p>
196
+ <p>
197
+ old way:
198
+ </p>
199
+ <pre>
200
+ def show_page_link
201
+ unless @show_page_link # check if instance variable exists
202
+ # if the instance variable doesn't exist let's do some work and assign it to the instance variable.
203
+ @show_page_link = link_to(&quot;show&quot;, some_url(:id =&gt; self.id, :foo =&gt; bar, etc... =&gt; etc))
204
+ end
205
+ @show_page_link # now return the instance variable
206
+ end
207
+ </pre>
208
+ <p>
209
+ new way:
210
+ </p>
211
+ <pre>
212
+ def show_page_link
213
+ ivar_cache do
214
+ link_to(&quot;show&quot;, some_url(:id =&gt; self.id, :foo =&gt; bar, etc... =&gt; etc))
215
+ end
216
+ end
217
+ </pre>
218
+ <p>
219
+ this does everything the old way did, but it is much cleaner, and a lot
220
+ less code! in case you&#8216;re wondering it caches the result, by default,
221
+ to an instance variable named after the method, so in our above example the
222
+ instance variable would be name, <tt>@show_page_link</tt>. this can be
223
+ overridden like such:
224
+ </p>
225
+ <pre>
226
+ def show_page_link
227
+ ivar_cache(&quot;foo_var&quot;) do
228
+ link_to(&quot;show&quot;, some_url(:id =&gt; self.id, :foo =&gt; bar, etc... =&gt; etc))
229
+ end
230
+ end
231
+ </pre>
232
+ <p>
233
+ now it will cache it to <tt>@foo_var</tt>
234
+ </p>
235
+ <p><a class="source-toggle" href="#"
236
+ onclick="toggleCode('M000030-source');return false;">[Source]</a></p>
237
+ <div class="method-source-code" id="M000030-source">
238
+ <pre>
239
+ <span class="ruby-comment cmt"># File lib/extensions/object.rb, line 94</span>
240
+ 94: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ivar_cache</span>(<span class="ruby-identifier">var_name</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
241
+ 95: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">var_name</span>.<span class="ruby-identifier">nil?</span>
242
+ 96: <span class="ruby-identifier">call</span> = <span class="ruby-identifier">caller</span>[<span class="ruby-value">0</span>]
243
+ 97: <span class="ruby-identifier">var_name</span> = <span class="ruby-identifier">call</span>[(<span class="ruby-identifier">call</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">'`'</span>)<span class="ruby-operator">+</span><span class="ruby-value">1</span>)<span class="ruby-operator">...</span><span class="ruby-identifier">call</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">&quot;'&quot;</span>)]
244
+ 98: <span class="ruby-keyword kw">end</span>
245
+ 99: <span class="ruby-identifier">var</span> = <span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-node">&quot;@#{var_name}&quot;</span>)
246
+ 100: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">var</span>
247
+ 101: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-node">&quot;@#{var_name}&quot;</span>, <span class="ruby-keyword kw">yield</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
248
+ 102: <span class="ruby-keyword kw">end</span>
249
+ 103: <span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-node">&quot;@#{var_name}&quot;</span>)
250
+ 104: <span class="ruby-keyword kw">end</span>
251
+ </pre>
252
+ </div>
253
+ </div>
254
+ </div>
255
+
256
+ <div id="method-M000031" class="method-detail">
257
+ <a name="M000031"></a>
258
+
259
+ <div class="method-heading">
260
+ <a href="#M000031" class="method-signature">
261
+ <span class="method-name">ivar_cache_clear</span><span class="method-args">(var_name = nil) {|if block_given?| ...}</span>
262
+ </a>
263
+ </div>
264
+
265
+ <div class="method-description">
266
+ <p><a class="source-toggle" href="#"
267
+ onclick="toggleCode('M000031-source');return false;">[Source]</a></p>
268
+ <div class="method-source-code" id="M000031-source">
269
+ <pre>
270
+ <span class="ruby-comment cmt"># File lib/extensions/object.rb, line 106</span>
271
+ 106: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ivar_cache_clear</span>(<span class="ruby-identifier">var_name</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
272
+ 107: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">var_name</span>.<span class="ruby-identifier">nil?</span>
273
+ 108: <span class="ruby-identifier">call</span> = <span class="ruby-identifier">caller</span>[<span class="ruby-value">0</span>]
274
+ 109: <span class="ruby-identifier">var_name</span> = <span class="ruby-identifier">call</span>[(<span class="ruby-identifier">call</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">'`'</span>)<span class="ruby-operator">+</span><span class="ruby-value">1</span>)<span class="ruby-operator">...</span><span class="ruby-identifier">call</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">&quot;'&quot;</span>)]
275
+ 110: <span class="ruby-keyword kw">end</span>
276
+ 111: <span class="ruby-identifier">remove_instance_variable</span>(<span class="ruby-node">&quot;@#{var_name}&quot;</span>) <span class="ruby-comment cmt">#rescue</span>
277
+ 112: <span class="ruby-keyword kw">yield</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
278
+ 113: <span class="ruby-keyword kw">end</span>
279
+ </pre>
280
+ </div>
281
+ </div>
282
+ </div>
283
+
284
+ <div id="method-M000032" class="method-detail">
285
+ <a name="M000032"></a>
286
+
287
+ <div class="method-heading">
288
+ <a href="#M000032" class="method-signature">
289
+ <span class="method-name">namespaces</span><span class="method-args">()</span>
290
+ </a>
291
+ </div>
292
+
293
+ <div class="method-description">
294
+ <p>
295
+ Returns the <a href="Object.html#M000032">namespaces</a> for a particular
296
+ object.
297
+ </p>
298
+ <p>
299
+ Examples:
300
+ </p>
301
+ <pre>
302
+ Animals::Dog::Poodle.new.namespaces # =&gt; [&quot;Animals&quot;, &quot;Dog&quot;]
303
+ </pre>
304
+ <p><a class="source-toggle" href="#"
305
+ onclick="toggleCode('M000032-source');return false;">[Source]</a></p>
306
+ <div class="method-source-code" id="M000032-source">
307
+ <pre>
308
+ <span class="ruby-comment cmt"># File lib/extensions/object.rb, line 119</span>
309
+ 119: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">namespaces</span>
310
+ 120: <span class="ruby-identifier">ivar_cache</span>(<span class="ruby-value str">&quot;object_namespaces&quot;</span>) <span class="ruby-keyword kw">do</span>
311
+ 121: <span class="ruby-identifier">nss</span> = []
312
+ 122: <span class="ruby-identifier">full_name</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_s</span>
313
+ 123: <span class="ruby-identifier">nss</span> = <span class="ruby-identifier">full_name</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;::&quot;</span>)
314
+ 124: <span class="ruby-identifier">nss</span>.<span class="ruby-identifier">pop</span>
315
+ 125: <span class="ruby-identifier">nss</span>
316
+ 126: <span class="ruby-keyword kw">end</span>
317
+ 127: <span class="ruby-keyword kw">end</span>
318
+ </pre>
319
+ </div>
320
+ </div>
321
+ </div>
322
+
323
+ <div id="method-M000028" class="method-detail">
324
+ <a name="M000028"></a>
325
+
326
+ <div class="method-heading">
327
+ <a href="#M000028" class="method-signature">
328
+ <span class="method-name">running_time</span><span class="method-args">(message = &quot;&quot;, logger = nil) {|if block_given?| ...}</span>
329
+ </a>
330
+ </div>
331
+
332
+ <div class="method-description">
333
+ <p>
334
+ This prints out running time for the block provided. This is great for
335
+ things like Rake tasks, etc&#8230; where you would like to know how long
336
+ it, or a section of it took to run.
337
+ </p>
338
+ <p><a class="source-toggle" href="#"
339
+ onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
340
+ <div class="method-source-code" id="M000028-source">
341
+ <pre>
342
+ <span class="ruby-comment cmt"># File lib/extensions/object.rb, line 30</span>
343
+ 30: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">running_time</span>(<span class="ruby-identifier">message</span> = <span class="ruby-value str">&quot;&quot;</span>, <span class="ruby-identifier">logger</span> = <span class="ruby-keyword kw">nil</span>)
344
+ 31: <span class="ruby-identifier">s_time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>
345
+ 32: <span class="ruby-identifier">s</span> = <span class="ruby-node">&quot;---Starting at #{s_time}---&quot;</span>
346
+ 33: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">s</span>
347
+ 34: <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span> <span class="ruby-identifier">s</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">nil?</span>
348
+ 35: <span class="ruby-keyword kw">yield</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
349
+ 36: <span class="ruby-identifier">e_time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>
350
+ 37: <span class="ruby-identifier">e</span> = <span class="ruby-node">&quot;---Ending at #{e_time}---&quot;</span>
351
+ 38: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">e</span>
352
+ 39: <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span> <span class="ruby-identifier">e</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">nil?</span>
353
+ 40: <span class="ruby-identifier">secs</span> = <span class="ruby-identifier">e_time</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">s_time</span>
354
+ 41: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">secs</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">60</span>
355
+ 42: <span class="ruby-identifier">x</span> = <span class="ruby-node">&quot;Running time #{secs} seconds.&quot;</span>
356
+ 43: <span class="ruby-keyword kw">else</span>
357
+ 44: <span class="ruby-identifier">x</span> = <span class="ruby-node">&quot;Running time roughly #{secs/60} minutes [#{secs} seconds]&quot;</span>
358
+ 45: <span class="ruby-keyword kw">end</span>
359
+ 46: <span class="ruby-identifier">x</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot; [MESSAGE]: #{message}&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">message</span>.<span class="ruby-identifier">blank?</span>
360
+ 47: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">x</span>
361
+ 48: <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span> <span class="ruby-identifier">x</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">nil?</span>
362
+ 49: <span class="ruby-keyword kw">end</span>
363
+ </pre>
364
+ </div>
365
+ </div>
366
+ </div>
367
+
368
+ <div id="method-M000029" class="method-detail">
369
+ <a name="M000029"></a>
370
+
371
+ <div class="method-heading">
372
+ <a href="#M000029" class="method-signature">
373
+ <span class="method-name">send_with_chain</span><span class="method-args">(methods, *args)</span>
374
+ </a>
375
+ </div>
376
+
377
+ <div class="method-description">
378
+ <p>
379
+ This method will call send to all the methods defined on the previous
380
+ method.
381
+ </p>
382
+ <p>
383
+ Example:
384
+ </p>
385
+ <pre>
386
+ Fruit.send_with_chain([:new, :get_citrus, :get_orange, :class]) # =&gt; Orange
387
+ </pre>
388
+ <p>
389
+ This would be the equivalent:
390
+ </p>
391
+ <pre>
392
+ Fruit.new.get_citrus.get_orange.class
393
+ </pre>
394
+ <p><a class="source-toggle" href="#"
395
+ onclick="toggleCode('M000029-source');return false;">[Source]</a></p>
396
+ <div class="method-source-code" id="M000029-source">
397
+ <pre>
398
+ <span class="ruby-comment cmt"># File lib/extensions/object.rb, line 58</span>
399
+ 58: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">send_with_chain</span>(<span class="ruby-identifier">methods</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
400
+ 59: <span class="ruby-identifier">obj</span> = <span class="ruby-keyword kw">self</span>
401
+ 60: [<span class="ruby-identifier">methods</span>].<span class="ruby-identifier">flatten</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">m</span><span class="ruby-operator">|</span> <span class="ruby-identifier">obj</span> = <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">m</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)}
402
+ 61: <span class="ruby-identifier">obj</span>
403
+ 62: <span class="ruby-keyword kw">end</span>
404
+ </pre>
405
+ </div>
406
+ </div>
407
+ </div>
408
+
409
+ <div id="method-M000026" class="method-detail">
410
+ <a name="M000026"></a>
411
+
412
+ <div class="method-heading">
413
+ <a href="#M000026" class="method-signature">
414
+ <span class="method-name">to_param</span><span class="method-args">()</span>
415
+ </a>
416
+ </div>
417
+
418
+ <div class="method-description">
419
+ <p>
420
+ This method gets called when a parameter is passed into a named route. This
421
+ can be overridden in an <a href="Object.html">Object</a> to provlde custom
422
+ handling of parameters.
423
+ </p>
424
+ <p><a class="source-toggle" href="#"
425
+ onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
426
+ <div class="method-source-code" id="M000026-source">
427
+ <pre>
428
+ <span class="ruby-comment cmt"># File lib/extensions/object.rb, line 14</span>
429
+ 14: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_param</span>
430
+ 15: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_s</span>
431
+ 16: <span class="ruby-keyword kw">end</span>
432
+ </pre>
433
+ </div>
434
+ </div>
435
+ </div>
436
+
437
+ <div id="method-M000024" class="method-detail">
438
+ <a name="M000024"></a>
439
+
440
+ <div class="method-heading">
441
+ <a href="#M000024" class="method-signature">
442
+ <span class="method-name">with_options</span><span class="method-args">(options) {|Mack::Utils::OptionMerger.new(self, options)| ...}</span>
443
+ </a>
444
+ </div>
445
+
446
+ <div class="method-description">
447
+ <p><a class="source-toggle" href="#"
448
+ onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
449
+ <div class="method-source-code" id="M000024-source">
450
+ <pre>
451
+ <span class="ruby-comment cmt"># File lib/extensions/object.rb, line 3</span>
452
+ 3: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">with_options</span>(<span class="ruby-identifier">options</span>)
453
+ 4: <span class="ruby-keyword kw">yield</span> <span class="ruby-constant">Mack</span><span class="ruby-operator">::</span><span class="ruby-constant">Utils</span><span class="ruby-operator">::</span><span class="ruby-constant">OptionMerger</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">options</span>)
454
+ 5: <span class="ruby-keyword kw">end</span>
455
+ </pre>
456
+ </div>
457
+ </div>
458
+ </div>
459
+
460
+
461
+ </div>
462
+
463
+
464
+ </div>
465
+
466
+
467
+ <div id="validator-badges">
468
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
469
+ </div>
470
+
471
+ </body>
472
+ </html>