Class | Logging::Proxy |
In: |
lib/logging/proxy.rb
|
Parent: | Object |
Defines a Proxy that will log all method calls on the proxied object. This class uses method_missing on a "blank slate" object to intercept all method calls. The method name being called and the arguments are all logged to the proxied object‘s logger instance. The log level and other settings for the proxied object are honored by the Proxy instance.
If you want, you can also supply your own method_missing code as a block to the constructor.
Proxy.new(object) do |name, *args, &block| # code to be executed before the proxied method result = @object.send(name, *args, &block) # code to be executed after the proxied method result # <-- always return the result end
The proxied object is available as the "@object" variable. The logger is available as the "@logger" variable.
Create a new proxy for the given object. If an optional block is given it will be called before the proxied method. This block will replace the method_missing implementation