Class: Evva::DataSource

Inherits:
Object
  • Object
show all
Defined in:
lib/evva/data_source.rb

Instance Method Summary collapse

Constructor Details

#initialize(keys) ⇒ DataSource

Returns a new instance of DataSource.



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/evva/data_source.rb', line 3

def initialize(keys)
  unless keys.is_a?(Hash)
    raise ArgumentError, "keys: expected Hash, got #{keys.class}"
  end

  keys.each do |property, v|
    unless v.is_a?(Hash)
      raise ArgumentError, "keys['#{property}']: expected Hash, got #{v.class}"
    end

    v.each do |key, v|
      unless v.is_a?(String) || v.nil?
        raise ArgumentError, "keys['#{property}']['#{key}']: expected String, got #{v.class}"
      end
    end
  end

  @keys = Hash[keys.map { |k, v| [k.downcase, v] }]
end