Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/grabz_it/hash.rb

Instance Method Summary collapse

Instance Method Details

#symbolize_keysObject

Return a new hash with all keys converted to symbols, as long as they respond to to_sym.

{ 'name' => 'Rob', 'years' => '28' }.symbolize_keys
#=> { :name => "Rob", :years => "28" }


8
9
10
# File 'lib/grabz_it/hash.rb', line 8

def symbolize_keys
  dup.symbolize_keys!
end

#symbolize_keys!Object

Destructively convert all keys to symbols, as long as they respond to to_sym. Same as symbolize_keys, but modifies self.



14
15
16
17
18
19
# File 'lib/grabz_it/hash.rb', line 14

def symbolize_keys!
  keys.each do |key|
    self[(key.to_sym rescue key) || key] = delete(key)
  end
  self
end

#to_paramsObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/grabz_it/hash.rb', line 21

def to_params
  params = ''
  stack = []

  each do |k, v|
    if v.is_a?(Hash)
      stack << [k,v]
    else
      params << "#{k}=#{v}&"
    end
  end

  stack.each do |parent, hash|
    hash.each do |k, v|
      if v.is_a?(Hash)
        stack << ["#{parent}[#{k}]", v]
      else
        params << "#{parent}[#{k}]=#{v}&"
      end
    end
  end

  params.chop! # trailing &
  params
end