module Noder::HTTP::Utils
Constants
- DEFAULT_SEP
Attributes
key_space_limit[RW]
Public Class Methods
parse(qs, d = nil, &unescaper)
click to toggle source
# File lib/noder/http/utils.rb, line 62 def parse(qs, d = nil, &unescaper) unescaper ||= method(:unescape) params = KeySpaceConstrainedParams.new (qs || '').split(d ? /[#{d}] */n : DEFAULT_SEP).each do |p| next if p.empty? k, v = p.split('=', 2).map(&unescaper) if cur = params[k] if cur.class == Array params[k] << v else params[k] = [cur, v] end else params[k] = v end end return params.to_params_hash end
parse_headers(string)
click to toggle source
# File lib/noder/http/utils.rb, line 86 def parse_headers(string) string.split("\x00").reduce({}) do |hash, string| key, value = string.split(': ', 2) hash[key] = value hash end end
unescape(s, encoding = Encoding::UTF_8)
click to toggle source
# File lib/noder/http/utils.rb, line 52 def unescape(s, encoding = Encoding::UTF_8) URI.decode_www_form_component(s, encoding) end
Private Instance Methods
parse(qs, d = nil, &unescaper)
click to toggle source
# File lib/noder/http/utils.rb, line 62 def parse(qs, d = nil, &unescaper) unescaper ||= method(:unescape) params = KeySpaceConstrainedParams.new (qs || '').split(d ? /[#{d}] */n : DEFAULT_SEP).each do |p| next if p.empty? k, v = p.split('=', 2).map(&unescaper) if cur = params[k] if cur.class == Array params[k] << v else params[k] = [cur, v] end else params[k] = v end end return params.to_params_hash end
parse_headers(string)
click to toggle source
# File lib/noder/http/utils.rb, line 86 def parse_headers(string) string.split("\x00").reduce({}) do |hash, string| key, value = string.split(': ', 2) hash[key] = value hash end end
unescape(s, encoding = Encoding::UTF_8)
click to toggle source
# File lib/noder/http/utils.rb, line 52 def unescape(s, encoding = Encoding::UTF_8) URI.decode_www_form_component(s, encoding) end