diff options
| author | Zack Hobson | 2013-12-26 12:47:02 -0800 | 
|---|---|---|
| committer | Zack Hobson | 2013-12-26 12:47:02 -0800 | 
| commit | 69cf87a9b35a85a25444590537ec49536f147299 (patch) | |
| tree | cddaeb01b51e03d4097428baa2d7b4680fb1c2d1 /lib | |
| parent | 874217c87a7a23d82936ca63674548f64afdca2d (diff) | |
| download | hcl-69cf87a9b35a85a25444590537ec49536f147299.tar.bz2 | |
eliminate dependency on faraday_middleware
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/hcl/harvest_middleware.rb | 33 | ||||
| -rw-r--r-- | lib/hcl/net.rb | 16 | 
2 files changed, 28 insertions, 21 deletions
| diff --git a/lib/hcl/harvest_middleware.rb b/lib/hcl/harvest_middleware.rb index 3e96a99..2b8b307 100644 --- a/lib/hcl/harvest_middleware.rb +++ b/lib/hcl/harvest_middleware.rb @@ -1,19 +1,19 @@ -require 'faraday_middleware/response_middleware' -require 'yajl' -require 'escape_utils' +require 'faraday/middleware' -class HCl::HarvestMiddleware < FaradayMiddleware::ResponseMiddleware -  class Failure < StandardError; end -  class AuthFailure < StandardError; end -  class ThrottleFailure < StandardError -    attr_reader :retry_after -    def initialize env -      @retry_after = env[:response_headers]['retry-after'].to_i -      super "Too many requests! Try again in #{@retry_after} seconds." -    end +class HCl::HarvestMiddleware < Faraday::Middleware +  Faraday.register_middleware harvest: ->{ self } +  MIME_TYPE = 'application/json'.freeze + +  dependency do +    require 'yajl' +    require 'escape_utils'    end    def call(env) +    env[:request_headers]['Accept'] = MIME_TYPE +    env[:request_headers]['Content-Type'] = MIME_TYPE +    env[:body] = Yajl::Encoder.encode(env[:body]) +      @app.call(env).on_complete do |env|        case env[:status]        when 200..299 @@ -44,4 +44,13 @@ class HCl::HarvestMiddleware < FaradayMiddleware::ResponseMiddleware      end    end +  class Failure < StandardError; end +  class AuthFailure < StandardError; end +  class ThrottleFailure < StandardError +    attr_reader :retry_after +    def initialize env +      @retry_after = env[:response_headers]['retry-after'].to_i +      super "Too many requests! Try again in #{@retry_after} seconds." +    end +  end  end diff --git a/lib/hcl/net.rb b/lib/hcl/net.rb index 874240c..28be3c1 100644 --- a/lib/hcl/net.rb +++ b/lib/hcl/net.rb @@ -1,4 +1,4 @@ -require 'faraday_middleware' +require 'faraday'  module HCl    module Net @@ -20,28 +20,26 @@ module HCl          end        end -      def faraday -        @faraday ||= Faraday.new( +      def http +        @http ||= Faraday.new(            "http#{ssl && 's'}://#{subdomain}.harvestapp.com"          ) do |f| -          f.headers['Accept'] = 'application/json' -          f.request :json            f.request :basic_auth, login, password -          f.use HCl::HarvestMiddleware, content_type: /\bjson\b/ +          f.use :harvest            f.adapter Faraday.default_adapter          end        end        def get action -        faraday.get(action).body +        http.get(action).body        end        def post action, data -        faraday.post(action, data).body +        http.post(action, data).body        end        def delete action -        faraday.delete(action).body +        http.delete(action).body        end      end    end | 
