class HashUtil

Public Class Methods

to_params(hash) click to toggle source
# File lib/web_translate_it/util/hash_util.rb, line 5
def self.to_params(hash) # rubocop:todo Metrics/MethodLength
  params = ''
  stack = []

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

  stack.each do |parent, h|
    h.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