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