Module: NetProspex::Helpers::Formatters

Included in:
Client, Middleware::Rubyize
Defined in:
lib/netprospex/helpers/formatters.rb

Instance Method Summary collapse

Instance Method Details

#rubyize_keys(hash) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/netprospex/helpers/formatters.rb', line 44

def rubyize_keys(hash)
  new_hash = {}
  hash.each do |k,v|
    new_k = case k
            when String
              k.underscore.to_sym
            else
              k
            end
    new_v = case v
            when Hash
              rubyize_keys(v)
            when Array
              v.map {|w| (Hash === w) ? rubyize_keys(w) : w}
            else
              v
            end
    new_hash[new_k] = new_v
  end
  new_hash
end

#stringify_query(query) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/netprospex/helpers/formatters.rb', line 7

def stringify_query(query)
  return "" if query.blank?
  components = []
  unrubyize_keys(query).each do |k,v|
    if v.is_a? Array
      v.each do |w|
        components << [k+'[]', w]
      end
    else
      components << [k,v]
    end
  end
  "?" + URI.encode_www_form(components)
end

#unrubyize_keys(hash) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/netprospex/helpers/formatters.rb', line 22

def unrubyize_keys(hash)
  new_hash = {}
  hash.each do |k,v|
    new_k = case k
            when Symbol
              k.to_s.camelize(:lower)
            else
              k
            end
    new_v = case v
            when Hash
              unrubyize_keys(v)
            when Array
              v.map {|w| (Hash === w) ? unrubyize_keys(w) : w}
            else
              v
            end
    new_hash[new_k] = new_v
  end
  new_hash
end