Module: OAuth::Helper

Extended by:
Helper
Included in:
Net::HTTPRequest, Client::Helper, Helper, RequestProxy::Base, Server, Signature::Base, Token
Defined in:
lib/oauth/helper.rb

Instance Method Summary collapse

Instance Method Details

#escape(value) ⇒ Object



8
9
10
# File 'lib/oauth/helper.rb', line 8

def escape(value)
  URI::escape(value.to_s, OAuth::RESERVED_CHARACTERS)
end

#generate_key(size = 32) ⇒ Object Also known as: generate_nonce



12
13
14
# File 'lib/oauth/helper.rb', line 12

def generate_key(size=32)
  Base64.encode64(OpenSSL::Random.random_bytes(size)).gsub(/\W/, '')
end

#generate_timestampObject



18
19
20
# File 'lib/oauth/helper.rb', line 18

def generate_timestamp
  Time.now.to_i.to_s
end

#normalize(params) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/oauth/helper.rb', line 22

def normalize(params)
  params.sort.map do |k, values|

    if values.is_a?(Array)
      # multiple values were provided for a single key
      values.sort.collect do |v|
        [escape(k),escape(v)] * "="
      end
    else
      [escape(k),escape(values)] * "="
    end
  end * "&"
end

#parse_header(header) ⇒ Object

Parse an Authorization / WWW-Authenticate header into a hash



37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/oauth/helper.rb', line 37

def parse_header(header)
  # decompose
  params = header[6,header.length].split(/[,=]/)

  # strip and unescape
  params.map! { |v| unescape(v.strip) }

  # strip quotes
  params.map! { |v| v =~ /^\".*\"$/ ? v[1..-2] : v }

  # convert into a Hash
  Hash[*params.flatten]
end

#unescape(value) ⇒ Object



51
52
53
# File 'lib/oauth/helper.rb', line 51

def unescape(value)
  URI.unescape(value.gsub('+', '%2B'))
end