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.