module MercuryParser::Connection

Private Instance Methods

connection(options = {}) click to toggle source

Returns a Faraday::Connection object

@return [Faraday::Connection]

# File lib/mercury_parser/connection.rb, line 14
def connection(options = {})
  options = {
    :url => MercuryParser.api_endpoint
  }.merge(options)

  connection = Faraday.new(options) do |c|
    # encode request params as "www-form-urlencoded"
    c.use Faraday::Request::UrlEncoded

    c.use FaradayMiddleware::FollowRedirects, limit: 3

    # raise exceptions on 40x, 50x responses
    c.use Faraday::Response::RaiseError

    c.response :xml, :content_type => /\bxml$/
    c.response :json, :content_type => /\bjson$/

    c.adapter Faraday.default_adapter
  end

  connection.headers[:user_agent] = MercuryParser.user_agent

  connection
end