Skip to content

Configuration

You can configure Wayfarer by assigning to Wayfarer.config which defaults to:

module Wayfarer
  DEFAULT_CONFIG = {
    redis: {
      url: "redis://localhost:6379/0",
      factory: ->(redis_config) { ::Redis.new(url: redis_config.fetch(:url)) }
    },
    network: {
      agent: :http,
      agents: {
        http: Wayfarer::Networking::HTTP,
        ferrum: Wayfarer::Networking::Ferrum,
        selenium: Wayfarer::Networking::Selenium,
        capybara: Wayfarer::Networking::Capybara
      },
      pool: {
        size: 1,
        timeout: 10
      },
      http_headers: {},
      renew_on: []
    },
    parsing: {
      content_types: {
        "application/json" => Wayfarer::Parsing::JSON,
        "text/html" => [Wayfarer::Parsing::XML, :html],
        "application/xml" => [Wayfarer::Parsing::XML, :xml]
      }
    },
    normalization: {
      remove_www: true,
      remove_trailing_slash: true,
      remove_fragment: true,
      remove_tracking_parameters: true,
      order_query_parameters: true,
      schemes: %w[
        http
        https
      ].to_set,
      tracking_params: %w[
        utm_source
        utm_medium
        utm_term
        utm_content
        utm_campaign
        gclid
        fbclid
        msclkid
        sms_ss
        awesm
        xtor
end