Class: Rack::ActionLogger::Emitter

Inherits:
Object
  • Object
show all
Defined in:
lib/rack/action_logger/emitter.rb

Instance Method Summary collapse

Constructor Details

#initializeEmitter

Returns a new instance of Emitter.



4
5
6
7
8
9
10
11
12
# File 'lib/rack/action_logger/emitter.rb', line 4

def initialize
  @can_emit = !Container.is_emit_started
  unless @can_emit
    Rack::ActionLogger.logger.error("#{self.class} is already defined.")
    Rack::ActionLogger.logger.error("#{Thread.current.backtrace.join("\n")}")
  end
  @emit_adapter = Rack::ActionLogger.configuration.emit_adapter
  @container = Container
end

Instance Method Details

#emit(context = nil) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'lib/rack/action_logger/emitter.rb', line 14

def emit(context=nil)
  @container.is_emit_started = true
  @container.import(context) if context
  result = yield
  emit_all_logs  # emit log unless exception raised
  result
ensure
  @container.clear if @can_emit
end