class Hash
def self.from_xml(xml)
def self.from_xml(xml) ToHashParser.from_xml(xml) end
def normalize_param(key, value)
- Example: normalize_param(:name, "Bob") #=> "name=Bob&" -
Returns:
-
(String)
- This key value pair as a param
Parameters:
-
value
(Object
) -- The value for the param. -
key
(Object
) -- The key for the param.
def normalize_param(key, value) param = '' stack = [] if value.is_a?(Array) param << value.map { |element| normalize_param("#{key}[]", element) }.join elsif value.is_a?(Hash) stack << [key,value] else param << "#{key}=#{URI.encode(value.to_s)}&" end stack.each do |parent, hash| hash.each do |key, value| if value.is_a?(Hash) stack << ["#{parent}[#{key}]", value] else param << normalize_param("#{parent}[#{key}]", value) end end end param end
def to_params
-
(String)
- This hash as a query string
def to_params params = self.map { |k,v| normalize_param(k,v) }.join params.chop! # trailing & params end