Sha256: 3f88be4fdb015a28761a6378abe20ee856c44f54561e965870a98f5535f389cd
Contents?: true
Size: 1.64 KB
Versions: 1
Compression:
Stored size: 1.64 KB
Contents
require 'active_support/cache' require 'faraday_middleware' require 'faraday_middleware/response_middleware' require 'pupa/processor/middleware/logger' require 'pupa/processor/middleware/parse_html' require 'pupa/refinements/faraday_middleware' using Pupa::Refinements::FaradayMiddleware module Pupa class Processor # An HTTP client factory. class Client # Returns a configured Faraday HTTP client. # # @param [String] cache_dir a directory in which to cache requests # @param [Integer] expires_in the cache's expiration time in seconds # @param [String] level the log level # @return [Faraday::Connection] a configured Faraday HTTP client def self.new(cache_dir: nil, expires_in: 86400, level: 'INFO') # 1 day Faraday.new do |connection| connection.request :url_encoded connection.use Middleware::Logger, Logger.new('faraday', level: level) # @see http://tools.ietf.org/html/rfc2854 # @see http://tools.ietf.org/html/rfc3236 connection.use Middleware::ParseHtml, content_type: %w(text/html application/xhtml+xml) # @see http://tools.ietf.org/html/rfc4627 connection.use FaradayMiddleware::ParseJson, content_type: /\bjson$/ # @see http://tools.ietf.org/html/rfc3023 connection.use FaradayMiddleware::ParseXml, content_type: /\bxml$/ if cache_dir connection.response :caching do ActiveSupport::Cache::FileStore.new(cache_dir, expires_in: expires_in) end end connection.adapter Faraday.default_adapter # must be last end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pupa-0.0.1 | lib/pupa/processor/client.rb |