Sha256: cdb7834e0be8f37bd6bca95c50ff8ebe571d90f68414c7998f1f6bf2797bc3ca

Contents?: true

Size: 884 Bytes

Versions: 7

Compression:

Stored size: 884 Bytes

Contents

require "logger"

require "racecar/consumer"
require "racecar/runner"
require "racecar/config"

module Racecar
  # Ignores all instrumentation events.
  class NullInstrumenter
    def self.instrument(*)
      yield if block_given?
    end
  end

  class Error < StandardError
  end

  class ConfigError < Error
  end

  def self.config
    @config ||= Config.new
  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

7 entries across 7 versions & 1 rubygems

Version Path
racecar-1.0.0 lib/racecar.rb
racecar-0.5.0 lib/racecar.rb
racecar-0.5.0.beta2 lib/racecar.rb
racecar-0.5.0.beta1 lib/racecar.rb
racecar-0.4.2 lib/racecar.rb
racecar-0.4.1 lib/racecar.rb
racecar-0.4.0 lib/racecar.rb