Sha256: 7cc3d845c4c248018c134ce80ec5bb0041f9e1105214b070b5137e73db5244fc

Contents?: true

Size: 878 Bytes

Versions: 53

Compression:

Stored size: 878 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_s).gsub(/%(5B|5D)/n) { [$1].pack('H*') }}=#{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[]=Rails&hobbies[]=coding"
  def to_query(key)
    prefix = "#{key}[]"
    collect { |value| value.to_query(prefix) }.join '&'
  end
end

class Hash
  alias_method :to_query, :to_param
end

Version data entries

53 entries across 53 versions & 4 rubygems

Version Path
social_url_stats-0.0.1 vendor/ruby/1.9.1/gems/activesupport-3.0.0/lib/active_support/core_ext/object/to_query.rb
activesupport-3.0.20 lib/active_support/core_ext/object/to_query.rb
activesupport-3.0.19 lib/active_support/core_ext/object/to_query.rb
activesupport-3.0.18 lib/active_support/core_ext/object/to_query.rb
activesupport-3.0.17 lib/active_support/core_ext/object/to_query.rb
activesupport-3.0.16 lib/active_support/core_ext/object/to_query.rb
activesupport-3.0.15 lib/active_support/core_ext/object/to_query.rb
activesupport-3.0.14 lib/active_support/core_ext/object/to_query.rb
activesupport-3.0.13 lib/active_support/core_ext/object/to_query.rb
activesupport-3.0.13.rc1 lib/active_support/core_ext/object/to_query.rb
activesupport-3.0.12 lib/active_support/core_ext/object/to_query.rb
activesupport-3.0.12.rc1 lib/active_support/core_ext/object/to_query.rb
activesupport-3.0.11 lib/active_support/core_ext/object/to_query.rb
messagebus_ruby_api-0.4.7 spec/ruby/1.9.1/gems/activesupport-3.0.9/lib/active_support/core_ext/object/to_query.rb
messagebus_ruby_api-0.4.4 spec/ruby/1.9.1/gems/activesupport-3.0.9/lib/active_support/core_ext/object/to_query.rb
activesupport-3.0.10 lib/active_support/core_ext/object/to_query.rb
activesupport-3.0.10.rc1 lib/active_support/core_ext/object/to_query.rb
activesupport-3.0.9 lib/active_support/core_ext/object/to_query.rb
activesupport-3.0.9.rc5 lib/active_support/core_ext/object/to_query.rb
activesupport-3.0.9.rc4 lib/active_support/core_ext/object/to_query.rb