В определении класса ruby я хочу определить генератор методов.Скажите нам, что каждый метод, который я хочу сгенерировать, отличается по символу и количеству параметров.Итак, у меня есть что-то вроде этого:
def self.my_define_service1(name) # generate for 1 parameter
define_method(name) do |p1|
# basic stuff
call(name.intern, p1)
end
end
def self.my_define_service2(name) # generate for 1 parameter
define_method(name) do |p1, p2|
# basic stuff
call(name.intern, p1,p2)
end
end
# and so on ... many definitions as the number of parameters I have
call
- это метод типа диспетчера, который получает имя символа и параметры.
Мой вопрос: можно ли написать только генератор?Примерно так
def self.my_define_service(name, *args)
define_method(name) do |args| # <-- how to do here?
# basic stuff
call(name.intern, *args)
end
end
и если ответ утвердительный, то как?