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
- #escape(value) ⇒ Object
- #generate_key(size = 32) ⇒ Object (also: #generate_nonce)
- #generate_timestamp ⇒ Object
- #normalize(params) ⇒ Object
-
#parse_header(header) ⇒ Object
Parse an Authorization / WWW-Authenticate header into a hash.
- #unescape(value) ⇒ Object
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_timestamp ⇒ Object
18 19 20 |
# File 'lib/oauth/helper.rb', line 18 def 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 |