Method: Lotus::Utils::Hash#symbolize!

Defined in:
lib/lotus/utils/hash.rb

#symbolize!Hash

Convert in-place all the keys to Symbol instances, nested hashes are converted too.

Examples:

require 'lotus/utils/hash'

hash = Lotus::Utils::Hash.new 'a' => 23, 'b' => { 'c' => ['x','y','z'] }
hash.symbolize!

hash.keys    # => [:a, :b]
hash.inspect # => {:a=>23, :b=>{:c=>["x", "y", "z"]}}

Returns:

Since:

  • 0.1.0



65
66
67
68
69
70
71
72
73
74
# File 'lib/lotus/utils/hash.rb', line 65

def symbolize!
  keys.each do |k|
    v = delete(k)
    v = Hash.new(v).symbolize! if v.is_a?(::Hash)

    self[k.to_sym] = v
  end

  self
end