module Utils::HashHelpers

Public Class Methods

symbolize_keys(hash) click to toggle source

From devblog.avdi.org/2009/07/14/recursively-symbolize-keys/

# File lib/utils/hash_helpers.rb, line 5
def self.symbolize_keys(hash)
  if hash.is_a?(Array)
    hash.map { |h| symbolize_keys(h) }
  else
    hash.inject({}) { |result, (key, value)|
      new_key = case key
                when String then key.to_sym
                else key
                end
      new_value = case value
                  when Hash then symbolize_keys(value)
                  else value
                  end
      result[new_key] = new_value
      result
    }
  end
end