class Rage::Deferred::Proxy
def initialize(instance, delay: nil, delay_until: nil)
def initialize(instance, delay: nil, delay_until: nil) @instance = instance @delay = delay @delay_until = delay_until end
def method_missing(method_name, *, **)
def method_missing(method_name, *, **) if @instance.respond_to?(method_name) self.class.define_method(method_name) do |*args, **kwargs| Wrapper.enqueue(@instance, method_name, *args, delay: @delay, delay_until: @delay_until, **kwargs) end send(method_name, *, **) else @instance.public_send(method_name, *, **) end end
def respond_to_missing?(method_name, _)
def respond_to_missing?(method_name, _) @instance.respond_to?(method_name) end