Parent

Included Modules

OAuth::RequestProxy::Base

Attributes

request[RW]
options[RW]
unsigned_parameters[RW]

Public Class Methods

new(request, options = {}) click to toggle source
    # File lib/oauth/request_proxy/base.rb, line 14
14:     def initialize(request, options = {})
15:       @request = request
16:       @unsigned_parameters = (options[:unsigned_parameters] || []).map {|param| param.to_s}
17:       @options = options
18:     end
proxies(klass) click to toggle source
    # File lib/oauth/request_proxy/base.rb, line 8
 8:     def self.proxies(klass)
 9:       OAuth::RequestProxy.available_proxies[klass] = self
10:     end

Public Instance Methods

consumer_key() click to toggle source

TODO deprecate these

Alias for: oauth_consumer_key
non_oauth_parameters() click to toggle source
    # File lib/oauth/request_proxy/base.rb, line 86
86:     def non_oauth_parameters
87:       parameters.reject { |k,v| OAuth::PARAMETERS.include?(k) }
88:     end
nonce() click to toggle source
Alias for: oauth_nonce
normalized_parameters() click to toggle source

See 9.1.1. in specs Normalize Request Parameters

    # File lib/oauth/request_proxy/base.rb, line 97
97:     def normalized_parameters
98:       normalize(parameters_for_signature)
99:     end
normalized_uri() click to toggle source

See 9.1.2 in specs

    # File lib/oauth/request_proxy/base.rb, line 91
91:     def normalized_uri
92:       u = URI.parse(uri)
93:       "#{u.scheme.downcase}://#{u.host.downcase}#{(u.scheme.downcase == 'http' && u.port != 80) || (u.scheme.downcase == 'https' && u.port != 443) ? ":#{u.port}" : ""}#{(u.path && u.path != '') ? u.path : '/'}"
94:     end
oauth_callback() click to toggle source

OAuth parameters

    # File lib/oauth/request_proxy/base.rb, line 22
22:     def oauth_callback
23:       parameters['oauth_callback']
24:     end
oauth_consumer_key() click to toggle source
    # File lib/oauth/request_proxy/base.rb, line 26
26:     def oauth_consumer_key
27:       parameters['oauth_consumer_key']
28:     end
Also aliased as: consumer_key
oauth_header(options = {}) click to toggle source

Authorization header for OAuth

     # File lib/oauth/request_proxy/base.rb, line 138
138:     def oauth_header(options = {})
139:       header_params_str = oauth_parameters.map { |k,v| "#{k}=\"#{escape(v)}\"" }.join(', ')
140: 
141:       realm = "realm=\"#{options[:realm]}\", " if options[:realm]
142:       "OAuth #{realm}#{header_params_str}"
143:     end
oauth_nonce() click to toggle source
    # File lib/oauth/request_proxy/base.rb, line 30
30:     def oauth_nonce
31:       parameters['oauth_nonce']
32:     end
Also aliased as: nonce
oauth_parameters() click to toggle source
    # File lib/oauth/request_proxy/base.rb, line 82
82:     def oauth_parameters
83:       parameters.select { |k,v| OAuth::PARAMETERS.include?(k) }.reject { |k,v| v == "" }
84:     end
oauth_signature() click to toggle source
    # File lib/oauth/request_proxy/base.rb, line 34
34:     def oauth_signature
35:       # TODO can this be nil?
36:       [parameters['oauth_signature']].flatten.first || ""
37:     end
Also aliased as: signature
oauth_signature_method() click to toggle source
    # File lib/oauth/request_proxy/base.rb, line 39
39:     def oauth_signature_method
40:       case parameters['oauth_signature_method']
41:       when Array
42:         parameters['oauth_signature_method'].first
43:       else
44:         parameters['oauth_signature_method']
45:       end
46:     end
Also aliased as: signature_method
oauth_timestamp() click to toggle source
    # File lib/oauth/request_proxy/base.rb, line 48
48:     def oauth_timestamp
49:       parameters['oauth_timestamp']
50:     end
Also aliased as: timestamp
oauth_token() click to toggle source
    # File lib/oauth/request_proxy/base.rb, line 52
52:     def oauth_token
53:       parameters['oauth_token']
54:     end
Also aliased as: token
oauth_verifier() click to toggle source
    # File lib/oauth/request_proxy/base.rb, line 56
56:     def oauth_verifier
57:       parameters['oauth_verifier']
58:     end
oauth_version() click to toggle source
    # File lib/oauth/request_proxy/base.rb, line 60
60:     def oauth_version
61:       parameters["oauth_version"]
62:     end
parameters() click to toggle source

Parameter accessors

    # File lib/oauth/request_proxy/base.rb, line 74
74:     def parameters
75:       raise NotImplementedError, "Must be implemented by subclasses"
76:     end
parameters_for_signature() click to toggle source
    # File lib/oauth/request_proxy/base.rb, line 78
78:     def parameters_for_signature
79:       parameters.reject { |k,v| k == "oauth_signature" || unsigned_parameters.include?(k)}
80:     end
sign(options = {}) click to toggle source
     # File lib/oauth/request_proxy/base.rb, line 101
101:     def sign(options = {})
102:       OAuth::Signature.sign(self, options)
103:     end
sign!(options = {}) click to toggle source
     # File lib/oauth/request_proxy/base.rb, line 105
105:     def sign!(options = {})
106:       parameters["oauth_signature"] = sign(options)
107:       @signed = true
108:       signature
109:     end
signature() click to toggle source
Alias for: oauth_signature
signature_base_string() click to toggle source

See 9.1 in specs

     # File lib/oauth/request_proxy/base.rb, line 112
112:     def signature_base_string
113:       base = [method, normalized_uri, normalized_parameters]
114:       base.map { |v| escape(v) }.join("&")
115:     end
signature_method() click to toggle source
signed?() click to toggle source

Has this request been signed yet?

     # File lib/oauth/request_proxy/base.rb, line 118
118:     def signed?
119:       @signed
120:     end
signed_uri(with_oauth = true) click to toggle source

URI, including OAuth parameters

     # File lib/oauth/request_proxy/base.rb, line 123
123:     def signed_uri(with_oauth = true)
124:       if signed?
125:         if with_oauth
126:           params = parameters
127:         else
128:           params = non_oauth_parameters
129:         end
130: 
131:         [uri, normalize(params)] * "?"
132:       else
133:         STDERR.puts "This request has not yet been signed!"
134:       end
135:     end
timestamp() click to toggle source
Alias for: oauth_timestamp
token() click to toggle source
Alias for: oauth_token

Protected Instance Methods

header_params() click to toggle source
     # File lib/oauth/request_proxy/base.rb, line 147
147:     def header_params
148:       %( X-HTTP_AUTHORIZATION Authorization HTTP_AUTHORIZATION ).each do |header|
149:         next unless request.env.include?(header)
150: 
151:         header = request.env[header]
152:         next unless header[0,6] == 'OAuth '
153: 
154:         # parse the header into a Hash
155:         oauth_params = OAuth::Helper.parse_header(header)
156: 
157:         # remove non-OAuth parameters
158:         oauth_params.reject! { |k,v| k !~ /^oauth_/ }
159: 
160:         return oauth_params
161:       end
162: 
163:       return {}
164:     end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.