class CallLogger::CallWrapper

Attributes

formatter[R]
logger[R]

Public Class Methods

new(formatter:, logger: ) click to toggle source
# File lib/call_logger/call_wrapper.rb, line 7
def initialize(formatter:, logger: )
  @formatter = formatter
  @logger = logger
end

Public Instance Methods

call(name, args) { || ... } click to toggle source
# File lib/call_logger/call_wrapper.rb, line 12
def call(name, args)
  logger.call(formatter.before(name, args))
  result = nil
  seconds = Benchmark.realtime { result = yield }
  logger.call(formatter.after(name, result, seconds: seconds))
  result
rescue StandardError => e
  logger.call(formatter.error(name, e))
  raise
end