class AfterDo::Logging::Aspect

Attributes

logger[R]
target_class[R]

Public Class Methods

new(target_class, logger = AfterDo::Logging.logger) click to toggle source
# File lib/after_do/logging/aspect.rb, line 4
def initialize(target_class, logger = AfterDo::Logging.logger)
  @target_class = target_class
  @logger = logger
end

Public Instance Methods

log_finish(target_method) click to toggle source
# File lib/after_do/logging/aspect.rb, line 17
def log_finish(target_method)
  target_class.after target_method do |*args, object|
    method = "#{target_class}##{target_method}"

    log_step('Finished', object, method, args)
  end
end
log_start(target_method) click to toggle source
# File lib/after_do/logging/aspect.rb, line 9
def log_start(target_method)
  target_class.before target_method do |*args, object|
    method = "#{target_class}##{target_method}"

    log_step('Started', object, method, args)
  end
end

Private Instance Methods

id(object) click to toggle source
# File lib/after_do/logging/aspect.rb, line 37
def id(object)
  "[id=#{object.id}]" if object.respond_to?(:id)
end
log_step(prefix, object, method, args) click to toggle source
# File lib/after_do/logging/aspect.rb, line 31
def log_step(prefix, object, method, args)
  arg_text = args.map(&:inspect).join(', ')
  msg = "[Time=#{Time.now}][Thread=#{Thread.current.object_id}]#{prefix}#{id(object)}: #{method}(#{arg_text})"
  logger.info(msg)
end