Module: Lab42::NHash::Hierarchy

Included in:
Lab42::NHash
Defined in:
lib/lab42/nhash/hierarchies.rb

Instance Method Summary collapse

Instance Method Details

#add_hierarchies(*some_hierarchies) ⇒ Object



10
11
12
13
14
15
# File 'lib/lab42/nhash/hierarchies.rb', line 10

def add_hierarchies *some_hierarchies
  some_hierarchies.each do | a_hierarchy |
    add_hierarchy a_hierarchy
  end
  self
end

#add_hierarchy(a_hierarchy = {}) ⇒ Object

Raises:

  • (ArgumentError)


4
5
6
7
8
9
# File 'lib/lab42/nhash/hierarchies.rb', line 4

def add_hierarchy a_hierarchy={}
  a_hierarchy = self.class.new a_hierarchy if Hash === a_hierarchy
  raise ArgumentError, 'not an NHash instance' unless self.class === a_hierarchy
  @hierarchies << a_hierarchy
  self
end

#get_from_hierarchies(keyexpr, keyexc) ⇒ Object

Raises:

  • (KeyError)


17
18
19
20
21
22
23
24
25
# File 'lib/lab42/nhash/hierarchies.rb', line 17

def get_from_hierarchies keyexpr, keyexc
  @hierarchies.each do | h |
    begin
      return h.get keyexpr
    rescue KeyError
    end
  end
  raise KeyError, keyexc
end