class Temple::Utils::ImmutableHash

def [](key)

def [](key)
  @hash.each {|h| return h[key] if h.include?(key) }
  nil
end

def each

def each
  keys.each {|k| yield(k, self[k]) }
end

def include?(key)

def include?(key)
  @hash.any? {|h| h.include?(key) }
end

def initialize(*hash)

def initialize(*hash)
  @hash = hash.compact
end

def keys

def keys
  @hash.inject([]) {|keys, h| keys += h.keys }.uniq
end

def values

def values
  keys.map {|k| self[k] }
end