Sha256: 9343dff8a03303c2ab43d4a0b30e0cc23cad8775b2d5a630e73583557854efc8

Contents?: true

Size: 901 Bytes

Versions: 1

Compression:

Stored size: 901 Bytes

Contents

require "logger"

require "racecar/null_instrumenter"
require "racecar/consumer"
require "racecar/consumer_set"
require "racecar/runner"
require "racecar/config"
require "ensure_hash_compact"

module Racecar
  class Error < StandardError
  end

  class ConfigError < Error
  end

  def self.config
    @config ||= Config.new
  end

  def self.config=(config)
    @config = config
  end

  def self.configure
    yield config
  end

  def self.logger
    config.logger
  end

  def self.logger=(logger)
    config.logger = logger
  end

  def self.instrumenter
    require "active_support/notifications"

    ActiveSupport::Notifications
  rescue LoadError
    logger.warn "ActiveSupport::Notifications not available, instrumentation is disabled"

    NullInstrumenter
  end

  def self.run(processor)
    Runner.new(processor, config: config, logger: logger, instrumenter: instrumenter).run
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
racecar-2.0.0.beta1 lib/racecar.rb