class Temple::ImmutableMap

Immutable map class which supports map merging @api public

Public Class Methods

new(*map) click to toggle source
# File lib/temple/map.rb, line 8
def initialize(*map)
  @map = map.compact
end

Public Instance Methods

[](key) click to toggle source
# File lib/temple/map.rb, line 16
def [](key)
  @map.each {|h| return h[key] if h.include?(key) }
  nil
end
each() { |k, self| ... } click to toggle source
# File lib/temple/map.rb, line 21
def each
  keys.each {|k| yield(k, self[k]) }
end
include?(key) click to toggle source
# File lib/temple/map.rb, line 12
def include?(key)
  @map.any? {|h| h.include?(key) }
end
keys() click to toggle source
# File lib/temple/map.rb, line 25
def keys
  @map.inject([]) {|keys, h| keys.concat(h.keys) }.uniq
end
to_hash() click to toggle source
# File lib/temple/map.rb, line 33
def to_hash
  result = {}
  each {|k, v| result[k] = v }
  result
end
values() click to toggle source
# File lib/temple/map.rb, line 29
def values
  keys.map {|k| self[k] }
end