module HmacSignature::QueryEncoder

Public Class Methods

encode_param(k, v) click to toggle source

URL encodes query parameters: single k=v, or a URL encoded array, if v is an array of values

# File lib/hmac_signature/query_encoder.rb, line 6
def encode_param(k, v)
        if v.is_a?(Array)
                v.map { |e| escape(k) + "[]=" + escape(e) }.join("&")
        else
                escape(k) + "=" + escape(v)
        end
end
encode_param_without_escaping(k, v) click to toggle source

Like encode_param, but doesn't url escape keys or values

# File lib/hmac_signature/query_encoder.rb, line 15
def encode_param_without_escaping(k, v)
        if v.is_a?(Array)
                v.map { |e| k + "[]=" + e }.join("&")
        else
                "#{k}=#{v}"
        end
end

Private Class Methods

bytesize(string) click to toggle source
# File lib/hmac_signature/query_encoder.rb, line 36
def bytesize(string)
        string.bytesize
end
escape(s) click to toggle source
# File lib/hmac_signature/query_encoder.rb, line 25
def escape(s)
        if defined?(EscapeUtils)
                EscapeUtils.escape_url(s.to_s)
        else
                s.to_s.gsub(/([^a-zA-Z0-9_.-]+)/n) {
                        '%'+$1.unpack('H2'*bytesize($1)).join('%').upcase
                }
        end
end