configatron 2.1.2 → 2.1.3

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.
@@ -86,7 +86,7 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000017">intialize</a>&nbsp;&nbsp;
89
+ <a href="#M000018">intialize</a>&nbsp;&nbsp;
90
90
  </div>
91
91
  </div>
92
92
 
@@ -108,19 +108,19 @@
108
108
  <div id="methods">
109
109
  <h3 class="section-bar">Public Instance methods</h3>
110
110
 
111
- <div id="method-M000017" class="method-detail">
112
- <a name="M000017"></a>
111
+ <div id="method-M000018" class="method-detail">
112
+ <a name="M000018"></a>
113
113
 
114
114
  <div class="method-heading">
115
- <a href="#M000017" class="method-signature">
115
+ <a href="#M000018" class="method-signature">
116
116
  <span class="method-name">intialize</span><span class="method-args">(name)</span>
117
117
  </a>
118
118
  </div>
119
119
 
120
120
  <div class="method-description">
121
121
  <p><a class="source-toggle" href="#"
122
- onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
123
- <div class="method-source-code" id="M000017-source">
122
+ onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
123
+ <div class="method-source-code" id="M000018-source">
124
124
  <pre>
125
125
  <span class="ruby-comment cmt"># File lib/configatron/errors.rb, line 3</span>
126
126
  3: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">intialize</span>(<span class="ruby-identifier">name</span>)
@@ -86,19 +86,20 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000006">configure_from_hash</a>&nbsp;&nbsp;
90
- <a href="#M000007">configure_from_yaml</a>&nbsp;&nbsp;
91
- <a href="#M000016">deep_clone</a>&nbsp;&nbsp;
89
+ <a href="#M000007">configure_from_hash</a>&nbsp;&nbsp;
90
+ <a href="#M000008">configure_from_yaml</a>&nbsp;&nbsp;
91
+ <a href="#M000017">deep_clone</a>&nbsp;&nbsp;
92
+ <a href="#M000006">inspect</a>&nbsp;&nbsp;
92
93
  <a href="#M000004">new</a>&nbsp;&nbsp;
93
- <a href="#M000008">nil?</a>&nbsp;&nbsp;
94
- <a href="#M000012">protect</a>&nbsp;&nbsp;
95
- <a href="#M000013">protect_all!</a>&nbsp;&nbsp;
96
- <a href="#M000010">remove</a>&nbsp;&nbsp;
97
- <a href="#M000009">retrieve</a>&nbsp;&nbsp;
98
- <a href="#M000011">set_default</a>&nbsp;&nbsp;
94
+ <a href="#M000009">nil?</a>&nbsp;&nbsp;
95
+ <a href="#M000013">protect</a>&nbsp;&nbsp;
96
+ <a href="#M000014">protect_all!</a>&nbsp;&nbsp;
97
+ <a href="#M000011">remove</a>&nbsp;&nbsp;
98
+ <a href="#M000010">retrieve</a>&nbsp;&nbsp;
99
+ <a href="#M000012">set_default</a>&nbsp;&nbsp;
99
100
  <a href="#M000005">to_hash</a>&nbsp;&nbsp;
100
- <a href="#M000014">unprotect</a>&nbsp;&nbsp;
101
- <a href="#M000015">unprotect_all!</a>&nbsp;&nbsp;
101
+ <a href="#M000015">unprotect</a>&nbsp;&nbsp;
102
+ <a href="#M000016">unprotect_all!</a>&nbsp;&nbsp;
102
103
  </div>
103
104
  </div>
104
105
 
@@ -125,7 +126,7 @@
125
126
 
126
127
  <div class="method-heading">
127
128
  <a href="#M000004" class="method-signature">
128
- <span class="method-name">new</span><span class="method-args">(options = {})</span>
129
+ <span class="method-name">new</span><span class="method-args">(options = {}, name = nil, parent = nil)</span>
129
130
  </a>
130
131
  </div>
131
132
 
@@ -138,12 +139,13 @@ Takes an optional Hash of parameters
138
139
  <div class="method-source-code" id="M000004-source">
139
140
  <pre>
140
141
  <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 5</span>
141
- 5: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span> = {})
142
- 6: <span class="ruby-ivar">@_store</span> = {}
143
- 7: <span class="ruby-identifier">configure_from_hash</span>(<span class="ruby-identifier">options</span>)
144
- 8: <span class="ruby-ivar">@_protected</span> = []
145
- 9: <span class="ruby-comment cmt"># self.methods.each { |m| puts &quot;m: #{m}&quot;; configatron.protect(m.to_sym) }</span>
146
- 10: <span class="ruby-keyword kw">end</span>
142
+ 5: <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>)
143
+ 6: <span class="ruby-ivar">@_name</span> = <span class="ruby-identifier">name</span>
144
+ 7: <span class="ruby-ivar">@_parent</span> = <span class="ruby-identifier">parent</span>
145
+ 8: <span class="ruby-ivar">@_store</span> = {}
146
+ 9: <span class="ruby-identifier">configure_from_hash</span>(<span class="ruby-identifier">options</span>)
147
+ 10: <span class="ruby-ivar">@_protected</span> = []
148
+ 11: <span class="ruby-keyword kw">end</span>
147
149
  </pre>
148
150
  </div>
149
151
  </div>
@@ -151,11 +153,11 @@ Takes an optional Hash of parameters
151
153
 
152
154
  <h3 class="section-bar">Public Instance methods</h3>
153
155
 
154
- <div id="method-M000006" class="method-detail">
155
- <a name="M000006"></a>
156
+ <div id="method-M000007" class="method-detail">
157
+ <a name="M000007"></a>
156
158
 
157
159
  <div class="method-heading">
158
- <a href="#M000006" class="method-signature">
160
+ <a href="#M000007" class="method-signature">
159
161
  <span class="method-name">configure_from_hash</span><span class="method-args">(options)</span>
160
162
  </a>
161
163
  </div>
@@ -165,23 +167,23 @@ Takes an optional Hash of parameters
165
167
  Allows for the configuration of the system via a Hash
166
168
  </p>
167
169
  <p><a class="source-toggle" href="#"
168
- onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
169
- <div class="method-source-code" id="M000006-source">
170
+ onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
171
+ <div class="method-source-code" id="M000007-source">
170
172
  <pre>
171
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 22</span>
172
- 22: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">configure_from_hash</span>(<span class="ruby-identifier">options</span>)
173
- 23: <span class="ruby-identifier">parse_options</span>(<span class="ruby-identifier">options</span>)
174
- 24: <span class="ruby-keyword kw">end</span>
173
+ <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 50</span>
174
+ 50: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">configure_from_hash</span>(<span class="ruby-identifier">options</span>)
175
+ 51: <span class="ruby-identifier">parse_options</span>(<span class="ruby-identifier">options</span>)
176
+ 52: <span class="ruby-keyword kw">end</span>
175
177
  </pre>
176
178
  </div>
177
179
  </div>
178
180
  </div>
179
181
 
180
- <div id="method-M000007" class="method-detail">
181
- <a name="M000007"></a>
182
+ <div id="method-M000008" class="method-detail">
183
+ <a name="M000008"></a>
182
184
 
183
185
  <div class="method-heading">
184
- <a href="#M000007" class="method-signature">
186
+ <a href="#M000008" class="method-signature">
185
187
  <span class="method-name">configure_from_yaml</span><span class="method-args">(path, opts = {})</span>
186
188
  </a>
187
189
  </div>
@@ -193,29 +195,29 @@ to the YAML file. Also takes an optional parameter, <tt>:hash</tt>, that
193
195
  indicates a specific hash that should be loaded from the file.
194
196
  </p>
195
197
  <p><a class="source-toggle" href="#"
196
- onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
197
- <div class="method-source-code" id="M000007-source">
198
+ onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
199
+ <div class="method-source-code" id="M000008-source">
198
200
  <pre>
199
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 30</span>
200
- 30: <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> = {})
201
- 31: <span class="ruby-keyword kw">begin</span>
202
- 32: <span class="ruby-identifier">yml</span> = <span class="ruby-constant">YAML</span>.<span class="ruby-identifier">load</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">path</span>))
203
- 33: <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>
204
- 34: <span class="ruby-identifier">configure_from_hash</span>(<span class="ruby-identifier">yml</span>)
205
- 35: <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>
206
- 36: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">message</span>
207
- 37: <span class="ruby-keyword kw">end</span>
208
- 38: <span class="ruby-keyword kw">end</span>
201
+ <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 58</span>
202
+ 58: <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> = {})
203
+ 59: <span class="ruby-keyword kw">begin</span>
204
+ 60: <span class="ruby-identifier">yml</span> = <span class="ruby-constant">YAML</span>.<span class="ruby-identifier">load</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">path</span>))
205
+ 61: <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>
206
+ 62: <span class="ruby-identifier">configure_from_hash</span>(<span class="ruby-identifier">yml</span>)
207
+ 63: <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>
208
+ 64: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">message</span>
209
+ 65: <span class="ruby-keyword kw">end</span>
210
+ 66: <span class="ruby-keyword kw">end</span>
209
211
  </pre>
210
212
  </div>
211
213
  </div>
212
214
  </div>
213
215
 
214
- <div id="method-M000016" class="method-detail">
215
- <a name="M000016"></a>
216
+ <div id="method-M000017" class="method-detail">
217
+ <a name="M000017"></a>
216
218
 
217
219
  <div class="method-heading">
218
- <a href="#M000016" class="method-signature">
220
+ <a href="#M000017" class="method-signature">
219
221
  <span class="method-name">deep_clone</span><span class="method-args">( obj=self, cloned={} )</span>
220
222
  </a>
221
223
  </div>
@@ -263,51 +265,101 @@ href="http://simplypowerful.1984.cz/goodlibs/1.2006.05.23">simplypowerful.1984.c
263
265
  either the dual license version in 2003, or any later version.
264
266
  </pre>
265
267
  <p><a class="source-toggle" href="#"
266
- onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
267
- <div class="method-source-code" id="M000016-source">
268
+ onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
269
+ <div class="method-source-code" id="M000017-source">
268
270
  <pre>
269
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 148</span>
270
- 148: <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>={} )
271
- 149: <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> )
272
- 150: <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>]
273
- 151: <span class="ruby-keyword kw">else</span>
274
- 152: <span class="ruby-keyword kw">begin</span>
275
- 153: <span class="ruby-identifier">cl</span> = <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">clone</span>
276
- 154: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
277
- 155: <span class="ruby-comment cmt"># unclonnable (TrueClass, Fixnum, ...)</span>
278
- 156: <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>
279
- 157: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">obj</span>
280
- 158: <span class="ruby-keyword kw">else</span>
281
- 159: <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>
282
- 160: <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>
283
- 161: <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> )
284
- 162: <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>
285
- 163: <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> )
286
- 164: }
287
- 165: <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> )
288
- 166: <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>
289
- 167: <span class="ruby-identifier">deep_clone</span>( <span class="ruby-identifier">v</span>, <span class="ruby-identifier">cloned</span> )
290
- 168: }
291
- 169: <span class="ruby-keyword kw">end</span>
292
- 170: <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>
293
- 171: <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> )
294
- 172: <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> )
295
- 173: <span class="ruby-identifier">cl</span>.<span class="ruby-identifier">instance_eval</span>( <span class="ruby-node">&quot;#{var} = v_cl&quot;</span> )
296
- 174: <span class="ruby-keyword kw">end</span>
297
- 175: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">cl</span>
298
- 176: <span class="ruby-keyword kw">end</span>
299
- 177: <span class="ruby-keyword kw">end</span>
300
- 178: <span class="ruby-keyword kw">end</span>
271
+ <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 176</span>
272
+ 176: <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>={} )
273
+ 177: <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> )
274
+ 178: <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>]
275
+ 179: <span class="ruby-keyword kw">else</span>
276
+ 180: <span class="ruby-keyword kw">begin</span>
277
+ 181: <span class="ruby-identifier">cl</span> = <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">clone</span>
278
+ 182: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
279
+ 183: <span class="ruby-comment cmt"># unclonnable (TrueClass, Fixnum, ...)</span>
280
+ 184: <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>
281
+ 185: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">obj</span>
282
+ 186: <span class="ruby-keyword kw">else</span>
283
+ 187: <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>
284
+ 188: <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>
285
+ 189: <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> )
286
+ 190: <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>
287
+ 191: <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> )
288
+ 192: }
289
+ 193: <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> )
290
+ 194: <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>
291
+ 195: <span class="ruby-identifier">deep_clone</span>( <span class="ruby-identifier">v</span>, <span class="ruby-identifier">cloned</span> )
292
+ 196: }
293
+ 197: <span class="ruby-keyword kw">end</span>
294
+ 198: <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>
295
+ 199: <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> )
296
+ 200: <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> )
297
+ 201: <span class="ruby-identifier">cl</span>.<span class="ruby-identifier">instance_eval</span>( <span class="ruby-node">&quot;#{var} = v_cl&quot;</span> )
298
+ 202: <span class="ruby-keyword kw">end</span>
299
+ 203: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">cl</span>
300
+ 204: <span class="ruby-keyword kw">end</span>
301
+ 205: <span class="ruby-keyword kw">end</span>
302
+ 206: <span class="ruby-keyword kw">end</span>
301
303
  </pre>
302
304
  </div>
303
305
  </div>
304
306
  </div>
305
307
 
306
- <div id="method-M000008" class="method-detail">
307
- <a name="M000008"></a>
308
+ <div id="method-M000006" class="method-detail">
309
+ <a name="M000006"></a>
308
310
 
309
311
  <div class="method-heading">
310
- <a href="#M000008" class="method-signature">
312
+ <a href="#M000006" class="method-signature">
313
+ <span class="method-name">inspect</span><span class="method-args">()</span>
314
+ </a>
315
+ </div>
316
+
317
+ <div class="method-description">
318
+ <p><a class="source-toggle" href="#"
319
+ onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
320
+ <div class="method-source-code" id="M000006-source">
321
+ <pre>
322
+ <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 18</span>
323
+ 18: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inspect</span>
324
+ 19: <span class="ruby-identifier">path</span> = [<span class="ruby-ivar">@_name</span>]
325
+ 20: <span class="ruby-identifier">parent</span> = <span class="ruby-ivar">@_parent</span>
326
+ 21: <span class="ruby-keyword kw">until</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">nil?</span>
327
+ 22: <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>)
328
+ 23: <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>)
329
+ 24: <span class="ruby-keyword kw">end</span>
330
+ 25: <span class="ruby-identifier">path</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">'configatron'</span>
331
+ 26: <span class="ruby-identifier">path</span>.<span class="ruby-identifier">compact!</span>
332
+ 27: <span class="ruby-identifier">path</span>.<span class="ruby-identifier">reverse!</span>
333
+ 28: <span class="ruby-identifier">f_out</span> = []
334
+ 29: <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>
335
+ 30: <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>)
336
+ 31: <span class="ruby-identifier">v</span>.<span class="ruby-identifier">inspect</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
337
+ 32: <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>)
338
+ 33: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">l</span><span class="ruby-operator">|</span>
339
+ 34: <span class="ruby-identifier">l</span>.<span class="ruby-identifier">strip!</span>
340
+ 35: <span class="ruby-identifier">f_out</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">l</span>
341
+ 36: <span class="ruby-keyword kw">end</span>
342
+ 37: <span class="ruby-keyword kw">else</span>
343
+ 38: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">strip!</span>
344
+ 39: <span class="ruby-identifier">f_out</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">line</span>
345
+ 40: <span class="ruby-keyword kw">end</span>
346
+ 41: <span class="ruby-keyword kw">end</span>
347
+ 42: <span class="ruby-keyword kw">else</span>
348
+ 43: <span class="ruby-identifier">f_out</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{path.join('.')}.#{k} #=&gt; #{v.inspect}&quot;</span>
349
+ 44: <span class="ruby-keyword kw">end</span>
350
+ 45: <span class="ruby-keyword kw">end</span>
351
+ 46: <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>)
352
+ 47: <span class="ruby-keyword kw">end</span>
353
+ </pre>
354
+ </div>
355
+ </div>
356
+ </div>
357
+
358
+ <div id="method-M000009" class="method-detail">
359
+ <a name="M000009"></a>
360
+
361
+ <div class="method-heading">
362
+ <a href="#M000009" class="method-signature">
311
363
  <span class="method-name">nil?</span><span class="method-args">()</span>
312
364
  </a>
313
365
  </div>
@@ -317,23 +369,23 @@ href="http://simplypowerful.1984.cz/goodlibs/1.2006.05.23">simplypowerful.1984.c
317
369
  Returns true if there are no configuration parameters
318
370
  </p>
319
371
  <p><a class="source-toggle" href="#"
320
- onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
321
- <div class="method-source-code" id="M000008-source">
372
+ onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
373
+ <div class="method-source-code" id="M000009-source">
322
374
  <pre>
323
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 41</span>
324
- 41: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nil?</span>
325
- 42: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@_store</span>.<span class="ruby-identifier">empty?</span>
326
- 43: <span class="ruby-keyword kw">end</span>
375
+ <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 69</span>
376
+ 69: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nil?</span>
377
+ 70: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@_store</span>.<span class="ruby-identifier">empty?</span>
378
+ 71: <span class="ruby-keyword kw">end</span>
327
379
  </pre>
328
380
  </div>
329
381
  </div>
330
382
  </div>
331
383
 
332
- <div id="method-M000012" class="method-detail">
333
- <a name="M000012"></a>
384
+ <div id="method-M000013" class="method-detail">
385
+ <a name="M000013"></a>
334
386
 
335
387
  <div class="method-heading">
336
- <a href="#M000012" class="method-signature">
388
+ <a href="#M000013" class="method-signature">
337
389
  <span class="method-name">protect</span><span class="method-args">(name)</span>
338
390
  </a>
339
391
  </div>
@@ -345,23 +397,23 @@ Prevents a parameter from being reassigned. If called on a
345
397
  well.
346
398
  </p>
347
399
  <p><a class="source-toggle" href="#"
348
- onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
349
- <div class="method-source-code" id="M000012-source">
400
+ onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
401
+ <div class="method-source-code" id="M000013-source">
350
402
  <pre>
351
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 85</span>
352
- 85: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">protect</span>(<span class="ruby-identifier">name</span>)
353
- 86: <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>
354
- 87: <span class="ruby-keyword kw">end</span>
403
+ <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 113</span>
404
+ 113: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">protect</span>(<span class="ruby-identifier">name</span>)
405
+ 114: <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>
406
+ 115: <span class="ruby-keyword kw">end</span>
355
407
  </pre>
356
408
  </div>
357
409
  </div>
358
410
  </div>
359
411
 
360
- <div id="method-M000013" class="method-detail">
361
- <a name="M000013"></a>
412
+ <div id="method-M000014" class="method-detail">
413
+ <a name="M000014"></a>
362
414
 
363
415
  <div class="method-heading">
364
- <a href="#M000013" class="method-signature">
416
+ <a href="#M000014" class="method-signature">
365
417
  <span class="method-name">protect_all!</span><span class="method-args">()</span>
366
418
  </a>
367
419
  </div>
@@ -371,28 +423,28 @@ well.
371
423
  Prevents all parameters from being reassigned.
372
424
  </p>
373
425
  <p><a class="source-toggle" href="#"
374
- onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
375
- <div class="method-source-code" id="M000013-source">
426
+ onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
427
+ <div class="method-source-code" id="M000014-source">
376
428
  <pre>
377
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 90</span>
378
- 90: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">protect_all!</span>
379
- 91: <span class="ruby-ivar">@_protected</span>.<span class="ruby-identifier">clear</span>
380
- 92: <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>
381
- 93: <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>)
382
- 94: <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>
383
- 95: <span class="ruby-ivar">@_protected</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">k</span>
384
- 96: <span class="ruby-keyword kw">end</span>
385
- 97: <span class="ruby-keyword kw">end</span>
429
+ <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 118</span>
430
+ 118: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">protect_all!</span>
431
+ 119: <span class="ruby-ivar">@_protected</span>.<span class="ruby-identifier">clear</span>
432
+ 120: <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>
433
+ 121: <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>)
434
+ 122: <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>
435
+ 123: <span class="ruby-ivar">@_protected</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">k</span>
436
+ 124: <span class="ruby-keyword kw">end</span>
437
+ 125: <span class="ruby-keyword kw">end</span>
386
438
  </pre>
387
439
  </div>
388
440
  </div>
389
441
  </div>
390
442
 
391
- <div id="method-M000010" class="method-detail">
392
- <a name="M000010"></a>
443
+ <div id="method-M000011" class="method-detail">
444
+ <a name="M000011"></a>
393
445
 
394
446
  <div class="method-heading">
395
- <a href="#M000010" class="method-signature">
447
+ <a href="#M000011" class="method-signature">
396
448
  <span class="method-name">remove</span><span class="method-args">(name)</span>
397
449
  </a>
398
450
  </div>
@@ -400,26 +452,26 @@ Prevents all parameters from being reassigned.
400
452
  <div class="method-description">
401
453
  <p>
402
454
  Removes a parameter. In the case of a nested parameter it will <a
403
- href="Store.html#M000010">remove</a> all below it.
455
+ href="Store.html#M000011">remove</a> all below it.
404
456
  </p>
405
457
  <p><a class="source-toggle" href="#"
406
- onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
407
- <div class="method-source-code" id="M000010-source">
458
+ onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
459
+ <div class="method-source-code" id="M000011-source">
408
460
  <pre>
409
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 53</span>
410
- 53: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">remove</span>(<span class="ruby-identifier">name</span>)
411
- 54: <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>)
412
- 55: <span class="ruby-keyword kw">end</span>
461
+ <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 81</span>
462
+ 81: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">remove</span>(<span class="ruby-identifier">name</span>)
463
+ 82: <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>)
464
+ 83: <span class="ruby-keyword kw">end</span>
413
465
  </pre>
414
466
  </div>
415
467
  </div>
416
468
  </div>
417
469
 
418
- <div id="method-M000009" class="method-detail">
419
- <a name="M000009"></a>
470
+ <div id="method-M000010" class="method-detail">
471
+ <a name="M000010"></a>
420
472
 
421
473
  <div class="method-heading">
422
- <a href="#M000009" class="method-signature">
474
+ <a href="#M000010" class="method-signature">
423
475
  <span class="method-name">retrieve</span><span class="method-args">(name, default_value = nil)</span>
424
476
  </a>
425
477
  </div>
@@ -430,23 +482,23 @@ Retrieves a certain parameter and if that parameter doesn&#8216;t exist it
430
482
  will return the default_value specified.
431
483
  </p>
432
484
  <p><a class="source-toggle" href="#"
433
- onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
434
- <div class="method-source-code" id="M000009-source">
485
+ onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
486
+ <div class="method-source-code" id="M000010-source">
435
487
  <pre>
436
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 47</span>
437
- 47: <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>)
438
- 48: <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>
439
- 49: <span class="ruby-keyword kw">end</span>
488
+ <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 75</span>
489
+ 75: <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>)
490
+ 76: <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>
491
+ 77: <span class="ruby-keyword kw">end</span>
440
492
  </pre>
441
493
  </div>
442
494
  </div>
443
495
  </div>
444
496
 
445
- <div id="method-M000011" class="method-detail">
446
- <a name="M000011"></a>
497
+ <div id="method-M000012" class="method-detail">
498
+ <a name="M000012"></a>
447
499
 
448
500
  <div class="method-heading">
449
- <a href="#M000011" class="method-signature">
501
+ <a href="#M000012" class="method-signature">
450
502
  <span class="method-name">set_default</span><span class="method-args">(name, default_value)</span>
451
503
  </a>
452
504
  </div>
@@ -457,15 +509,15 @@ Sets a &#8216;default&#8217; value. If there is already a value specified
457
509
  it won&#8216;t set the value.
458
510
  </p>
459
511
  <p><a class="source-toggle" href="#"
460
- onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
461
- <div class="method-source-code" id="M000011-source">
512
+ onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
513
+ <div class="method-source-code" id="M000012-source">
462
514
  <pre>
463
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 59</span>
464
- 59: <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>)
465
- 60: <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>]
466
- 61: <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>)
467
- 62: <span class="ruby-keyword kw">end</span>
468
- 63: <span class="ruby-keyword kw">end</span>
515
+ <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 87</span>
516
+ 87: <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>)
517
+ 88: <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>]
518
+ 89: <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>)
519
+ 90: <span class="ruby-keyword kw">end</span>
520
+ 91: <span class="ruby-keyword kw">end</span>
469
521
  </pre>
470
522
  </div>
471
523
  </div>
@@ -488,20 +540,20 @@ Returns a Hash representing the configurations
488
540
  onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
489
541
  <div class="method-source-code" id="M000005-source">
490
542
  <pre>
491
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 13</span>
492
- 13: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_hash</span>
493
- 14: <span class="ruby-ivar">@_store</span>
494
- 15: <span class="ruby-keyword kw">end</span>
543
+ <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 14</span>
544
+ 14: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_hash</span>
545
+ 15: <span class="ruby-ivar">@_store</span>
546
+ 16: <span class="ruby-keyword kw">end</span>
495
547
  </pre>
496
548
  </div>
497
549
  </div>
498
550
  </div>
499
551
 
500
- <div id="method-M000014" class="method-detail">
501
- <a name="M000014"></a>
552
+ <div id="method-M000015" class="method-detail">
553
+ <a name="M000015"></a>
502
554
 
503
555
  <div class="method-heading">
504
- <a href="#M000014" class="method-signature">
556
+ <a href="#M000015" class="method-signature">
505
557
  <span class="method-name">unprotect</span><span class="method-args">(name)</span>
506
558
  </a>
507
559
  </div>
@@ -511,40 +563,40 @@ Returns a Hash representing the configurations
511
563
  Removes the protection of a parameter.
512
564
  </p>
513
565
  <p><a class="source-toggle" href="#"
514
- onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
515
- <div class="method-source-code" id="M000014-source">
566
+ onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
567
+ <div class="method-source-code" id="M000015-source">
516
568
  <pre>
517
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 100</span>
518
- 100: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unprotect</span>(<span class="ruby-identifier">name</span>)
519
- 101: <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> }
520
- 102: <span class="ruby-keyword kw">end</span>
569
+ <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 128</span>
570
+ 128: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unprotect</span>(<span class="ruby-identifier">name</span>)
571
+ 129: <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> }
572
+ 130: <span class="ruby-keyword kw">end</span>
521
573
  </pre>
522
574
  </div>
523
575
  </div>
524
576
  </div>
525
577
 
526
- <div id="method-M000015" class="method-detail">
527
- <a name="M000015"></a>
578
+ <div id="method-M000016" class="method-detail">
579
+ <a name="M000016"></a>
528
580
 
529
581
  <div class="method-heading">
530
- <a href="#M000015" class="method-signature">
582
+ <a href="#M000016" class="method-signature">
531
583
  <span class="method-name">unprotect_all!</span><span class="method-args">()</span>
532
584
  </a>
533
585
  </div>
534
586
 
535
587
  <div class="method-description">
536
588
  <p><a class="source-toggle" href="#"
537
- onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
538
- <div class="method-source-code" id="M000015-source">
589
+ onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
590
+ <div class="method-source-code" id="M000016-source">
539
591
  <pre>
540
- <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 104</span>
541
- 104: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unprotect_all!</span>
542
- 105: <span class="ruby-ivar">@_protected</span>.<span class="ruby-identifier">clear</span>
543
- 106: <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>
544
- 107: <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>)
545
- 108: <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>
546
- 109: <span class="ruby-keyword kw">end</span>
547
- 110: <span class="ruby-keyword kw">end</span>
592
+ <span class="ruby-comment cmt"># File lib/configatron/store.rb, line 132</span>
593
+ 132: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unprotect_all!</span>
594
+ 133: <span class="ruby-ivar">@_protected</span>.<span class="ruby-identifier">clear</span>
595
+ 134: <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>
596
+ 135: <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>)
597
+ 136: <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>
598
+ 137: <span class="ruby-keyword kw">end</span>
599
+ 138: <span class="ruby-keyword kw">end</span>
548
600
  </pre>
549
601
  </div>
550
602
  </div>
@@ -80,7 +80,7 @@
80
80
  <h3 class="section-bar">Methods</h3>
81
81
 
82
82
  <div class="name-list">
83
- <a href="#M000018">configatron</a>&nbsp;&nbsp;
83
+ <a href="#M000019">configatron</a>&nbsp;&nbsp;
84
84
  </div>
85
85
  </div>
86
86
 
@@ -102,11 +102,11 @@
102
102
  <div id="methods">
103
103
  <h3 class="section-bar">Public Instance methods</h3>
104
104
 
105
- <div id="method-M000018" class="method-detail">
106
- <a name="M000018"></a>
105
+ <div id="method-M000019" class="method-detail">
106
+ <a name="M000019"></a>
107
107
 
108
108
  <div class="method-heading">
109
- <a href="#M000018" class="method-signature">
109
+ <a href="#M000019" class="method-signature">
110
110
  <span class="method-name">configatron</span><span class="method-args">()</span>
111
111
  </a>
112
112
  </div>
@@ -117,8 +117,8 @@ Provides access to the <a href="Configatron.html">Configatron</a> storage
117
117
  system.
118
118
  </p>
119
119
  <p><a class="source-toggle" href="#"
120
- onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
121
- <div class="method-source-code" id="M000018-source">
120
+ onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
121
+ <div class="method-source-code" id="M000019-source">
122
122
  <pre>
123
123
  <span class="ruby-comment cmt"># File lib/configatron/kernel.rb, line 4</span>
124
124
  4: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">configatron</span>
data/doc/created.rid CHANGED
@@ -1 +1 @@
1
- Sun, 28 Sep 2008 21:23:52 -0400
1
+ Fri, 03 Oct 2008 13:27:14 -0400
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Wed Sep 17 14:47:44 -0400 2008</td>
59
+ <td>Fri Sep 26 15:37:14 -0400 2008</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Wed Sep 17 15:15:24 -0400 2008</td>
59
+ <td>Fri Oct 03 13:25:50 -0400 2008</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Wed Sep 17 15:16:26 -0400 2008</td>
59
+ <td>Fri Sep 26 15:37:14 -0400 2008</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Wed Sep 17 14:47:44 -0400 2008</td>
59
+ <td>Fri Sep 26 15:37:14 -0400 2008</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Sun Sep 28 21:23:06 -0400 2008</td>
59
+ <td>Fri Oct 03 13:24:52 -0400 2008</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Sun Sep 28 21:23:20 -0400 2008</td>
59
+ <td>Fri Sep 26 15:37:14 -0400 2008</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -20,24 +20,25 @@
20
20
  <div id="index">
21
21
  <h1 class="section-bar">Methods</h1>
22
22
  <div id="index-entries">
23
- <a href="classes/Kernel.html#M000018">configatron (Kernel)</a><br />
24
- <a href="classes/Configatron/Store.html#M000006">configure_from_hash (Configatron::Store)</a><br />
25
- <a href="classes/Configatron/Store.html#M000007">configure_from_yaml (Configatron::Store)</a><br />
26
- <a href="classes/Configatron/Store.html#M000016">deep_clone (Configatron::Store)</a><br />
27
- <a href="classes/Configatron/ProtectedParameter.html#M000017">intialize (Configatron::ProtectedParameter)</a><br />
23
+ <a href="classes/Kernel.html#M000019">configatron (Kernel)</a><br />
24
+ <a href="classes/Configatron/Store.html#M000007">configure_from_hash (Configatron::Store)</a><br />
25
+ <a href="classes/Configatron/Store.html#M000008">configure_from_yaml (Configatron::Store)</a><br />
26
+ <a href="classes/Configatron/Store.html#M000017">deep_clone (Configatron::Store)</a><br />
27
+ <a href="classes/Configatron/Store.html#M000006">inspect (Configatron::Store)</a><br />
28
+ <a href="classes/Configatron/ProtectedParameter.html#M000018">intialize (Configatron::ProtectedParameter)</a><br />
28
29
  <a href="classes/Configatron.html#M000001">method_missing (Configatron)</a><br />
29
30
  <a href="classes/Configatron/Store.html#M000004">new (Configatron::Store)</a><br />
30
- <a href="classes/Configatron/Store.html#M000008">nil? (Configatron::Store)</a><br />
31
- <a href="classes/Configatron/Store.html#M000012">protect (Configatron::Store)</a><br />
32
- <a href="classes/Configatron/Store.html#M000013">protect_all! (Configatron::Store)</a><br />
33
- <a href="classes/Configatron/Store.html#M000010">remove (Configatron::Store)</a><br />
31
+ <a href="classes/Configatron/Store.html#M000009">nil? (Configatron::Store)</a><br />
32
+ <a href="classes/Configatron/Store.html#M000013">protect (Configatron::Store)</a><br />
33
+ <a href="classes/Configatron/Store.html#M000014">protect_all! (Configatron::Store)</a><br />
34
+ <a href="classes/Configatron/Store.html#M000011">remove (Configatron::Store)</a><br />
34
35
  <a href="classes/Configatron.html#M000002">reset! (Configatron)</a><br />
35
- <a href="classes/Configatron/Store.html#M000009">retrieve (Configatron::Store)</a><br />
36
- <a href="classes/Configatron/Store.html#M000011">set_default (Configatron::Store)</a><br />
36
+ <a href="classes/Configatron/Store.html#M000010">retrieve (Configatron::Store)</a><br />
37
+ <a href="classes/Configatron/Store.html#M000012">set_default (Configatron::Store)</a><br />
37
38
  <a href="classes/Configatron.html#M000003">temp (Configatron)</a><br />
38
39
  <a href="classes/Configatron/Store.html#M000005">to_hash (Configatron::Store)</a><br />
39
- <a href="classes/Configatron/Store.html#M000014">unprotect (Configatron::Store)</a><br />
40
- <a href="classes/Configatron/Store.html#M000015">unprotect_all! (Configatron::Store)</a><br />
40
+ <a href="classes/Configatron/Store.html#M000015">unprotect (Configatron::Store)</a><br />
41
+ <a href="classes/Configatron/Store.html#M000016">unprotect_all! (Configatron::Store)</a><br />
41
42
  </div>
42
43
  </div>
43
44
  </body>
@@ -2,20 +2,48 @@ class Configatron
2
2
  class Store
3
3
 
4
4
  # Takes an optional Hash of parameters
5
- def initialize(options = {})
5
+ def initialize(options = {}, name = nil, parent = nil)
6
+ @_name = name
7
+ @_parent = parent
6
8
  @_store = {}
7
9
  configure_from_hash(options)
8
10
  @_protected = []
9
- # self.methods.each { |m| puts "m: #{m}"; configatron.protect(m.to_sym) }
10
11
  end
11
12
 
12
13
  # Returns a Hash representing the configurations
13
14
  def to_hash
14
15
  @_store
15
16
  end
16
-
17
- def inspect # :nodoc:
18
- to_hash.inspect
17
+
18
+ def inspect
19
+ path = [@_name]
20
+ parent = @_parent
21
+ until parent.nil?
22
+ path << parent.instance_variable_get('@_name')
23
+ parent = parent.instance_variable_get('@_parent')
24
+ end
25
+ path << 'configatron'
26
+ path.compact!
27
+ path.reverse!
28
+ f_out = []
29
+ @_store.each do |k, v|
30
+ if v.is_a?(Configatron::Store)
31
+ v.inspect.each do |line|
32
+ if line.match(/\n/)
33
+ line.each do |l|
34
+ l.strip!
35
+ f_out << l
36
+ end
37
+ else
38
+ line.strip!
39
+ f_out << line
40
+ end
41
+ end
42
+ else
43
+ f_out << "#{path.join('.')}.#{k} #=> #{v.inspect}"
44
+ end
45
+ end
46
+ f_out.compact.sort.join("\n")
19
47
  end
20
48
 
21
49
  # Allows for the configuration of the system via a Hash
@@ -70,7 +98,7 @@ class Configatron
70
98
  elsif @_store.has_key?(sym)
71
99
  return @_store[sym]
72
100
  else
73
- store = Configatron::Store.new
101
+ store = Configatron::Store.new({}, sym, self)
74
102
  @_store[sym] = store
75
103
  return store
76
104
  end
@@ -215,7 +215,19 @@ describe "configatron" do
215
215
  configatron.one = 1
216
216
  configatron.letters.a = 'A'
217
217
  configatron.letters.b = 'B'
218
- configatron.inspect.should == {:one => 1, :letters => {:a => 'A', :b => 'B'}}.inspect
218
+ configatron.numbers.small.one = 1
219
+ configatron.numbers.small.others = [2,3]
220
+ configatron.numbers.big.one.hundred = '100'
221
+
222
+ configatron.inspect.should == %{
223
+ configatron.letters.a #=> "A"
224
+ configatron.letters.b #=> "B"
225
+ configatron.numbers.big.one.hundred #=> "100"
226
+ configatron.numbers.small.one #=> 1
227
+ configatron.numbers.small.others #=> [2, 3]
228
+ configatron.one #=> 1
229
+ }.strip
230
+
219
231
  end
220
232
 
221
233
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: configatron
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2
4
+ version: 2.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - markbates
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-09-28 00:00:00 -04:00
12
+ date: 2008-10-03 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies: []
15
15