Class: Utilise::Augment::Crash::Bash
- Defined in:
- lib/utilise/augment/crash.rb
Overview
Creates a hashie mash that raises an error when a key is not present
Constant Summary collapse
- DEFAULT_PROC =
The default proc to be used for the bash hash
lambda do |hash, key| raise NameError, "No key '#{key}' in #{hash.to_hash.inspect}" end
Instance Method Summary collapse
-
#initialize(source_hash = nil, default = nil, &blk) ⇒ Bash
constructor
A new instance of Bash.
-
#recursively_freeze(obj) ⇒ Object
recursively apply the default proc to all hashes.
Constructor Details
#initialize(source_hash = nil, default = nil, &blk) ⇒ Bash
Returns a new instance of Bash.
14 15 16 17 |
# File 'lib/utilise/augment/crash.rb', line 14 def initialize(source_hash = nil, default = nil, &blk) default ? super(source_hash, default) : super(source_hash, &blk) recursively_freeze(self) end |
Instance Method Details
#recursively_freeze(obj) ⇒ Object
recursively apply the default proc to all hashes
20 21 22 23 24 25 26 27 28 |
# File 'lib/utilise/augment/crash.rb', line 20 def recursively_freeze(obj) case obj when Array obj.each { |o| recursively_freeze(o) } when Hash obj.default_proc = DEFAULT_PROC recursively_freeze(obj.values) end end |