Class: EventMachine::HttpClient
Overview
Extensions for em-http so that we can use consumer.sign! with an EventMachine::HttpClient instance. This is purely syntactic sugar.
Instance Attribute Summary collapse
-
#oauth_helper ⇒ Object
readonly
Returns the value of attribute oauth_helper.
Instance Method Summary collapse
-
#normalize_uri ⇒ Object
This code was lifted from the em-http-request because it was removed from the gem June 19, 2010 see: github.com/igrigorik/em-http-request/commit/d536fc17d56dbe55c487eab01e2ff9382a62598b.
-
#oauth!(http, consumer = nil, token = nil, options = {}) ⇒ Object
Add the OAuth information to an HTTP request.
-
#signature_base_string(http, consumer = nil, token = nil, options = {}) ⇒ Object
Create a string suitable for signing for an HTTP request.
Instance Attribute Details
#oauth_helper ⇒ Object (readonly)
Returns the value of attribute oauth_helper.
10 11 12 |
# File 'lib/oauth/client/em_http.rb', line 10 def oauth_helper @oauth_helper end |
Instance Method Details
#normalize_uri ⇒ Object
This code was lifted from the em-http-request because it was removed from the gem June 19, 2010 see: github.com/igrigorik/em-http-request/commit/d536fc17d56dbe55c487eab01e2ff9382a62598b
67 68 69 70 71 72 73 74 75 76 |
# File 'lib/oauth/client/em_http.rb', line 67 def normalize_uri @normalized_uri ||= begin uri = @uri.dup encoded_query = encode_query(@uri, @options[:query]) path, query = encoded_query.split("?", 2) uri.query = query unless encoded_query.empty? uri.path = path uri end end |
#oauth!(http, consumer = nil, token = nil, options = {}) ⇒ Object
Add the OAuth information to an HTTP request. Depending on the options[:scheme]
setting this may add a header, additional query string parameters, or additional POST body parameters. The default scheme is header
, in which the OAuth parameters as put into the Authorization
header.
-
http - Configured Net::HTTP instance, ignored in this scenario except for getting host.
-
consumer - OAuth::Consumer instance
-
token - OAuth::Token instance
-
options - Request-specific options (e.g.
request_uri
,consumer
,token
,scheme
,signature_method
,nonce
,timestamp
)
This method also modifies the User-Agent
header to add the OAuth gem version.
26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/oauth/client/em_http.rb', line 26 def oauth!(http, consumer = nil, token = nil, = {}) = { :request_uri => normalized_oauth_uri(http), :consumer => consumer, :token => token, :scheme => 'header', :signature_method => nil, :nonce => nil, :timestamp => nil }.merge() @oauth_helper = OAuth::Client::Helper.new(self, ) self.__send__(:"set_oauth_#{[:scheme]}") end |
#signature_base_string(http, consumer = nil, token = nil, options = {}) ⇒ Object
Create a string suitable for signing for an HTTP request. This process involves parameter normalization as specified in the OAuth specification. The exact normalization also depends on the options[:scheme]
being used so this must match what will be used for the request itself. The default scheme is header
, in which the OAuth parameters as put into the Authorization
header.
-
http - Configured Net::HTTP instance
-
consumer - OAuth::Consumer instance
-
token - OAuth::Token instance
-
options - Request-specific options (e.g.
request_uri
,consumer
,token
,scheme
,signature_method
,nonce
,timestamp
)
52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/oauth/client/em_http.rb', line 52 def signature_base_string(http, consumer = nil, token = nil, = {}) = { :request_uri => normalized_oauth_uri(http), :consumer => consumer, :token => token, :scheme => 'header', :signature_method => nil, :nonce => nil, :timestamp => nil }.merge() OAuth::Client::Helper.new(self, ).signature_base_string end |