Module: SimpleMapper::HttpOAuthExtension
- Included in:
- HttpAdapter
- Defined in:
- lib/simple_mapper/default_plugins/oauth.rb
Class Method Summary collapse
-
.with_oauth(controller) ⇒ Object
Ingeniousity here…
Instance Method Summary collapse
- #oauth ⇒ Object
- #requires_oauth(consumer_key, consumer_secret, options = {}) ⇒ Object
- #set_oauth(controller) ⇒ Object
Class Method Details
.with_oauth(controller) ⇒ Object
Ingeniousity here… ;) Duplicates the class to give it a temporary session-attached oauth scope, sets oauth to the Model-Controller-OAuth class, then makes the class use the original class for all of its instantiation. NOTE: This only really makes the class methods use OAuth. Object methods, like associations, won’t play the trick as well.
41 42 43 44 45 46 |
# File 'lib/simple_mapper/default_plugins/oauth.rb', line 41 def self.with_oauth(controller) duped = self.dup duped.set_oauth(controller) yield if block_given? duped end |
Instance Method Details
#oauth ⇒ Object
48 49 50 |
# File 'lib/simple_mapper/default_plugins/oauth.rb', line 48 def oauth @oauth end |
#requires_oauth(consumer_key, consumer_secret, options = {}) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/simple_mapper/default_plugins/oauth.rb', line 32 def requires_oauth(consumer_key, consumer_secret, ={}) @consumer_key = consumer_key @consumer_secret = consumer_secret @oauth_options = || {} # Ingeniousity here... ;) # Duplicates the class to give it a temporary session-attached oauth scope, sets oauth to the Model-Controller-OAuth class, # then makes the class use the original class for all of its instantiation. # NOTE: This only really makes the class methods use OAuth. Object methods, like associations, won't play the trick as well. def self.with_oauth(controller) duped = self.dup duped.set_oauth(controller) yield if block_given? duped end def oauth @oauth end def set_oauth(controller) @oauth = OAuthController.new(controller, self, @consumer_key, @consumer_secret, @oauth_options) add_callback('initialize_request') do |request| @oauth.authenticate! if !@oauth. && @oauth.scriptable? raise RuntimeError, "Must authorize OAuth before attempting to get data from the provider." unless @oauth. @oauth.request_signed!(request) end @oauth end true end |
#set_oauth(controller) ⇒ Object
52 53 54 55 56 57 58 59 60 |
# File 'lib/simple_mapper/default_plugins/oauth.rb', line 52 def set_oauth(controller) @oauth = OAuthController.new(controller, self, @consumer_key, @consumer_secret, @oauth_options) add_callback('initialize_request') do |request| @oauth.authenticate! if !@oauth. && @oauth.scriptable? raise RuntimeError, "Must authorize OAuth before attempting to get data from the provider." unless @oauth. @oauth.request_signed!(request) end @oauth end |