Sha256: 3ecc55528cefbe6378e6e97fa1f6083e0daf10691408e9cf14162c0d722c773a

Contents?: true

Size: 1000 Bytes

Versions: 1

Compression:

Stored size: 1000 Bytes

Contents

module WP
  module HMAC
    class Client
      def initialize(url = nil, app = Rack::Client::Handler::NetHTTP)
        build_rack_client(url, app)
      end

      def build_rack_client(url, app)
        id = key_cabinet.id
        auth_key = key_cabinet.auth_key

        @client = Rack::Client.new(url) do
          use Rack::Config do |env|
            env['HTTP_DATE'] = Time.zone.now.httpdate
          end
          use EY::ApiHMAC::ApiAuth::Client, id, auth_key
          run app
        end
        @client
      end

      def method_missing(method_missing, *args, &block)
        @client.send(method_missing, *args, &block)
      end

      def key_cabinet
        @key_cabinet ||= HMAC::KeyCabinet.find_by_auth_id(HMAC.auth_id)
      end

      class << self
        %i(delete get head options post put).each do |method|
          define_method(method) do |*args|
            client = Client.new
            client.send(method, *args)
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
wp-hmac-0.0.1 lib/wp/hmac/client.rb