configatron 2.3.2 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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>