module RuboCop::SimpleForwardable
def def_delegators(accessor, *methods)
def def_delegators(accessor, *methods) methods.each do |method| if method.end_with?('=') && method.to_s != '[]=' # Defining a delegator for `foo=` can't use `foo=(...)` because it is a # syntax error. Fall back to doing a slower `public_send` instead. # TODO: Use foo(method, ...) when Ruby 3.1 is required. class_eval(<<~RUBY, __FILE__, __LINE__ + 1) def #{method}(*args, **kwargs, &blk) # def example=(*args, **kwargs, &blk) #{accessor}.public_send(:#{method}, *args, **kwargs, &blk) # foo.public_send(:example=, *args, **kwargs, &blk) end # end RUBY else class_eval(<<~RUBY, __FILE__, __LINE__ + 1) def #{method}(...) # def example(...) #{accessor}.#{method}(...) # foo.example(...) end # end RUBY end end end