module Pupa::Concerns::IndifferentAccess

Adds private methods for changing hash keys to strings or symbols.

Private Instance Methods

stringify_keys(object) click to toggle source
# File lib/pupa/models/concerns/indifferent_access.rb, line 30
def stringify_keys(object)
  transform_keys(object, :to_s)
end
symbolize_keys(object) click to toggle source
# File lib/pupa/models/concerns/indifferent_access.rb, line 26
def symbolize_keys(object)
  transform_keys(object, :to_sym)
end
transform_keys(object, meth) click to toggle source
# File lib/pupa/models/concerns/indifferent_access.rb, line 9
def transform_keys(object, meth)
  case object
  when Hash
    {}.tap do |hash|
      object.each do |key,value|
        hash[key.send(meth)] = transform_keys(value, meth)
      end
    end
  when Array
    object.map do |value|
      transform_keys(value, meth)
    end
  else
    object
  end
end