class AfterDo::Logging::StateTransitionAspect

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/state_transition_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/state_transition_aspect.rb, line 19
def log_finish(target_method)
  target_class.after target_method do |*args, object|
    method = "#{target_class}##{target_method}"

    msg = "Finished #{id(object)}transition to #{object.status} " \
      "with #{method}#{format_args(args)}"
    logger.info(msg)
  end
end
log_start(target_method) click to toggle source
# File lib/after_do/logging/state_transition_aspect.rb, line 9
def log_start(target_method)
  target_class.before target_method do |*args, object|
    method = "#{target_class}##{target_method}"

    msg = "Started #{id(object)}transition from #{object.status} " \
      " with #{method}#{format_args(args)}"
    logger.info(msg)
  end
end

Private Instance Methods

format_args(args) click to toggle source
# File lib/after_do/logging/state_transition_aspect.rb, line 35
def format_args(args)
  "(#{args.join(', ')})" if args.any?
end
id(object) click to toggle source
# File lib/after_do/logging/state_transition_aspect.rb, line 39
def id(object)
  "[id=#{object.id}] " if object.respond_to?(:id)
end