Module: Broadway::Utils

Defined in:
lib/broadway.rb

Overview

from Rack::Utils

Instance Method Summary collapse

Instance Method Details

#parse_query(qs, d = nil) ⇒ Object



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/broadway.rb', line 69

def parse_query(qs, d = nil)
  params = {}
  (qs || '').split(d ? /[#{d}] */n : DEFAULT_SEP).each do |p|
    k, v = p.split('=', 2).map { |x| unescape(x) }
    if cur = params[k]
      if cur.class == Array
        params[k] << v
      else
        params[k] = [cur, v]
      end
    else
      params[k] = v
    end
  end
end

#unescape(s) ⇒ Object



63
64
65
66
67
# File 'lib/broadway.rb', line 63

def unescape(s)
  s.tr('+', ' ').gsub(/((?:%[0-9a-fA-F]{2})+)/n){
    [$1.delete('%')].pack('H*')
  }
end