Class: StructuredSetup
- Inherits:
-
SimpleDelegator
- Object
- SimpleDelegator
- StructuredSetup
- Defined in:
- lib/pslm/structuredsetup.rb
Overview
Nested Hashes; automatic creation of missing nodes
Instance Method Summary collapse
- #dup ⇒ Object
-
#get(*keys) ⇒ Object
getter with automatic creation of missing nodes.
-
#get_dv(*args) ⇒ Object
getter with default value.
-
#initialize(data = {}) ⇒ StructuredSetup
constructor
A new instance of StructuredSetup.
- #set(*args) ⇒ Object
- #update(s2) ⇒ Object
Constructor Details
#initialize(data = {}) ⇒ StructuredSetup
Returns a new instance of StructuredSetup.
9 10 11 12 |
# File 'lib/pslm/structuredsetup.rb', line 9 def initialize(data={}) @data = deep_copy data super(@data) end |
Instance Method Details
#dup ⇒ Object
40 41 42 |
# File 'lib/pslm/structuredsetup.rb', line 40 def dup deep_copy self end |
#get(*keys) ⇒ Object
getter with automatic creation of missing nodes
25 26 27 |
# File 'lib/pslm/structuredsetup.rb', line 25 def get(*keys) get_create(keys[0..-2])[keys[-1]] end |
#get_dv(*args) ⇒ Object
getter with default value
30 31 32 33 34 35 36 37 38 |
# File 'lib/pslm/structuredsetup.rb', line 30 def get_dv(*args) default = args.pop innermost = get_create(args[0..-2]) unless innermost.has_key? args[-1] then innermost[args[-1]] = default end return innermost[args[-1]] end |
#set(*args) ⇒ Object
16 17 18 19 20 21 22 |
# File 'lib/pslm/structuredsetup.rb', line 16 def set(*args) value = args.pop last_key = args.pop hsh = get_create(args) hsh[last_key] = value end |
#update(s2) ⇒ Object
44 45 46 |
# File 'lib/pslm/structuredsetup.rb', line 44 def update(s2) DeepMerge.deep_merge! s2, @data end |