class Temple::OptionMap
Public Class Methods
new(*map, &block)
click to toggle source
Calls superclass method
Temple::MutableMap::new
# File lib/temple/map.rb, line 57 def initialize(*map, &block) super(*map) @handler = block @valid = {} @deprecated = {} end
Public Instance Methods
[]=(key, value)
click to toggle source
Calls superclass method
Temple::MutableMap#[]=
# File lib/temple/map.rb, line 64 def []=(key, value) validate_key!(key) super end
add_deprecated_keys(*keys)
click to toggle source
# File lib/temple/map.rb, line 83 def add_deprecated_keys(*keys) keys.flatten.each { |key| @valid[key] = @deprecated[key] = true } end
add_valid_keys(*keys)
click to toggle source
# File lib/temple/map.rb, line 79 def add_valid_keys(*keys) keys.flatten.each { |key| @valid[key] = true } end
deprecated_key?(key)
click to toggle source
# File lib/temple/map.rb, line 96 def deprecated_key?(key) @deprecated.include?(key) || @map.any? {|h| h.deprecated_key?(key) if h.respond_to?(:deprecated_key?) } end
update(map)
click to toggle source
Calls superclass method
Temple::MutableMap#update
# File lib/temple/map.rb, line 69 def update(map) validate_map!(map) super end
valid_key?(key)
click to toggle source
# File lib/temple/map.rb, line 101 def valid_key?(key) include?(key) || @valid.include?(key) || @map.any? {|h| h.valid_key?(key) if h.respond_to?(:valid_key?) } end
valid_keys()
click to toggle source
# File lib/temple/map.rb, line 74 def valid_keys (keys + @valid.keys + @map.map {|h| h.valid_keys if h.respond_to?(:valid_keys) }.compact.flatten).uniq end
validate_key!(key)
click to toggle source
# File lib/temple/map.rb, line 91 def validate_key!(key) @handler.call(self, key, :deprecated) if deprecated_key?(key) @handler.call(self, key, :invalid) unless valid_key?(key) end
validate_map!(map)
click to toggle source
# File lib/temple/map.rb, line 87 def validate_map!(map) map.to_hash.keys.each {|key| validate_key!(key) } end