lib/her/api.rb in her-0.2.1 vs lib/her/api.rb in her-0.2.2
- old
+ new
@@ -1,18 +1,16 @@
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
+ attr_reader :base_uri, :middleware, :connection
# Setup a default API connection. Accepted arguments and options are the same as {API#setup}.
- def self.setup(attrs={}) # {{{
+ def self.setup(attrs={}, &block) # {{{
@@default_api = new
- connection = @@default_api.setup(attrs)
- yield connection.builder if block_given?
- connection
+ @@default_api.setup(attrs, &block)
end # }}}
# Setup the API connection.
#
# @param [Hash] attrs the options to create a message with
@@ -58,22 +56,15 @@
@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 |builder|
- middleware.each do |item|
- klass = item.is_a?(Hash) ? item.keys.first : item
- args = item.is_a?(Hash) ? item.values.first : nil
- if args
- builder.use klass, args
- else
- builder.use klass
- end
+ @connection = Faraday.new(:url => @base_uri) do |connection|
+ middleware.each do |klass|
+ connection.use klass
end
+ yield connection.builder if block_given?
end
- yield @connection.builder if block_given?
- @connection
end # }}}
# Define a custom parsing procedure. The procedure is passed the response object and is
# expected to return a hash with three keys: a main data Hash, an errors Array
# and a metadata Hash.