Module: IIJ::Sakagura::Core::HashToQueryConverter

Defined in:
lib/iij/sakagura/core/hash_to_query.rb

Class Method Summary collapse

Class Method Details

.convert_array(arr, prefix) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/iij/sakagura/core/hash_to_query.rb', line 23

def self.convert_array(arr, prefix)
  ret = {}
  arr.each.with_index(1) do |v, i|
    full_key = "#{prefix}.#{i}"
    if v.kind_of? Array
      ret.merge!(self.convert_array(v, full_key))
    elsif v.kind_of? Hash
      ret.merge!(self.convert_hash(v, full_key))
    else
      ret[full_key] = v
    end
  end
  ret
end

.convert_hash(hash, prefix = nil) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/iij/sakagura/core/hash_to_query.rb', line 8

def self.convert_hash(hash, prefix = nil)
  hash.inject({}) do |stow, pair|
    k, v = pair
    full_key = (prefix ? "#{prefix}." : "") + k

    if v.kind_of? Array
      stow.merge(self.convert_array(v, full_key))
    elsif v.kind_of? Hash
      stow.merge(self.convert_hash(v, full_key))
    else
      stow.merge({ full_key => v })
    end
  end
end