Sha256: 16b6a73e9f927bdb4aa4edceac19c693b4b6dad6fbeee7fbc251354eba7f8021

Contents?: true

Size: 786 Bytes

Versions: 3

Compression:

Stored size: 786 Bytes

Contents

# frozen_string_literal: true

module Trifle
  module Logger
    class Configuration
      attr_accessor :tracer_klass, :callbacks, :bump_every

      def initialize
        @tracer_klass = Trifle::Logger::Tracer::Hash
        @callbacks = { liftoff: [], bump: [], wrapup: [] }
        @bump_every = 15.seconds
      end

      def on_liftoff(tracer)
        @callbacks.fetch(:liftoff, []).map do |c|
          c.call(tracer)
        end
      end

      def on_bump(tracer)
        @callbacks.fetch(:bump, []).map do |c|
          c.call(tracer)
        end
      end

      def on_wrapup(tracer)
        @callbacks.fetch(:wrapup, []).map do |c|
          c.call(tracer)
        end
      end

      def on(event, &block)
        @callbacks[event] << block
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
trifle-logger-0.2.2 lib/trifle/logger/configuration.rb
trifle-logger-0.2.1 lib/trifle/logger/configuration.rb
trifle-logger-0.2.0 lib/trifle/logger/configuration.rb