configatron 2.1.2 → 2.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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