Module: HackyHAL::Util

Defined in:
lib/hacky_hal/util.rb

Class Method Summary collapse

Class Method Details

.object_from_hash(hash, context_module) ⇒ Object



3
4
5
6
7
8
9
10
11
12
# File 'lib/hacky_hal/util.rb', line 3

def self.object_from_hash(hash, context_module)
  hash = hash.dup
  type = hash.delete(:type)

  unless type
    raise ArgumentError, "Must specify type to build object from hash.  Given: #{hash}"
  end

  context_module.const_get(type).new(hash)
end

.symbolize_keys_deep(h) ⇒ Object



14
15
16
17
18
19
20
21
# File 'lib/hacky_hal/util.rb', line 14

def self.symbolize_keys_deep(h)
  h.keys.each do |k|
    ks = k.respond_to?(:to_sym) ? k.to_sym : k
    h[ks] = h.delete(k)
    symbolize_keys_deep(h[ks]) if h[ks].kind_of?(Hash)
  end
  h
end