class Temple::OptionHash
Public Class Methods
new(*hash, &block)
click to toggle source
Calls superclass method
Temple::MutableHash.new
# File lib/temple/hash.rb, line 56 def initialize(*hash, &block) super(*hash) @handler = block @valid = {} @deprecated = {} end
Public Instance Methods
[]=(key, value)
click to toggle source
Calls superclass method
Temple::MutableHash#[]=
# File lib/temple/hash.rb, line 63 def []=(key, value) validate_key!(key) super end
add_deprecated_keys(*keys)
click to toggle source
# File lib/temple/hash.rb, line 81 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/hash.rb, line 77 def add_valid_keys(*keys) keys.flatten.each { |key| @valid[key] = true } end
deprecated_key?(key)
click to toggle source
# File lib/temple/hash.rb, line 94 def deprecated_key?(key) @deprecated.include?(key) || @hash.any? {|h| h.deprecated_key?(key) if h.respond_to?(:deprecated_key?) } end
update(hash)
click to toggle source
Calls superclass method
Temple::MutableHash#update
# File lib/temple/hash.rb, line 68 def update(hash) validate_hash!(hash) super end
valid_key?(key)
click to toggle source
# File lib/temple/hash.rb, line 99 def valid_key?(key) include?(key) || @valid.include?(key) || @hash.any? {|h| h.valid_key?(key) if h.respond_to?(:valid_key?) } end
valid_keys()
click to toggle source
# File lib/temple/hash.rb, line 73 def valid_keys keys.concat(@valid.keys).uniq end
validate_hash!(hash)
click to toggle source
# File lib/temple/hash.rb, line 85 def validate_hash!(hash) hash.to_hash.keys.each {|key| validate_key!(key) } end
validate_key!(key)
click to toggle source
# File lib/temple/hash.rb, line 89 def validate_key!(key) @handler.call(self, key, true) if deprecated_key?(key) @handler.call(self, key, false) unless valid_key?(key) end