Sha256: 3fc15f1075c28214b81f5ca1e4af037df80d668415e3624efc440c53f273c8bd
Contents?: true
Size: 1.01 KB
Versions: 15
Compression:
Stored size: 1.01 KB
Contents
require 'cgi' module Github module Utils module Url extend self DEFAULT_QUERY_SEP = /[&;] */n KEY_VALUE_SEP = '='.freeze def escape(s) CGI.escape s.to_s end def unescape(s) CGI.unescape s.to_s end def parse_query(query_string) return '' if query_string.nil? || query_string.empty? params = {} query_string.split(DEFAULT_QUERY_SEP).each do |part| k, v = part.split(KEY_VALUE_SEP, 2).map { |el| unescape(el) } if cur = params[k] if cur.class == Array params[k] << v else params[k] = [cur, v] end else params[k] = v end end params end def parse_query_for_param(query_string, name) parse_query(query_string).each do |key, val| return val.first if (name == key) && val.is_a?(Array) return val if (name == key) end return nil end end # Url end # Utils end # Github
Version data entries
15 entries across 15 versions & 1 rubygems