Module: Corelogic::Utils
- Defined in:
- lib/corelogic/utils.rb
Class Method Summary collapse
- .deep_symbolize_keys(hash) ⇒ Object
- .deep_transform_keys(object, &block) ⇒ Object
- .validate_keys(hash, *required_keys) ⇒ Object
Class Method Details
.deep_symbolize_keys(hash) ⇒ Object
9 10 11 |
# File 'lib/corelogic/utils.rb', line 9 def deep_symbolize_keys(hash) deep_transform_keys(hash) { |key| key.to_sym rescue key } end |
.deep_transform_keys(object, &block) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/corelogic/utils.rb', line 16 def deep_transform_keys(object, &block) case object when Hash object.each_with_object({}) do |(key, value), result| result[yield(key)] = deep_transform_keys(value, &block) end when Array object.map { |e| deep_transform_keys(e, &block) } else object end end |
.validate_keys(hash, *required_keys) ⇒ Object
3 4 5 6 |
# File 'lib/corelogic/utils.rb', line 3 def validate_keys(hash, *required_keys) received_keys = [required_keys].flatten - hash.keys raise(ArgumentError, "Required key(s): #{received_keys.join(", ")}") unless received_keys.empty? end |