module IIJ::Sakagura::Core::HashToQueryConverter
Public Class Methods
convert_array(arr, prefix)
click to toggle source
# 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)
click to toggle source
# 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