Class: Kalculator::NestedLookup

Inherits:
Object
  • Object
show all
Defined in:
lib/kalculator/nested_lookup.rb

Instance Method Summary collapse

Constructor Details

#initialize(data_source) ⇒ NestedLookup

Returns a new instance of NestedLookup.



3
4
5
# File 'lib/kalculator/nested_lookup.rb', line 3

def initialize(data_source)
  @data_source = data_source
end

Instance Method Details

#[](name) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/kalculator/nested_lookup.rb', line 17

def [](name)
  names = name.split(".")
  names.inject(@data_source) do |source, name|
    break nil unless source.key?(name)
    source[name]
  end
end

#key?(name) ⇒ Boolean

Returns:

  • (Boolean)


7
8
9
10
11
12
13
14
15
# File 'lib/kalculator/nested_lookup.rb', line 7

def key?(name)
  names = name.split(".")
  source = @data_source
  names.all? do |name|
    break false unless source.key?(name)
    source = source[name]
    true
  end
end