Sha256: 8ee60a336b44fedf073effc06c4372293e155e7ff8de4f49407780e86f1a7d31
Contents?: true
Size: 1.08 KB
Versions: 1
Compression:
Stored size: 1.08 KB
Contents
require 'cgi' require 'pp' class Hash def to_url_params elements = [] self.each_pair do |key, value| url_node(key, value, elements) end elements.join('&') end private def url_node(key, value, elements, curr_path=nil) if value.class != Hash && value.class != Array && curr_path.nil? elements << "#{CGI::escape(key.to_s)}=#{CGI::escape(value.to_s)}" elsif value.class != Hash && value.class != Array elements << curr_path + CGI::escape("[#{key.to_s}]"+ '=' + CGI::escape(value.to_s)) elsif value.class == Hash value.each_pair do |k, v| if curr_path.nil? url_node(k,v, elements, CGI::escape(key.to_s)) else url_node(k,v, elements, curr_path + "[#{CGI::escape(key.to_s)}]") end end elsif value.class == Array value.each do |v| if curr_path.nil? url_node('',v, elements, CGI::escape(key.to_s)) else url_node('',v, elements, curr_path + "[#{CGI::escape(key.to_s)}]") end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
valdemaximus-xx-0.4.0 | lib/extensions/hash.rb |