Sha256: b321cf5b21b8b02412665afc02908b41d5eb793623a824765f82e49674882601

Contents?: true

Size: 1.24 KB

Versions: 1

Compression:

Stored size: 1.24 KB

Contents

# frozen_string_literal: true

require "anyway_config"
require_relative "middleware/chain"
require_relative "middleware/logger"

module Sniffer
  # Sniffer configuration
  class Config < Anyway::Config
    config_name :sniffer

    attr_config logger: Logger.new($stdout),
                severity: Logger::Severity::DEBUG,
                log: {
                  request_url: true,
                  request_headers: true,
                  request_body: true,
                  request_method: true,
                  response_status: true,
                  response_headers: true,
                  response_body: true,
                  timing: true
                },
                store: true,
                enabled: false,
                url_whitelist: nil,
                url_blacklist: nil

    def middleware
      @middleware ||= Middleware::Chain.new.tap do |chain|
        chain.add(Sniffer::Middleware::Logger, logger, severity)
      end

      yield @middleware if block_given?
      @middleware
    end

    def capacity?
      store.is_a?(Hash) && store.key?(:capacity)
    end

    def capacity
      store.fetch(:capacity).to_i
    end

    def rotate?
      return false unless capacity?

      store.fetch(:rotate, true)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sniffer-0.5.0 lib/sniffer/config.rb