module Hashie::Extensions::StrictKeyAccess
def [](key)
KeyError: key not found: "noes"
>> a["noes"]
=> {}
>> a = StrictKeyAccessHash.new(123)
With StrictKeyAccess:
=> 123
>> a["noes"]
=> {}
>> a = Hash.new(123)
Normal:
NOTE: When key lookup fails a KeyError is raised.
NOTE: Defaults don't make any sense with a StrictKeyAccess.
def [](key) fetch(key) end
def default(_ = nil)
def default(_ = nil) raise DefaultError end
def default=(_)
def default=(_) raise DefaultError end
def default_proc
def default_proc raise DefaultError end
def default_proc=(_)
def default_proc=(_) raise DefaultError end
def key(value)
def key(value) super.tap do |result| if result.nil? && (!key?(result) || self[result] != value) raise KeyError, "key not found with value of #{value.inspect}" end end end