lib/her/api.rb in her-0.2.3 vs lib/her/api.rb in her-0.2.4
- old
+ new
@@ -1,11 +1,11 @@
module Her
# This class is where all HTTP requests are made. Before using Her, you must configure it
# so it knows where to make those requests. In Rails, this is usually done in `config/initializers/her.rb`:
class API
# @private
- attr_reader :base_uri, :middleware, :connection
+ attr_reader :base_uri, :connection
# Setup a default API connection. Accepted arguments and options are the same as {API#setup}.
def self.setup(attrs={}, &block) # {{{
@@default_api = new
@@default_api.setup(attrs, &block)
@@ -13,13 +13,10 @@
# Setup the API connection.
#
# @param [Hash] attrs the options to create a message with
# @option attrs [String] :base_uri The main HTTP API root (eg. `https://api.example.com`)
- # @option attrs [Array, Class] :middleware **Deprecated** A list of the only middleware Her will use
- # @option attrs [Array, Class] :add_middleware **Deprecated** A list of middleware to add to Her’s default middleware
- # @option attrs [Class] :parse_middleware **Deprecated** A middleware that will replace {Her::Middleware::FirstLevelParseJSON} to parse the received JSON
#
# @return Faraday::Connection
#
# @example Setting up the default API connection
# Her::API.setup :base_uri => "https://api.example"
@@ -48,22 +45,11 @@
# builder.delete Her::Middleware::DefaultParseJSON
# builder.use MyCustomParser
# end
def setup(attrs={}) # {{{
@base_uri = attrs[:base_uri]
- @middleware = Her::API.default_middleware
-
- @middleware = [attrs[:middleware]] if attrs[:middleware]
- @middleware = [attrs[:add_middleware]] + @middleware if attrs[:add_middleware]
- @middleware = [attrs[:parse_middleware]] + @middleware.reject { |item| item == Her::Middleware::FirstLevelParseJSON } if attrs[:parse_middleware]
-
- @middleware.flatten!
- middleware = @middleware
@connection = Faraday.new(:url => @base_uri) do |connection|
- middleware.each do |klass|
- connection.use klass
- end
yield connection.builder if block_given?
end
end # }}}
# Define a custom parsing procedure. The procedure is passed the response object and is
@@ -90,13 +76,8 @@
private
# @private
def self.default_api(attrs={}) # {{{
defined?(@@default_api) ? @@default_api : nil
- end # }}}
-
- # @private
- def self.default_middleware # {{{
- [Her::Middleware::FirstLevelParseJSON, Faraday::Request::UrlEncoded, Faraday::Adapter::NetHttp]
end # }}}
end
end