Sha256: abde10eb7f5469e2fd6d7dda1dca9dd0f1a6b271e455bc733cd0f2a6c859fbd3

Contents?: true

Size: 1.2 KB

Versions: 2

Compression:

Stored size: 1.2 KB

Contents

module ActiveHook
  module Server
    class << self
      def configure
        reset
        yield(config)
      end

      def config
        @config ||= Config.new
      end

      def reset
        @config = nil
        @connection_pool = nil
      end
    end

    class Config
      DEFAULTS = {
        workers: 2,
        queue_threads: 2,
        retry_threads: 1,
        redis_url: ENV['REDIS_URL'],
        redis_pool: 5,
        signature_header: 'X-Message-Signature',
        queue_namespace: 'ah:v1:queue',
        retry_namespace: 'ah:v1:retry'
      }.freeze

      attr_accessor :workers, :queue_threads, :retry_threads,
                    :redis_url, :redis_pool, :signature_header,
                    :queue_namespace, :retry_namespace

      def initialize
        DEFAULTS.each { |key, value| send("#{key}=", value) }
      end

      def worker_options
        {
          queue_threads: queue_threads,
          retry_threads: retry_threads
        }
      end

      def manager_options
        {
          workers: workers,
          options: worker_options
        }
      end

      def redis
        {
          size: redis_pool,
          url: redis_url
        }
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
activehook-server-0.1.7 lib/activehook/server/config.rb
activehook-server-0.1.6 lib/activehook/server/config.rb