Instances of this class contain configuration values for for an Arrow web application.
(Not documented)
(Not documented)
Get the loader by the given name, creating a new one if one is not already instantiated.
# File /Users/ged/source/ruby/Arrow/lib/arrow/config.rb, line 179
179: def self::get_loader( name=nil )
180: name ||= self.default_loader
181: self.loaders[name] ||= Arrow::Config::Loader.create( name )
182: end
Read and return an Arrow::Config object from the given file or configuration source using the specified loader.
# File /Users/ged/source/ruby/Arrow/lib/arrow/config.rb, line 187
187: def self::load( source, loader_obj=nil )
188: loader_obj = self.get_loader( loader_obj ) unless
189: loader_obj.is_a?( Arrow::Config::Loader )
190: my_source = source.dup
191: my_source.untaint
192: confighash = loader_obj.load( my_source )
193:
194: obj = new( confighash )
195: obj.loader = loader_obj
196: obj.name = my_source
197:
198: return obj
199: end
Create a new Arrow::Config object. Values passed in via the confighash will be used instead of the defaults.
# File /Users/ged/source/ruby/Arrow/lib/arrow/config.rb, line 208
208: def initialize( confighash={} )
209: ihash = internify_keys( untaint_values(confighash) )
210: mergedhash = DEFAULTS.merge( ihash, &Arrow::HashMergeFunction )
211:
212: @struct = ConfigStruct.new( mergedhash )
213: @create_time = Time.now
214: @name = nil
215: @loader = nil
216:
217: super()
218: end
Returns true if the configuration has changed since it was last loaded, either by setting one of its members or changing the file from which it was loaded.
# File /Users/ged/source/ruby/Arrow/lib/arrow/config.rb, line 280
280: def changed?
281: return self.changed_reason ? true : false
282: end
If the configuration has changed, return the reason. If it hasn‘t, returns nil.
# File /Users/ged/source/ruby/Arrow/lib/arrow/config.rb, line 287
287: def changed_reason
288: return "Struct was modified" if @struct.modified?
289:
290: if self.name && self.loader.is_newer?( self.name, self.create_time )
291: return "Config source (%s) has been updated since %s" %
292: [ self.name, self.create_time ]
293: end
294:
295: return nil
296: end
Fetch the loader from this config object, or create an instance of the default one if none is yet associated with it.
# File /Users/ged/source/ruby/Arrow/lib/arrow/config.rb, line 254
254: def loader
255: @loader ||= self.class.get_loader
256: end
Change the configuration object‘s loader. The new_loader argument can be either an Arrow::Config::Loader object or the name of one suitable for passing to Arrow::Config::Loader.create.
# File /Users/ged/source/ruby/Arrow/lib/arrow/config.rb, line 243
243: def loader=( new_loader )
244: if new_loader.is_a?( Arrow::Config::Loader )
245: @loader = new_loader
246: else
247: @loader = self.class.get_loader( new_loader )
248: end
249: end
Reload the configuration from the original source if it has changed. Returns true if it was reloaded and false otherwise.
# File /Users/ged/source/ruby/Arrow/lib/arrow/config.rb, line 301
301: def reload
302: return false unless @loader && @name
303:
304: # Even if reloading fails, reset the creation time so we don't keep
305: # trying to reload a broken config
306: self.create_time = Time.now
307:
308: confighash = @loader.load( @name )
309: ihash = internify_keys( untaint_values(confighash) )
310: mergedhash = DEFAULTS.merge( ihash, &Arrow::HashMergeFunction )
311:
312: @struct = ConfigStruct.new( mergedhash )
313:
314: rescue => err
315: self.log.error "Error while trying to reload the config: %s" % err.message
316: err.backtrace.each {|frame| self.log.debug " " + frame }
317:
318: return false
319: else
320: return true
321: end
Returns true for methods which can be autoloaded
# File /Users/ged/source/ruby/Arrow/lib/arrow/config.rb, line 271
271: def respond_to?( sym )
272: return true if @struct.member?( sym.to_s.sub(/(=|\?)$/, '').intern )
273: super
274: end
Write the configuration object using the specified name and any additional args.
# File /Users/ged/source/ruby/Arrow/lib/arrow/config.rb, line 261
261: def write( name=@name, *args )
262: raise ArgumentError,
263: "No name associated with this config." unless name
264: lobj = self.loader
265: strHash = stringify_keys( @struct.to_h )
266: self.loader.save( strHash, name, *args )
267: end
Hook up delegators to struct-members as they are called
# File /Users/ged/source/ruby/Arrow/lib/arrow/config.rb, line 329
329: def method_missing( sym, *args )
330: key = sym.to_s.sub( /(=|\?)$/, '' ).intern
331: return nil unless @struct.member?( key )
332:
333: self.log.debug( "Autoloading #{key} accessors." )
334:
335: self.class.class_eval %{
336: def #{key}; @struct.#{key}; end
337: def #{key}=(*args); @struct.#{key} = *args; end
338: def #{key}?; @struct.#{key}?; end
339: }
340:
341: @struct.__send__( sym, *args )
342: end
--- SEC00032
--- ""
--- | Class <a href="Config/ConfigStruct.html" class="link">Arrow::Config::ConfigStruct</a><br /> Class <a href="Config/Loader.html" class="link">Arrow::Config::Loader</a><br />
---
- name: create_time
rw: RW
a_desc: |+
The time the configuration was loaded
- name: default_loader
rw: RW
a_desc: ""
- name: loaders
rw: RW
a_desc: ""
- name: name
rw: RW
a_desc: |+
The name of the associated record stored on permanent storage for this
configuration.
---
- methods:
- visibility: public
aref: M000276
name: get_loader
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/config.rb, line 179</span>\n\
179: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-keyword kw\">self</span><span class=\"ruby-operator\">::</span><span class=\"ruby-identifier\">get_loader</span>( <span class=\"ruby-identifier\">name</span>=<span class=\"ruby-keyword kw\">nil</span> )\n\
180: <span class=\"ruby-identifier\">name</span> <span class=\"ruby-operator\">||=</span> <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">default_loader</span>\n\
181: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">loaders</span>[<span class=\"ruby-identifier\">name</span>] <span class=\"ruby-operator\">||=</span> <span class=\"ruby-constant\">Arrow</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Config</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Loader</span>.<span class=\"ruby-identifier\">create</span>( <span class=\"ruby-identifier\">name</span> )\n\
182: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Get the <a href="Config.html#M000280">loader</a> by the given name,
creating a <a href="Config.html#M000278">new</a> one if one is not already
instantiated.
</p>
params: ( name=nil )
- visibility: public
aref: M000277
name: load
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/config.rb, line 187</span>\n\
187: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-keyword kw\">self</span><span class=\"ruby-operator\">::</span><span class=\"ruby-identifier\">load</span>( <span class=\"ruby-identifier\">source</span>, <span class=\"ruby-identifier\">loader_obj</span>=<span class=\"ruby-keyword kw\">nil</span> )\n\
188: <span class=\"ruby-identifier\">loader_obj</span> = <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">get_loader</span>( <span class=\"ruby-identifier\">loader_obj</span> ) <span class=\"ruby-keyword kw\">unless</span>\n\
189: <span class=\"ruby-identifier\">loader_obj</span>.<span class=\"ruby-identifier\">is_a?</span>( <span class=\"ruby-constant\">Arrow</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Config</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Loader</span> )\n\
190: <span class=\"ruby-identifier\">my_source</span> = <span class=\"ruby-identifier\">source</span>.<span class=\"ruby-identifier\">dup</span>\n\
191: <span class=\"ruby-identifier\">my_source</span>.<span class=\"ruby-identifier\">untaint</span>\n\
192: <span class=\"ruby-identifier\">confighash</span> = <span class=\"ruby-identifier\">loader_obj</span>.<span class=\"ruby-identifier\">load</span>( <span class=\"ruby-identifier\">my_source</span> )\n\
193: \n\
194: <span class=\"ruby-identifier\">obj</span> = <span class=\"ruby-identifier\">new</span>( <span class=\"ruby-identifier\">confighash</span> )\n\
195: <span class=\"ruby-identifier\">obj</span>.<span class=\"ruby-identifier\">loader</span> = <span class=\"ruby-identifier\">loader_obj</span>\n\
196: <span class=\"ruby-identifier\">obj</span>.<span class=\"ruby-identifier\">name</span> = <span class=\"ruby-identifier\">my_source</span>\n\
197: \n\
198: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-identifier\">obj</span>\n\
199: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Read and return an <a href="Config.html">Arrow::Config</a> object from the
given file or configuration source using the specified <tt><a
href="Config.html#M000280">loader</a></tt>.
</p>
params: ( source, loader_obj=nil )
- visibility: public
aref: M000278
name: new
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/config.rb, line 208</span>\n\
208: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">initialize</span>( <span class=\"ruby-identifier\">confighash</span>={} )\n\
209: <span class=\"ruby-identifier\">ihash</span> = <span class=\"ruby-identifier\">internify_keys</span>( <span class=\"ruby-identifier\">untaint_values</span>(<span class=\"ruby-identifier\">confighash</span>) )\n\
210: <span class=\"ruby-identifier\">mergedhash</span> = <span class=\"ruby-constant\">DEFAULTS</span>.<span class=\"ruby-identifier\">merge</span>( <span class=\"ruby-identifier\">ihash</span>, <span class=\"ruby-operator\">&</span><span class=\"ruby-constant\">Arrow</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">HashMergeFunction</span> )\n\
211: \n\
212: <span class=\"ruby-ivar\">@struct</span> = <span class=\"ruby-constant\">ConfigStruct</span>.<span class=\"ruby-identifier\">new</span>( <span class=\"ruby-identifier\">mergedhash</span> )\n\
213: <span class=\"ruby-ivar\">@create_time</span> = <span class=\"ruby-constant\">Time</span>.<span class=\"ruby-identifier\">now</span>\n\
214: <span class=\"ruby-ivar\">@name</span> = <span class=\"ruby-keyword kw\">nil</span>\n\
215: <span class=\"ruby-ivar\">@loader</span> = <span class=\"ruby-keyword kw\">nil</span>\n\
216: \n\
217: <span class=\"ruby-keyword kw\">super</span>()\n\
218: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Create a <a href="Config.html#M000278">new</a> <a
href="Config.html">Arrow::Config</a> object. Values passed in via the
<tt>confighash</tt> will be used instead of the defaults.
</p>
params: ( confighash={} )
category: Class
type: Public
- methods:
- visibility: public
aref: M000283
name: changed?
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/config.rb, line 280</span>\n\
280: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">changed?</span>\n\
281: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">changed_reason</span> <span class=\"ruby-value\">? </span><span class=\"ruby-keyword kw\">true</span> <span class=\"ruby-operator\">:</span> <span class=\"ruby-keyword kw\">false</span>\n\
282: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Returns <tt>true</tt> if the configuration has changed since it was last
loaded, either by setting one of its members or changing the file from
which it was loaded.
</p>
params: ()
- visibility: public
aref: M000284
name: changed_reason
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/config.rb, line 287</span>\n\
287: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">changed_reason</span>\n\
288: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-value str\">"Struct was modified"</span> <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-ivar\">@struct</span>.<span class=\"ruby-identifier\">modified?</span>\n\
289: \n\
290: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">name</span> <span class=\"ruby-operator\">&&</span> <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">loader</span>.<span class=\"ruby-identifier\">is_newer?</span>( <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">name</span>, <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">create_time</span> )\n\
291: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-value str\">"Config source (%s) has been updated since %s"</span> <span class=\"ruby-operator\">%</span>\n\
292: [ <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">name</span>, <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">create_time</span> ]\n\
293: <span class=\"ruby-keyword kw\">end</span>\n\
294: \n\
295: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-keyword kw\">nil</span>\n\
296: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
If the configuration has changed, return the reason. If it hasn‘t,
returns nil.
</p>
params: ()
- visibility: public
aref: M000280
name: loader
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/config.rb, line 254</span>\n\
254: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">loader</span>\n\
255: <span class=\"ruby-ivar\">@loader</span> <span class=\"ruby-operator\">||=</span> <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span>.<span class=\"ruby-identifier\">get_loader</span>\n\
256: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Fetch the <a href="Config.html#M000280">loader</a> from this config object,
or create an instance of the default one if none is yet associated with it.
</p>
params: ()
- visibility: public
aref: M000279
name: loader=
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/config.rb, line 243</span>\n\
243: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">loader=</span>( <span class=\"ruby-identifier\">new_loader</span> )\n\
244: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">new_loader</span>.<span class=\"ruby-identifier\">is_a?</span>( <span class=\"ruby-constant\">Arrow</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Config</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Loader</span> )\n\
245: <span class=\"ruby-ivar\">@loader</span> = <span class=\"ruby-identifier\">new_loader</span>\n\
246: <span class=\"ruby-keyword kw\">else</span>\n\
247: <span class=\"ruby-ivar\">@loader</span> = <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span>.<span class=\"ruby-identifier\">get_loader</span>( <span class=\"ruby-identifier\">new_loader</span> )\n\
248: <span class=\"ruby-keyword kw\">end</span>\n\
249: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Change the configuration object‘s <a
href="Config.html#M000280">loader</a>. The <tt>new_loader</tt> argument can
be either an Arrow::Config::Loader object or the name of one suitable for
passing to Arrow::Config::Loader.create.
</p>
params: ( new_loader )
- visibility: public
aref: M000285
name: reload
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/config.rb, line 301</span>\n\
301: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">reload</span>\n\
302: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-keyword kw\">false</span> <span class=\"ruby-keyword kw\">unless</span> <span class=\"ruby-ivar\">@loader</span> <span class=\"ruby-operator\">&&</span> <span class=\"ruby-ivar\">@name</span>\n\
303: \n\
304: <span class=\"ruby-comment cmt\"># Even if reloading fails, reset the creation time so we don't keep</span>\n\
305: <span class=\"ruby-comment cmt\"># trying to reload a broken config</span>\n\
306: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">create_time</span> = <span class=\"ruby-constant\">Time</span>.<span class=\"ruby-identifier\">now</span>\n\
307: \n\
308: <span class=\"ruby-identifier\">confighash</span> = <span class=\"ruby-ivar\">@loader</span>.<span class=\"ruby-identifier\">load</span>( <span class=\"ruby-ivar\">@name</span> )\n\
309: <span class=\"ruby-identifier\">ihash</span> = <span class=\"ruby-identifier\">internify_keys</span>( <span class=\"ruby-identifier\">untaint_values</span>(<span class=\"ruby-identifier\">confighash</span>) )\n\
310: <span class=\"ruby-identifier\">mergedhash</span> = <span class=\"ruby-constant\">DEFAULTS</span>.<span class=\"ruby-identifier\">merge</span>( <span class=\"ruby-identifier\">ihash</span>, <span class=\"ruby-operator\">&</span><span class=\"ruby-constant\">Arrow</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">HashMergeFunction</span> )\n\
311: \n\
312: <span class=\"ruby-ivar\">@struct</span> = <span class=\"ruby-constant\">ConfigStruct</span>.<span class=\"ruby-identifier\">new</span>( <span class=\"ruby-identifier\">mergedhash</span> )\n\
313: \n\
314: <span class=\"ruby-keyword kw\">rescue</span> =<span class=\"ruby-operator\">></span> <span class=\"ruby-identifier\">err</span>\n\
315: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">log</span>.<span class=\"ruby-identifier\">error</span> <span class=\"ruby-value str\">"Error while trying to reload the config: %s"</span> <span class=\"ruby-operator\">%</span> <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">message</span>\n\
316: <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>.<span class=\"ruby-identifier\">each</span> {<span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">frame</span><span class=\"ruby-operator\">|</span> <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">log</span>.<span class=\"ruby-identifier\">debug</span> <span class=\"ruby-value str\">" "</span> <span class=\"ruby-operator\">+</span> <span class=\"ruby-identifier\">frame</span> }\n\
317: \n\
318: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-keyword kw\">false</span>\n\
319: <span class=\"ruby-keyword kw\">else</span>\n\
320: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-keyword kw\">true</span>\n\
321: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Reload the configuration from the original source if it has changed.
Returns <tt>true</tt> if it was reloaded and <tt>false</tt> otherwise.
</p>
params: ()
- visibility: public
aref: M000282
name: respond_to?
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/config.rb, line 271</span>\n\
271: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">respond_to?</span>( <span class=\"ruby-identifier\">sym</span> )\n\
272: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-keyword kw\">true</span> <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-ivar\">@struct</span>.<span class=\"ruby-identifier\">member?</span>( <span class=\"ruby-identifier\">sym</span>.<span class=\"ruby-identifier\">to_s</span>.<span class=\"ruby-identifier\">sub</span>(<span class=\"ruby-regexp re\">/(=|\\?)$/</span>, <span class=\"ruby-value str\">''</span>).<span class=\"ruby-identifier\">intern</span> )\n\
273: <span class=\"ruby-keyword kw\">super</span>\n\
274: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Returns <tt>true</tt> for methods which can be autoloaded
</p>
params: ( sym )
- visibility: public
aref: M000281
name: write
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/config.rb, line 261</span>\n\
261: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">write</span>( <span class=\"ruby-identifier\">name</span>=<span class=\"ruby-ivar\">@name</span>, <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">args</span> )\n\
262: <span class=\"ruby-identifier\">raise</span> <span class=\"ruby-constant\">ArgumentError</span>,\n\
263: <span class=\"ruby-value str\">"No name associated with this config."</span> <span class=\"ruby-keyword kw\">unless</span> <span class=\"ruby-identifier\">name</span>\n\
264: <span class=\"ruby-identifier\">lobj</span> = <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">loader</span>\n\
265: <span class=\"ruby-identifier\">strHash</span> = <span class=\"ruby-identifier\">stringify_keys</span>( <span class=\"ruby-ivar\">@struct</span>.<span class=\"ruby-identifier\">to_h</span> )\n\
266: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">loader</span>.<span class=\"ruby-identifier\">save</span>( <span class=\"ruby-identifier\">strHash</span>, <span class=\"ruby-identifier\">name</span>, <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">args</span> )\n\
267: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Write the configuration object using the specified name and any additional
<tt>args</tt>.
</p>
params: ( name=@name, *args )
category: Instance
type: Public
- methods:
- visibility: protected
aref: M000286
name: method_missing
sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/config.rb, line 329</span>\n\
329: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">method_missing</span>( <span class=\"ruby-identifier\">sym</span>, <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">args</span> )\n\
330: <span class=\"ruby-identifier\">key</span> = <span class=\"ruby-identifier\">sym</span>.<span class=\"ruby-identifier\">to_s</span>.<span class=\"ruby-identifier\">sub</span>( <span class=\"ruby-regexp re\">/(=|\\?)$/</span>, <span class=\"ruby-value str\">''</span> ).<span class=\"ruby-identifier\">intern</span>\n\
331: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-keyword kw\">nil</span> <span class=\"ruby-keyword kw\">unless</span> <span class=\"ruby-ivar\">@struct</span>.<span class=\"ruby-identifier\">member?</span>( <span class=\"ruby-identifier\">key</span> )\n\
332: \n\
333: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">log</span>.<span class=\"ruby-identifier\">debug</span>( <span class=\"ruby-node\">"Autoloading #{key} accessors."</span> )\n\
334: \n\
335: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span>.<span class=\"ruby-identifier\">class_eval</span> <span class=\"ruby-node\">%{\n\
336: def #{key}; @struct.#{key}; end\n\
337: def #{key}=(*args); @struct.#{key} = *args; end\n\
338: def #{key}?; @struct.#{key}?; end\n\
339: }</span>\n\
340: \n\
341: <span class=\"ruby-ivar\">@struct</span>.<span class=\"ruby-identifier\">__send__</span>( <span class=\"ruby-identifier\">sym</span>, <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">args</span> )\n\
342: <span class=\"ruby-keyword kw\">end</span>"
m_desc: |-
<p>
Hook up delegators to struct-members as they are called
</p>
params: ( sym, *args )
category: Instance
type: Protected
---
---
- name: SVNRev
desc: |+
SVN Revision
value: "%q$Rev: 439 $"
- name: SVNId
desc: |+
SVN Id
value: "%q$Id: config.rb 439 2008-04-10 23:27:34Z deveiant $"
- name: DEFAULTS
desc: |+
Define the layout and defaults for the underlying structs
value: "{ :logging => { :global => 'notice' }, :applets => { :path => Arrow::Path.new( "applets:/www/applets" ), :pattern => '**/*.rb', :pollInterval => 5, :layout => {}, :config => {}, :missingApplet => '/missing', :errorApplet => '/error', }, :templates => { :loader => 'Arrow::Template', :path => Arrow::Path.new( "templates:/www/templates" ), :cache => true, :cacheConfig => { :maxNum => 20, :maxSize => (1<<17) * 20, :maxObjSize => (1<<17), :expiration => 36"
Generated with the Darkfish Rdoc Generator.