module RbPath::Utils

Public Instance Methods

deep_stringify_all(obj) click to toggle source
# File lib/rbpath/utils.rb, line 13
def deep_stringify_all(obj)
  deep_transform_all(obj) { |obj| obj.is_a?(Symbol) ? obj.to_s : obj }
end
deep_symbolize_all(obj) click to toggle source
# File lib/rbpath/utils.rb, line 17
def deep_symbolize_all(obj)
  deep_transform_all(obj) { |obj| obj.is_a?(String) ? obj.to_sym : obj }
end
deep_transform_all(obj, &block) click to toggle source
# File lib/rbpath/utils.rb, line 2
def deep_transform_all(obj, &block)
  case obj
  when Hash
    Hash[ obj.map { |k,v| [deep_transform_all(k, &block),
                           deep_transform_all(v, &block)] }]
  when Array
    obj.map { |i| deep_transform_all(i, &block) }
  else block[obj]
  end
end