Sha256: e366355fb709f8cde60eee0cf5159992f13e6fa1e28478b02160c0015d6d8cee

Contents?: true

Size: 680 Bytes

Versions: 6

Compression:

Stored size: 680 Bytes

Contents

# frozen_string_literal: true

module OAuth
  module RequestProxy
    def self.available_proxies # :nodoc:
      @available_proxies ||= {}
    end

    def self.proxy(request, options = {})
      return request if request.is_a?(OAuth::RequestProxy::Base)

      klass = available_proxies[request.class]

      # Search for possible superclass matches.
      if klass.nil?
        request_parent = available_proxies.keys.find { |rc| request.is_a?(rc) }
        klass = available_proxies[request_parent]
      end

      raise UnknownRequestType, request.class.to_s unless klass

      klass.new(request, options)
    end

    class UnknownRequestType < RuntimeError; end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
oauth-1.1.0 lib/oauth/request_proxy.rb
oauth-1.0.1 lib/oauth/request_proxy.rb
oauth-0.6.2 lib/oauth/request_proxy.rb
oauth-1.0.0 lib/oauth/request_proxy.rb
oauth-0.6.1 lib/oauth/request_proxy.rb
oauth-0.6.0 lib/oauth/request_proxy.rb