Module: RbPath::Utils

Included in:
Query
Defined in:
lib/rbpath/utils.rb

Instance Method Summary collapse

Instance Method Details

#deep_stringify_all(obj) ⇒ Object



13
14
15
# 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) ⇒ Object



17
18
19
# 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) ⇒ Object



2
3
4
5
6
7
8
9
10
11
# 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