Sha256: 88830e11d4a0184a9943dcf53182724abcb2f142e847d324547dfd195d06a476

Contents?: true

Size: 1.36 KB

Versions: 10

Compression:

Stored size: 1.36 KB

Contents

unless RestClient.const_defined? :OAUTH_EXTENSION
  RestClient::OAUTH_EXTENSION = lambda do |request, args|
    if args[:oauth]
      uri             = URI.parse args[:url]
      default_options = { :site               => "#{uri.scheme}://#{uri.host}:#{uri.port.to_s}",
                          :request_token_path => "",
                          :authorize_path     => "",
                          :access_token_path  => "" }
      options         = default_options.merge args[:oauth][:options] || { }
      consumer        = OAuth::Consumer.new(args[:oauth][:consumer_key], args[:oauth][:consumer_secret], options)


      method_to_http_request = { :get    => Net::HTTP::Get,
                                 :post   => Net::HTTP::Post,
                                 :put    => Net::HTTP::Put,
                                 :delete => Net::HTTP::Delete }

      http_request = method_to_http_request[args[:method]].
          new(args[:url]) # create Net::HTTPRequest to get oauth header,
                          # because RestClient::Request is not supported by Oauth
      consumer.sign!(http_request)
      request['Authorization'] = http_request['Authorization'] # add oauth header to rest_client request
    end
  end
end

unless RestClient.before_execution_procs.include? RestClient::OAUTH_EXTENSION
  RestClient.add_before_execution_proc &RestClient::OAUTH_EXTENSION
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
foreman_api-0.0.6 lib/foreman_api/rest_client_oauth.rb
foreman_api-0.0.5 lib/foreman_api/rest_client_oauth.rb
foreman_api-0.0.4 lib/foreman_api/rest_client_oauth.rb
foreman_api-0.0.3 lib/foreman_api/rest_client_oauth.rb
apipie-rails-0.0.11 lib/apipie/client/template/rest_client_oauth.rb.tt
foreman_api-0.0.2 lib/foreman_api/rest_client_oauth.rb
apipie-rails-0.0.10 lib/apipie/client/template/rest_client_oauth.rb.tt
foreman_api-0.0.1 lib/foreman_api/rest_client_oauth.rb
apipie-rails-0.0.9 lib/apipie/client/template/rest_client_oauth.rb.tt
apipie-rails-0.0.8 lib/apipie/client/template/rest_client_oauth.rb.tt