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 |