Module: Conf::ConfigValue
- Included in:
- Configuration
- Defined in:
- lib/conf.rb
Class Method Summary collapse
Instance Method Summary collapse
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(meth, *args, &blk) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/conf.rb', line 30 def method_missing(meth, *args, &blk) m = meth.to_s if m =~ /^(\w+)=/ || args.size == 1 @__root__.check_lock key = [@__key__, $1 || m].compact.join(".") @__root__[key] = ConfigValue.create(@__root__, key, args.first) else key = [@__key__, m].compact.join(".") obj = @__root__.data[key] if obj.nil? if @__root__.locked? obj = @__root__.fetch(key) { raise Conf::InvalidKeyError, key } else obj = @__root__.data[key] = ConfigValue.create(@__root__, key) end end if blk @__root__.check_lock obj.instance_eval(&blk) end obj end end |