Skip to main content

dynamic_delegator_generation

🧩 Generating delegators on the fly​

Automate delegate declarations by reading a list of methods and creating delegators via Module#define_method and send, customizing targets dynamically.

module DynamicDelegator
def delegate_methods(target, *methods)
methods.each do |m|
define_method(m) { |*args| send(target).public_send(m, *args) }
end
end
end

class Presenter
extend DynamicDelegator
delegate_methods :model, :name, :email
end