configatron 2.3.2 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. data/LICENSE +21 -0
  2. data/README +16 -12
  3. data/generators/configatron_generator.rb +20 -0
  4. data/generators/templates/configatron/cucumber.rb +4 -0
  5. data/generators/templates/configatron/defaults.rb +7 -0
  6. data/generators/templates/configatron/development.rb +4 -0
  7. data/generators/templates/configatron/production.rb +4 -0
  8. data/generators/templates/configatron/test.rb +4 -0
  9. data/generators/templates/initializers/configatron.rb +2 -0
  10. data/lib/configatron/configatron.rb +7 -3
  11. data/lib/configatron/rails.rb +44 -0
  12. data/lib/configatron/store.rb +5 -1
  13. data/lib/configatron.rb +2 -1
  14. metadata +19 -28
  15. data/doc/classes/Class.html +0 -169
  16. data/doc/classes/Configatron/LockedNamespace.html +0 -146
  17. data/doc/classes/Configatron/ProtectedParameter.html +0 -146
  18. data/doc/classes/Configatron/Store.html +0 -830
  19. data/doc/classes/Configatron.html +0 -303
  20. data/doc/classes/Kernel.html +0 -144
  21. data/doc/created.rid +0 -1
  22. data/doc/files/README.html +0 -320
  23. data/doc/files/lib/configatron/configatron_rb.html +0 -108
  24. data/doc/files/lib/configatron/core_ext/class_rb.html +0 -101
  25. data/doc/files/lib/configatron/core_ext/kernel_rb.html +0 -101
  26. data/doc/files/lib/configatron/core_ext/object_rb.html +0 -101
  27. data/doc/files/lib/configatron/core_ext/string_rb.html +0 -101
  28. data/doc/files/lib/configatron/errors_rb.html +0 -101
  29. data/doc/files/lib/configatron/store_rb.html +0 -101
  30. data/doc/files/lib/configatron_rb.html +0 -108
  31. data/doc/fr_class_index.html +0 -32
  32. data/doc/fr_file_index.html +0 -35
  33. data/doc/fr_method_index.html +0 -56
  34. data/doc/index.html +0 -24
  35. data/doc/rdoc-style.css +0 -208
@@ -1,830 +0,0 @@
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: Configatron::Store</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">Configatron::Store</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../../files/lib/configatron/store_rb.html">
59
- lib/configatron/store.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="#M000010">configatron_keys</a>&nbsp;&nbsp;
90
- <a href="#M000013">configure_from_hash</a>&nbsp;&nbsp;
91
- <a href="#M000014">configure_from_yaml</a>&nbsp;&nbsp;
92
- <a href="#M000025">deep_clone</a>&nbsp;&nbsp;
93
- <a href="#M000011">exists?</a>&nbsp;&nbsp;
94
- <a href="#M000009">heirarchy</a>&nbsp;&nbsp;
95
- <a href="#M000012">inspect</a>&nbsp;&nbsp;
96
- <a href="#M000023">lock</a>&nbsp;&nbsp;
97
- <a href="#M000026">lock!</a>&nbsp;&nbsp;
98
- <a href="#M000007">new</a>&nbsp;&nbsp;
99
- <a href="#M000015">nil?</a>&nbsp;&nbsp;
100
- <a href="#M000019">protect</a>&nbsp;&nbsp;
101
- <a href="#M000020">protect_all!</a>&nbsp;&nbsp;
102
- <a href="#M000017">remove</a>&nbsp;&nbsp;
103
- <a href="#M000016">retrieve</a>&nbsp;&nbsp;
104
- <a href="#M000018">set_default</a>&nbsp;&nbsp;
105
- <a href="#M000008">to_hash</a>&nbsp;&nbsp;
106
- <a href="#M000024">unlock</a>&nbsp;&nbsp;
107
- <a href="#M000027">unlock!</a>&nbsp;&nbsp;
108
- <a href="#M000021">unprotect</a>&nbsp;&nbsp;
109
- <a href="#M000022">unprotect_all!</a>&nbsp;&nbsp;
110
- </div>
111
- </div>
112
-
113
- </div>
114
-
115
-
116
- <!-- if includes -->
117
-
118
- <div id="section">
119
-
120
-
121
-
122
- <div id="aliases-list">
123
- <h3 class="section-bar">External Aliases</h3>
124
-
125
- <div class="name-list">
126
- <table summary="aliases">
127
- <tr class="top-aligned-row context-row">
128
- <td class="context-item-name">send</td>
129
- <td>-&gt;</td>
130
- <td class="context-item-value">send!</td>
131
- </tr>
132
- </table>
133
- </div>
134
- </div>
135
-
136
-
137
-
138
-
139
-
140
- <!-- if method_list -->
141
- <div id="methods">
142
- <h3 class="section-bar">Public Class methods</h3>
143
-
144
- <div id="method-M000007" class="method-detail">
145
- <a name="M000007"></a>
146
-
147
- <div class="method-heading">
148
- <a href="#M000007" class="method-signature">
149
- <span class="method-name">new</span><span class="method-args">(options = {}, name = nil, parent = nil)</span>
150
- </a>
151
- </div>
152
-
153
- <div class="method-description">
154
- <p>
155
- Takes an optional Hash of parameters
156
- </p>
157
- <p><a class="source-toggle" href="#"
158
- onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
159
- <div class="method-source-code" id="M000007-source">
160
- <pre>
161
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 6</span>
162
- 6: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span> = {}, <span class="ruby-identifier">name</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">parent</span> = <span class="ruby-keyword kw">nil</span>)
163
- 7: <span class="ruby-ivar">@_name</span> = <span class="ruby-identifier">name</span>
164
- 8: <span class="ruby-ivar">@_parent</span> = <span class="ruby-identifier">parent</span>
165
- 9: <span class="ruby-ivar">@_store</span> = {}
166
- 10: <span class="ruby-identifier">configure_from_hash</span>(<span class="ruby-identifier">options</span>)
167
- 11: <span class="ruby-ivar">@_protected</span> = []
168
- 12: <span class="ruby-keyword kw">end</span>
169
- </pre>
170
- </div>
171
- </div>
172
- </div>
173
-
174
- <h3 class="section-bar">Public Instance methods</h3>
175
-
176
- <div id="method-M000010" class="method-detail">
177
- <a name="M000010"></a>
178
-
179
- <div class="method-heading">
180
- <a href="#M000010" class="method-signature">
181
- <span class="method-name">configatron_keys</span><span class="method-args">()</span>
182
- </a>
183
- </div>
184
-
185
- <div class="method-description">
186
- <p><a class="source-toggle" href="#"
187
- onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
188
- <div class="method-source-code" id="M000010-source">
189
- <pre>
190
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 31</span>
191
- 31: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">configatron_keys</span>
192
- 32: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@_store</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">collect</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">k</span>.<span class="ruby-identifier">to_s</span>}.<span class="ruby-identifier">sort</span>
193
- 33: <span class="ruby-keyword kw">end</span>
194
- </pre>
195
- </div>
196
- </div>
197
- </div>
198
-
199
- <div id="method-M000013" class="method-detail">
200
- <a name="M000013"></a>
201
-
202
- <div class="method-heading">
203
- <a href="#M000013" class="method-signature">
204
- <span class="method-name">configure_from_hash</span><span class="method-args">(options)</span>
205
- </a>
206
- </div>
207
-
208
- <div class="method-description">
209
- <p>
210
- Allows for the configuration of the system via a Hash
211
- </p>
212
- <p><a class="source-toggle" href="#"
213
- onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
214
- <div class="method-source-code" id="M000013-source">
215
- <pre>
216
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 77</span>
217
- 77: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">configure_from_hash</span>(<span class="ruby-identifier">options</span>)
218
- 78: <span class="ruby-identifier">parse_options</span>(<span class="ruby-identifier">options</span>)
219
- 79: <span class="ruby-keyword kw">end</span>
220
- </pre>
221
- </div>
222
- </div>
223
- </div>
224
-
225
- <div id="method-M000014" class="method-detail">
226
- <a name="M000014"></a>
227
-
228
- <div class="method-heading">
229
- <a href="#M000014" class="method-signature">
230
- <span class="method-name">configure_from_yaml</span><span class="method-args">(path, opts = {})</span>
231
- </a>
232
- </div>
233
-
234
- <div class="method-description">
235
- <p>
236
- Allows for the configuration of the system from a YAML file. Takes the path
237
- to the YAML file. Also takes an optional parameter, <tt>:hash</tt>, that
238
- indicates a specific hash that should be loaded from the file.
239
- </p>
240
- <p><a class="source-toggle" href="#"
241
- onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
242
- <div class="method-source-code" id="M000014-source">
243
- <pre>
244
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 85</span>
245
- 85: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">configure_from_yaml</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">opts</span> = {})
246
- 86: <span class="ruby-keyword kw">begin</span>
247
- 87: <span class="ruby-identifier">yml</span> = <span class="ruby-operator">::</span><span class="ruby-constant">Yamler</span>.<span class="ruby-identifier">load</span>(<span class="ruby-identifier">path</span>)
248
- 88: <span class="ruby-identifier">yml</span> = <span class="ruby-identifier">yml</span>[<span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:hash</span>]] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">opts</span>[<span class="ruby-identifier">:hash</span>].<span class="ruby-identifier">nil?</span>
249
- 89: <span class="ruby-identifier">configure_from_hash</span>(<span class="ruby-identifier">yml</span>)
250
- 90: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Errno</span><span class="ruby-operator">::</span><span class="ruby-constant">ENOENT</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
251
- 91: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">message</span>
252
- 92: <span class="ruby-keyword kw">end</span>
253
- 93: <span class="ruby-keyword kw">end</span>
254
- </pre>
255
- </div>
256
- </div>
257
- </div>
258
-
259
- <div id="method-M000025" class="method-detail">
260
- <a name="M000025"></a>
261
-
262
- <div class="method-heading">
263
- <a href="#M000025" class="method-signature">
264
- <span class="method-name">deep_clone</span><span class="method-args">( obj=self, cloned={} )</span>
265
- </a>
266
- </div>
267
-
268
- <div class="method-description">
269
- <h1>DeepClone</h1>
270
- <h2>Version</h2>
271
- <pre>
272
- 1.2006.05.23 (change of the first number means Big Change)
273
- </pre>
274
- <h2>Description</h2>
275
- <pre>
276
- Adds deep_clone method to an object which produces deep copy of it. It means
277
- if you clone a Hash, every nested items and their nested items will be cloned.
278
- Moreover deep_clone checks if the object is already cloned to prevent endless recursion.
279
- </pre>
280
- <h2>Usage</h2>
281
- <pre>
282
- (see examples directory under the ruby gems root directory)
283
-
284
- require 'rubygems'
285
- require 'deep_clone'
286
-
287
- include DeepClone
288
-
289
- obj = []
290
- a = [ true, false, obj ]
291
- b = a.deep_clone
292
- obj.push( 'foo' )
293
- p obj # &gt;&gt; [ 'foo' ]
294
- p b[2] # &gt;&gt; []
295
- </pre>
296
- <h2>Source</h2>
297
- <p>
298
- <a
299
- href="http://simplypowerful.1984.cz/goodlibs/1.2006.05.23">simplypowerful.1984.cz/goodlibs/1.2006.05.23</a>
300
- </p>
301
- <h2>Author</h2>
302
- <pre>
303
- jan molic (/mig/at_sign/1984/dot/cz/)
304
- </pre>
305
- <h2>Licence</h2>
306
- <pre>
307
- You can redistribute it and/or modify it under the same terms of Ruby's license;
308
- either the dual license version in 2003, or any later version.
309
- </pre>
310
- <p><a class="source-toggle" href="#"
311
- onclick="toggleCode('M000025-source');return false;">[Source]</a></p>
312
- <div class="method-source-code" id="M000025-source">
313
- <pre>
314
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 218</span>
315
- 218: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">deep_clone</span>( <span class="ruby-identifier">obj</span>=<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">cloned</span>={} )
316
- 219: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cloned</span>.<span class="ruby-identifier">has_key?</span>( <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">object_id</span> )
317
- 220: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">cloned</span>[<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">object_id</span>]
318
- 221: <span class="ruby-keyword kw">else</span>
319
- 222: <span class="ruby-keyword kw">begin</span>
320
- 223: <span class="ruby-identifier">cl</span> = <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">clone</span>
321
- 224: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
322
- 225: <span class="ruby-comment cmt"># unclonnable (TrueClass, Fixnum, ...)</span>
323
- 226: <span class="ruby-identifier">cloned</span>[<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">object_id</span>] = <span class="ruby-identifier">obj</span>
324
- 227: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">obj</span>
325
- 228: <span class="ruby-keyword kw">else</span>
326
- 229: <span class="ruby-identifier">cloned</span>[<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">object_id</span>] = <span class="ruby-identifier">cl</span>
327
- 230: <span class="ruby-identifier">cloned</span>[<span class="ruby-identifier">cl</span>.<span class="ruby-identifier">object_id</span>] = <span class="ruby-identifier">cl</span>
328
- 231: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cl</span>.<span class="ruby-identifier">is_a?</span>( <span class="ruby-constant">Hash</span> )
329
- 232: <span class="ruby-identifier">cl</span>.<span class="ruby-identifier">clone</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
330
- 233: <span class="ruby-identifier">cl</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">deep_clone</span>( <span class="ruby-identifier">v</span>, <span class="ruby-identifier">cloned</span> )
331
- 234: }
332
- 235: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">cl</span>.<span class="ruby-identifier">is_a?</span>( <span class="ruby-constant">Array</span> )
333
- 236: <span class="ruby-identifier">cl</span>.<span class="ruby-identifier">collect!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
334
- 237: <span class="ruby-identifier">deep_clone</span>( <span class="ruby-identifier">v</span>, <span class="ruby-identifier">cloned</span> )
335
- 238: }
336
- 239: <span class="ruby-keyword kw">end</span>
337
- 240: <span class="ruby-identifier">cl</span>.<span class="ruby-identifier">instance_variables</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">var</span><span class="ruby-operator">|</span>
338
- 241: <span class="ruby-identifier">v</span> = <span class="ruby-identifier">cl</span>.<span class="ruby-identifier">instance_eval</span>( <span class="ruby-identifier">var</span>.<span class="ruby-identifier">to_s</span> )
339
- 242: <span class="ruby-identifier">v_cl</span> = <span class="ruby-identifier">deep_clone</span>( <span class="ruby-identifier">v</span>, <span class="ruby-identifier">cloned</span> )
340
- 243: <span class="ruby-identifier">cl</span>.<span class="ruby-identifier">instance_eval</span>( <span class="ruby-node">&quot;#{var} = v_cl&quot;</span> )
341
- 244: <span class="ruby-keyword kw">end</span>
342
- 245: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">cl</span>
343
- 246: <span class="ruby-keyword kw">end</span>
344
- 247: <span class="ruby-keyword kw">end</span>
345
- 248: <span class="ruby-keyword kw">end</span>
346
- </pre>
347
- </div>
348
- </div>
349
- </div>
350
-
351
- <div id="method-M000011" class="method-detail">
352
- <a name="M000011"></a>
353
-
354
- <div class="method-heading">
355
- <a href="#M000011" class="method-signature">
356
- <span class="method-name">exists?</span><span class="method-args">(name)</span>
357
- </a>
358
- </div>
359
-
360
- <div class="method-description">
361
- <p>
362
- Checks whether or not a parameter exists
363
- </p>
364
- <p>
365
- Examples:
366
- </p>
367
- <pre>
368
- configatron.i.am.alive = 'alive!'
369
- configatron.i.am.exists?(:alive) # =&gt; true
370
- configatron.i.am.exists?(:dead) # =&gt; false
371
- </pre>
372
- <p><a class="source-toggle" href="#"
373
- onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
374
- <div class="method-source-code" id="M000011-source">
375
- <pre>
376
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 41</span>
377
- 41: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">exists?</span>(<span class="ruby-identifier">name</span>)
378
- 42: <span class="ruby-ivar">@_store</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_sym</span>) <span class="ruby-operator">||</span> <span class="ruby-ivar">@_store</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_s</span>)
379
- 43: <span class="ruby-keyword kw">end</span>
380
- </pre>
381
- </div>
382
- </div>
383
- </div>
384
-
385
- <div id="method-M000009" class="method-detail">
386
- <a name="M000009"></a>
387
-
388
- <div class="method-heading">
389
- <a href="#M000009" class="method-signature">
390
- <span class="method-name">heirarchy</span><span class="method-args">()</span>
391
- </a>
392
- </div>
393
-
394
- <div class="method-description">
395
- <p><a class="source-toggle" href="#"
396
- onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
397
- <div class="method-source-code" id="M000009-source">
398
- <pre>
399
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 19</span>
400
- 19: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">heirarchy</span>
401
- 20: <span class="ruby-identifier">path</span> = [<span class="ruby-ivar">@_name</span>]
402
- 21: <span class="ruby-identifier">parent</span> = <span class="ruby-ivar">@_parent</span>
403
- 22: <span class="ruby-keyword kw">until</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">nil?</span>
404
- 23: <span class="ruby-identifier">path</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-value str">'@_name'</span>)
405
- 24: <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-value str">'@_parent'</span>)
406
- 25: <span class="ruby-keyword kw">end</span>
407
- 26: <span class="ruby-identifier">path</span>.<span class="ruby-identifier">compact!</span>
408
- 27: <span class="ruby-identifier">path</span>.<span class="ruby-identifier">reverse!</span>
409
- 28: <span class="ruby-identifier">path</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">'.'</span>)
410
- 29: <span class="ruby-keyword kw">end</span>
411
- </pre>
412
- </div>
413
- </div>
414
- </div>
415
-
416
- <div id="method-M000012" class="method-detail">
417
- <a name="M000012"></a>
418
-
419
- <div class="method-heading">
420
- <a href="#M000012" class="method-signature">
421
- <span class="method-name">inspect</span><span class="method-args">()</span>
422
- </a>
423
- </div>
424
-
425
- <div class="method-description">
426
- <p><a class="source-toggle" href="#"
427
- onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
428
- <div class="method-source-code" id="M000012-source">
429
- <pre>
430
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 45</span>
431
- 45: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inspect</span>
432
- 46: <span class="ruby-identifier">path</span> = [<span class="ruby-ivar">@_name</span>]
433
- 47: <span class="ruby-identifier">parent</span> = <span class="ruby-ivar">@_parent</span>
434
- 48: <span class="ruby-keyword kw">until</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">nil?</span>
435
- 49: <span class="ruby-identifier">path</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-value str">'@_name'</span>)
436
- 50: <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-value str">'@_parent'</span>)
437
- 51: <span class="ruby-keyword kw">end</span>
438
- 52: <span class="ruby-identifier">path</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'configatron'</span>
439
- 53: <span class="ruby-identifier">path</span>.<span class="ruby-identifier">compact!</span>
440
- 54: <span class="ruby-identifier">path</span>.<span class="ruby-identifier">reverse!</span>
441
- 55: <span class="ruby-identifier">f_out</span> = []
442
- 56: <span class="ruby-ivar">@_store</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>, <span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
443
- 57: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Configatron</span><span class="ruby-operator">::</span><span class="ruby-constant">Store</span>)
444
- 58: <span class="ruby-identifier">v</span>.<span class="ruby-identifier">inspect</span>.<span class="ruby-identifier">each_line</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
445
- 59: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/\n/</span>)
446
- 60: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">each_line</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">l</span><span class="ruby-operator">|</span>
447
- 61: <span class="ruby-identifier">l</span>.<span class="ruby-identifier">strip!</span>
448
- 62: <span class="ruby-identifier">f_out</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">l</span>
449
- 63: <span class="ruby-keyword kw">end</span>
450
- 64: <span class="ruby-keyword kw">else</span>
451
- 65: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">strip!</span>
452
- 66: <span class="ruby-identifier">f_out</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">line</span>
453
- 67: <span class="ruby-keyword kw">end</span>
454
- 68: <span class="ruby-keyword kw">end</span>
455
- 69: <span class="ruby-keyword kw">else</span>
456
- 70: <span class="ruby-identifier">f_out</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{path.join('.')}.#{k} = #{v.inspect}&quot;</span>
457
- 71: <span class="ruby-keyword kw">end</span>
458
- 72: <span class="ruby-keyword kw">end</span>
459
- 73: <span class="ruby-identifier">f_out</span>.<span class="ruby-identifier">compact</span>.<span class="ruby-identifier">sort</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;\n&quot;</span>)
460
- 74: <span class="ruby-keyword kw">end</span>
461
- </pre>
462
- </div>
463
- </div>
464
- </div>
465
-
466
- <div id="method-M000023" class="method-detail">
467
- <a name="M000023"></a>
468
-
469
- <div class="method-heading">
470
- <a href="#M000023" class="method-signature">
471
- <span class="method-name">lock</span><span class="method-args">(name)</span>
472
- </a>
473
- </div>
474
-
475
- <div class="method-description">
476
- <p>
477
- Prevents a namespace from having <a href="Store.html#M000007">new</a>
478
- parameters set. The <a href="Store.html#M000023">lock</a> is applied
479
- recursively to any namespaces below it.
480
- </p>
481
- <p><a class="source-toggle" href="#"
482
- onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
483
- <div class="method-source-code" id="M000023-source">
484
- <pre>
485
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 170</span>
486
- 170: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lock</span>(<span class="ruby-identifier">name</span>)
487
- 171: <span class="ruby-identifier">namespace</span> = <span class="ruby-ivar">@_store</span>[<span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_sym</span>]
488
- 172: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Namespace #{name.inspect} does not exist&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">nil?</span>
489
- 173: <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">lock!</span>
490
- 174: <span class="ruby-keyword kw">end</span>
491
- </pre>
492
- </div>
493
- </div>
494
- </div>
495
-
496
- <div id="method-M000015" class="method-detail">
497
- <a name="M000015"></a>
498
-
499
- <div class="method-heading">
500
- <a href="#M000015" class="method-signature">
501
- <span class="method-name">nil?</span><span class="method-args">()</span>
502
- </a>
503
- </div>
504
-
505
- <div class="method-description">
506
- <p>
507
- Returns true if there are no configuration parameters
508
- </p>
509
- <p><a class="source-toggle" href="#"
510
- onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
511
- <div class="method-source-code" id="M000015-source">
512
- <pre>
513
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 96</span>
514
- 96: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nil?</span>
515
- 97: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@_store</span>.<span class="ruby-identifier">empty?</span>
516
- 98: <span class="ruby-keyword kw">end</span>
517
- </pre>
518
- </div>
519
- </div>
520
- </div>
521
-
522
- <div id="method-M000019" class="method-detail">
523
- <a name="M000019"></a>
524
-
525
- <div class="method-heading">
526
- <a href="#M000019" class="method-signature">
527
- <span class="method-name">protect</span><span class="method-args">(name)</span>
528
- </a>
529
- </div>
530
-
531
- <div class="method-description">
532
- <p>
533
- Prevents a parameter from being reassigned. If called on a
534
- &#8216;namespace&#8217; then all parameters below it will be protected as
535
- well.
536
- </p>
537
- <p><a class="source-toggle" href="#"
538
- onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
539
- <div class="method-source-code" id="M000019-source">
540
- <pre>
541
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 141</span>
542
- 141: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">protect</span>(<span class="ruby-identifier">name</span>)
543
- 142: <span class="ruby-ivar">@_protected</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_sym</span>
544
- 143: <span class="ruby-keyword kw">end</span>
545
- </pre>
546
- </div>
547
- </div>
548
- </div>
549
-
550
- <div id="method-M000020" class="method-detail">
551
- <a name="M000020"></a>
552
-
553
- <div class="method-heading">
554
- <a href="#M000020" class="method-signature">
555
- <span class="method-name">protect_all!</span><span class="method-args">()</span>
556
- </a>
557
- </div>
558
-
559
- <div class="method-description">
560
- <p>
561
- Prevents all parameters from being reassigned.
562
- </p>
563
- <p><a class="source-toggle" href="#"
564
- onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
565
- <div class="method-source-code" id="M000020-source">
566
- <pre>
567
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 146</span>
568
- 146: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">protect_all!</span>
569
- 147: <span class="ruby-ivar">@_protected</span>.<span class="ruby-identifier">clear</span>
570
- 148: <span class="ruby-ivar">@_store</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span>
571
- 149: <span class="ruby-identifier">val</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">k</span>)
572
- 150: <span class="ruby-identifier">val</span>.<span class="ruby-identifier">protect_all!</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Configatron</span><span class="ruby-operator">::</span><span class="ruby-constant">Store</span>
573
- 151: <span class="ruby-ivar">@_protected</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">k</span>
574
- 152: <span class="ruby-keyword kw">end</span>
575
- 153: <span class="ruby-keyword kw">end</span>
576
- </pre>
577
- </div>
578
- </div>
579
- </div>
580
-
581
- <div id="method-M000017" class="method-detail">
582
- <a name="M000017"></a>
583
-
584
- <div class="method-heading">
585
- <a href="#M000017" class="method-signature">
586
- <span class="method-name">remove</span><span class="method-args">(name)</span>
587
- </a>
588
- </div>
589
-
590
- <div class="method-description">
591
- <p>
592
- Removes a parameter. In the case of a nested parameter it will <a
593
- href="Store.html#M000017">remove</a> all below it.
594
- </p>
595
- <p><a class="source-toggle" href="#"
596
- onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
597
- <div class="method-source-code" id="M000017-source">
598
- <pre>
599
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 108</span>
600
- 108: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">remove</span>(<span class="ruby-identifier">name</span>)
601
- 109: <span class="ruby-ivar">@_store</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_sym</span>)
602
- 110: <span class="ruby-keyword kw">end</span>
603
- </pre>
604
- </div>
605
- </div>
606
- </div>
607
-
608
- <div id="method-M000016" class="method-detail">
609
- <a name="M000016"></a>
610
-
611
- <div class="method-heading">
612
- <a href="#M000016" class="method-signature">
613
- <span class="method-name">retrieve</span><span class="method-args">(name, default_value = nil)</span>
614
- </a>
615
- </div>
616
-
617
- <div class="method-description">
618
- <p>
619
- Retrieves a certain parameter and if that parameter doesn&#8216;t exist it
620
- will return the default_value specified.
621
- </p>
622
- <p><a class="source-toggle" href="#"
623
- onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
624
- <div class="method-source-code" id="M000016-source">
625
- <pre>
626
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 102</span>
627
- 102: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">retrieve</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">default_value</span> = <span class="ruby-keyword kw">nil</span>)
628
- 103: <span class="ruby-ivar">@_store</span>[<span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_sym</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">default_value</span>
629
- 104: <span class="ruby-keyword kw">end</span>
630
- </pre>
631
- </div>
632
- </div>
633
- </div>
634
-
635
- <div id="method-M000018" class="method-detail">
636
- <a name="M000018"></a>
637
-
638
- <div class="method-heading">
639
- <a href="#M000018" class="method-signature">
640
- <span class="method-name">set_default</span><span class="method-args">(name, default_value)</span>
641
- </a>
642
- </div>
643
-
644
- <div class="method-description">
645
- <p>
646
- Sets a &#8216;default&#8217; value. If there is already a value specified
647
- it won&#8216;t set the value.
648
- </p>
649
- <p><a class="source-toggle" href="#"
650
- onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
651
- <div class="method-source-code" id="M000018-source">
652
- <pre>
653
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 114</span>
654
- 114: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_default</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">default_value</span>)
655
- 115: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@_store</span>[<span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_sym</span>]
656
- 116: <span class="ruby-ivar">@_store</span>[<span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_sym</span>] = <span class="ruby-identifier">parse_options</span>(<span class="ruby-identifier">default_value</span>)
657
- 117: <span class="ruby-keyword kw">end</span>
658
- 118: <span class="ruby-keyword kw">end</span>
659
- </pre>
660
- </div>
661
- </div>
662
- </div>
663
-
664
- <div id="method-M000008" class="method-detail">
665
- <a name="M000008"></a>
666
-
667
- <div class="method-heading">
668
- <a href="#M000008" class="method-signature">
669
- <span class="method-name">to_hash</span><span class="method-args">()</span>
670
- </a>
671
- </div>
672
-
673
- <div class="method-description">
674
- <p>
675
- Returns a Hash representing the configurations
676
- </p>
677
- <p><a class="source-toggle" href="#"
678
- onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
679
- <div class="method-source-code" id="M000008-source">
680
- <pre>
681
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 15</span>
682
- 15: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_hash</span>
683
- 16: <span class="ruby-ivar">@_store</span>
684
- 17: <span class="ruby-keyword kw">end</span>
685
- </pre>
686
- </div>
687
- </div>
688
- </div>
689
-
690
- <div id="method-M000024" class="method-detail">
691
- <a name="M000024"></a>
692
-
693
- <div class="method-heading">
694
- <a href="#M000024" class="method-signature">
695
- <span class="method-name">unlock</span><span class="method-args">(name)</span>
696
- </a>
697
- </div>
698
-
699
- <div class="method-description">
700
- <p><a class="source-toggle" href="#"
701
- onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
702
- <div class="method-source-code" id="M000024-source">
703
- <pre>
704
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 176</span>
705
- 176: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unlock</span>(<span class="ruby-identifier">name</span>)
706
- 177: <span class="ruby-identifier">namespace</span> = <span class="ruby-ivar">@_store</span>[<span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_sym</span>]
707
- 178: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Namespace #{name.inspect} does not exist&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">nil?</span>
708
- 179: <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">unlock!</span>
709
- 180: <span class="ruby-keyword kw">end</span>
710
- </pre>
711
- </div>
712
- </div>
713
- </div>
714
-
715
- <div id="method-M000021" class="method-detail">
716
- <a name="M000021"></a>
717
-
718
- <div class="method-heading">
719
- <a href="#M000021" class="method-signature">
720
- <span class="method-name">unprotect</span><span class="method-args">(name)</span>
721
- </a>
722
- </div>
723
-
724
- <div class="method-description">
725
- <p>
726
- Removes the protection of a parameter.
727
- </p>
728
- <p><a class="source-toggle" href="#"
729
- onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
730
- <div class="method-source-code" id="M000021-source">
731
- <pre>
732
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 156</span>
733
- 156: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unprotect</span>(<span class="ruby-identifier">name</span>)
734
- 157: <span class="ruby-ivar">@_protected</span>.<span class="ruby-identifier">reject!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-identifier">e</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_sym</span> }
735
- 158: <span class="ruby-keyword kw">end</span>
736
- </pre>
737
- </div>
738
- </div>
739
- </div>
740
-
741
- <div id="method-M000022" class="method-detail">
742
- <a name="M000022"></a>
743
-
744
- <div class="method-heading">
745
- <a href="#M000022" class="method-signature">
746
- <span class="method-name">unprotect_all!</span><span class="method-args">()</span>
747
- </a>
748
- </div>
749
-
750
- <div class="method-description">
751
- <p><a class="source-toggle" href="#"
752
- onclick="toggleCode('M000022-source');return false;">[Source]</a></p>
753
- <div class="method-source-code" id="M000022-source">
754
- <pre>
755
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 160</span>
756
- 160: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unprotect_all!</span>
757
- 161: <span class="ruby-ivar">@_protected</span>.<span class="ruby-identifier">clear</span>
758
- 162: <span class="ruby-ivar">@_store</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span>
759
- 163: <span class="ruby-identifier">val</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">k</span>)
760
- 164: <span class="ruby-identifier">val</span>.<span class="ruby-identifier">unprotect_all!</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Configatron</span><span class="ruby-operator">::</span><span class="ruby-constant">Store</span>
761
- 165: <span class="ruby-keyword kw">end</span>
762
- 166: <span class="ruby-keyword kw">end</span>
763
- </pre>
764
- </div>
765
- </div>
766
- </div>
767
-
768
- <h3 class="section-bar">Protected Instance methods</h3>
769
-
770
- <div id="method-M000026" class="method-detail">
771
- <a name="M000026"></a>
772
-
773
- <div class="method-heading">
774
- <a href="#M000026" class="method-signature">
775
- <span class="method-name">lock!</span><span class="method-args">()</span>
776
- </a>
777
- </div>
778
-
779
- <div class="method-description">
780
- <p><a class="source-toggle" href="#"
781
- onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
782
- <div class="method-source-code" id="M000026-source">
783
- <pre>
784
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 251</span>
785
- 251: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lock!</span>
786
- 252: <span class="ruby-ivar">@_locked</span> = <span class="ruby-keyword kw">true</span>
787
- 253: <span class="ruby-ivar">@_store</span>.<span class="ruby-identifier">values</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">store</span><span class="ruby-operator">|</span> <span class="ruby-identifier">store</span>.<span class="ruby-identifier">lock!</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">store</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Configatron</span><span class="ruby-operator">::</span><span class="ruby-constant">Store</span>) }
788
- 254: <span class="ruby-keyword kw">end</span>
789
- </pre>
790
- </div>
791
- </div>
792
- </div>
793
-
794
- <div id="method-M000027" class="method-detail">
795
- <a name="M000027"></a>
796
-
797
- <div class="method-heading">
798
- <a href="#M000027" class="method-signature">
799
- <span class="method-name">unlock!</span><span class="method-args">()</span>
800
- </a>
801
- </div>
802
-
803
- <div class="method-description">
804
- <p><a class="source-toggle" href="#"
805
- onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
806
- <div class="method-source-code" id="M000027-source">
807
- <pre>
808
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 256</span>
809
- 256: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unlock!</span>
810
- 257: <span class="ruby-ivar">@_locked</span> = <span class="ruby-keyword kw">false</span>
811
- 258: <span class="ruby-ivar">@_store</span>.<span class="ruby-identifier">values</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">store</span><span class="ruby-operator">|</span> <span class="ruby-identifier">store</span>.<span class="ruby-identifier">unlock!</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">store</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Configatron</span><span class="ruby-operator">::</span><span class="ruby-constant">Store</span>) }
812
- 259: <span class="ruby-keyword kw">end</span>
813
- </pre>
814
- </div>
815
- </div>
816
- </div>
817
-
818
-
819
- </div>
820
-
821
-
822
- </div>
823
-
824
-
825
- <div id="validator-badges">
826
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
827
- </div>
828
-
829
- </body>
830
- </html>