configatron 2.3.1 → 2.3.2

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