class ThreeScaleToolbox::ProxyLogger

Public Class Methods

new(subject) click to toggle source
# File lib/3scale_toolbox/proxy_logger.rb, line 3
def initialize(subject)
  @subject = subject
end

Public Instance Methods

method_missing(name, *args) click to toggle source
# File lib/3scale_toolbox/proxy_logger.rb, line 7
def method_missing(name, *args)
  # Correct delegation https://eregon.me/blog/2021/02/13/correct-delegation-in-ruby-2-27-3.html
  start_time = ::Process.clock_gettime(::Process::CLOCK_MONOTONIC)
  result = @subject.public_send(name, *args)
ensure
  end_time = ::Process.clock_gettime(::Process::CLOCK_MONOTONIC) - start_time
  ::Kernel.warn "-- call #{name} args |#{args.inspect[0..2000]}| response |#{result.inspect[0..2000]}| - (#{end_time}s)"
  result
end
public_send(name, *args) click to toggle source
# File lib/3scale_toolbox/proxy_logger.rb, line 18
def public_send(name, *args)
  method_missing(name, *args)
end
respond_to_missing?(method_name, include_private = false) click to toggle source
Calls superclass method
# File lib/3scale_toolbox/proxy_logger.rb, line 22
def respond_to_missing?(method_name, include_private = false)
  super
end