Sha256: a0ce7e0b3de7a6bc039cc7f25e78cb55bc906e739b09ecc42f254ea2ca3f71b2

Contents?: true

Size: 1.16 KB

Versions: 3

Compression:

Stored size: 1.16 KB

Contents

module Devise
  module Oauth
    module UrlHelpers
      def self.define_helpers(mapping)
        return unless mapping.oauthable?

        class_eval <<-URL_HELPERS, __FILE__, __LINE__ + 1
          def #{mapping.name}_oauth_authorize_url(provider, options={})
            if config = Devise.oauth_configs[provider.to_sym]
              options[:redirect_uri] ||= #{mapping.name}_oauth_callback_url(provider.to_s)
              config.authorize_url(options)
            else
              raise ArgumentError, "Could not find oauth provider \#{provider.inspect}"
            end
          end
        URL_HELPERS
      end

      def oauth_authorize_url(resource_or_scope, *args)
        scope = Devise::Mapping.find_scope!(resource_or_scope)
        send("#{scope}_oauth_authorize_url", *args)
      end

      def oauth_callback_url(resource_or_scope, *args)
        scope = Devise::Mapping.find_scope!(resource_or_scope)
        send("#{scope}_oauth_callback_url", *args)
      end

      def oauth_callback_path(resource_or_scope, *args)
        scope = Devise::Mapping.find_scope!(resource_or_scope)
        send("#{scope}_oauth_callback_path", *args)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 3 rubygems

Version Path
aihs_devise-1.2.rc lib/devise/oauth/url_helpers.rb
gonow-devise-1.2.rc lib/devise/oauth/url_helpers.rb
devise-edge-1.2.rc lib/devise/oauth/url_helpers.rb