Module: CallLogger::ClassMethods

Defined in:
lib/call_logger.rb

Instance Method Summary collapse

Instance Method Details

#do_log(name, args, &block) ⇒ Object



59
60
61
62
63
64
65
66
# File 'lib/call_logger.rb', line 59

def do_log(name, args, &block)
  logger = ::CallLogger.configuration.logger
  formatter = ::CallLogger.configuration.formatter
  call_wrapper = CallWrapper.new(
    logger: logger, formatter: formatter
  )
  call_wrapper.call(name, args, &block)
end

#log(*methods) ⇒ Object



38
39
40
# File 'lib/call_logger.rb', line 38

def log(*methods)
  wrap_log(self, methods)
end

#log_block(name, &block) ⇒ Object



46
47
48
# File 'lib/call_logger.rb', line 46

def log_block(name, &block)
  do_log(name, [], &block)
end

#log_class(*methods) ⇒ Object



42
43
44
# File 'lib/call_logger.rb', line 42

def log_class(*methods)
  wrap_log(singleton_class, methods)
end

#wrap_log(owner, methods) ⇒ Object



50
51
52
53
54
55
56
57
# File 'lib/call_logger.rb', line 50

def wrap_log(owner, methods)
  wrapper = MethodWrapper.new(owner, self)
  if methods.size == 1 && owner.respond_to?(methods.first)
    wrapper.wrap_single(methods.first)
  else
    wrapper.wrap_multiple(methods)
  end
end