Sha256: 700b27d224667d988a7ef8ac7e64a4483e14986ab01fe83cc2afa67a06618262
Contents?: true
Size: 1.5 KB
Versions: 3
Compression:
Stored size: 1.5 KB
Contents
require 'uri/http' module URI class HTTP < Generic # Query parameters attr_reader :query_params alias_method :old_initialize, :initialize # # Creates a new URI::HTTP object and initializes query_params as a # new Hash. # def initialize(*args) old_initialize(*args) @query_params = {} parse_query_params end # # Sets the query data and updates query_params. # def query=(query_str) new_query = super(query_str) parse_query_params return new_query end protected # # Parses the query parameters from the query data, populating # query_params with the parsed parameters. # def parse_query_params @query_params.clear if @query @query.split('&').each do |param| name, value = param.split('=') if value @query_params[name] = URI.decode(value) else @query_params[name] = nil end end end end private # :nodoc def path_query str = @path unless @query_params.empty? str += '?' + @query_params.to_a.map { |name,value| if value==true "#{name}=active" elsif value if value.kind_of?(Array) "#{name}=#{URI.encode(value.join(' '))}" else "#{name}=#{URI.encode(value.to_s)}" end else "#{name}=" end }.join('&') end return str end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
gscraper-0.1.5 | lib/gscraper/extensions/uri/http.rb |
gscraper-0.1.7 | lib/gscraper/extensions/uri/http.rb |
gscraper-0.1.6 | lib/gscraper/extensions/uri/http.rb |