Class: Lepus::Primitive::Hash
- Inherits:
-
Hash
- Object
- Hash
- Lepus::Primitive::Hash
- Defined in:
- lib/lepus/primitive/hash.rb
Instance Method Summary collapse
- #deep_symbolize_keys ⇒ Object
-
#initialize(*args) ⇒ Hash
constructor
A new instance of Hash.
Constructor Details
#initialize(*args) ⇒ Hash
Returns a new instance of Hash.
5 6 7 8 9 10 11 |
# File 'lib/lepus/primitive/hash.rb', line 5 def initialize(*args) args.each do |arg| arg.each do |key, value| self[key] = value end end end |
Instance Method Details
#deep_symbolize_keys ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/lepus/primitive/hash.rb', line 13 def deep_symbolize_keys each_with_object(self.class.new) do |(key, value), result| sym_key = key.is_a?(::String) ? key.to_sym : key sym_value = if value.is_a?(::Hash) self.class.new(value).deep_symbolize_keys elsif value.is_a?(::Array) value.map do |item| item.is_a?(::Hash) ? self.class.new(item).deep_symbolize_keys : item end else value end result[sym_key] = sym_value end end |