Sha256: 03c5e1e6730de267c917ee94f54f5171137131252c562d091c6db11bffafa246

Contents?: true

Size: 1.07 KB

Versions: 5

Compression:

Stored size: 1.07 KB

Contents

module Troo
  module API
    class Headers
      class << self
        # @param  [String]
        # @param  [Hash]
        # @return [Hash]
        def build!(uri, headers = {})
          new(uri, headers).build!
        end
      end

      # @param  [String]
      # @param  [Hash]
      # @return [Troo::API::Headers]
      def initialize(uri, headers = {})
        @uri, @headers = uri, headers
      end

      # @return [Hash]
      def build!
        defaults.merge!(@headers)
      end

      private

      attr_reader :uri

      def defaults
        {
          'Authorization' => consumer.sign!(wrapper, application)
        }
      end

      def application
        OAuth::Token.new(Troo.configuration.api_oauth_token,
                         Troo.configuration.api_oauth_token_secret)
      end

      def wrapper
        Net::HTTP::Get.new(uri)
      end

      def consumer
        OAuth::Consumer.new(Troo.configuration.api_key,
                            Troo.configuration.api_token,
                            OAuthSettings.new(uri: uri).to_hash)
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
troo-0.0.15 lib/troo/api/headers.rb
troo-0.0.14 lib/troo/api/headers.rb
troo-0.0.13 lib/troo/api/headers.rb
troo-0.0.12 lib/troo/api/headers.rb
troo-0.0.11 lib/troo/api/headers.rb