summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZack Hobson2013-12-26 12:47:02 -0800
committerZack Hobson2013-12-26 12:47:02 -0800
commit69cf87a9b35a85a25444590537ec49536f147299 (patch)
treecddaeb01b51e03d4097428baa2d7b4680fb1c2d1
parent874217c87a7a23d82936ca63674548f64afdca2d (diff)
downloadhcl-69cf87a9b35a85a25444590537ec49536f147299.tar.bz2
eliminate dependency on faraday_middleware
-rw-r--r--Gemfile.lock3
-rw-r--r--hcl.gemspec1
-rw-r--r--lib/hcl/harvest_middleware.rb33
-rw-r--r--lib/hcl/net.rb16
4 files changed, 28 insertions, 25 deletions
diff --git a/Gemfile.lock b/Gemfile.lock
index a468bfe..362ea92 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -5,7 +5,6 @@ PATH
chronic
escape_utils
faraday
- faraday_middleware
highline
trollop
yajl-ruby
@@ -19,8 +18,6 @@ GEM
fakeweb (1.3.0)
faraday (0.8.8)
multipart-post (~> 1.2.0)
- faraday_middleware (0.9.0)
- faraday (>= 0.7.4, < 0.9)
ffi (1.9.3-java)
highline (1.6.20)
metaclass (0.0.1)
diff --git a/hcl.gemspec b/hcl.gemspec
index 3f41b2f..7dd0fd8 100644
--- a/hcl.gemspec
+++ b/hcl.gemspec
@@ -19,7 +19,6 @@ Gem::Specification.new do |s|
s.add_runtime_dependency 'chronic'
s.add_runtime_dependency 'highline'
s.add_runtime_dependency 'faraday'
- s.add_runtime_dependency 'faraday_middleware'
s.add_runtime_dependency 'yajl-ruby'
s.add_runtime_dependency 'escape_utils'
s.add_development_dependency 'rake'
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