Sha256: c16bfa0eaa98a2ad54cbb62581b27657b8fb0af7bd28d4f3659723c8aa631046
Contents?: true
Size: 913 Bytes
Versions: 13
Compression:
Stored size: 913 Bytes
Contents
require 'active_support/core_ext/object/to_param' class Object # Converts an object into a string suitable for use as a URL query string, using the given <tt>key</tt> as the # param name. # # Note: This method is defined as a default implementation for all Objects for Hash#to_query to work. def to_query(key) require 'cgi' unless defined?(CGI) && defined?(CGI::escape) "#{CGI.escape(key.to_param)}=#{CGI.escape(to_param.to_s)}" end end class Array # Converts an array into a string suitable for use as a URL query string, # using the given +key+ as the param name. # # ['Rails', 'coding'].to_query('hobbies') # => "hobbies%5B%5D=Rails&hobbies%5B%5D=coding" def to_query(key) prefix = "#{key}[]" if empty? nil.to_query(prefix) else collect { |value| value.to_query(prefix) }.join '&' end end end class Hash alias_method :to_query, :to_param end
Version data entries
13 entries across 13 versions & 2 rubygems