У меня есть модуль под названием AB. Прямо сейчас это выглядит примерно так:
module AB
extend self
def some_method(hash)
....
end
....
end
Мы используем это так: AB.some_method (: thing =>: что угодно,: etc => «Вы поняли идею»). Есть около полдюжины строк, которые пользователь должен передать, и я бы хотел превратить их в динамические методы, чтобы вместо AB.some_method (: thing =>: что угодно ...) они просто вызывали AB. что угодно (...) или AB :: что угодно (...). Я думал, что мог бы сделать это с method_missing, но я думаю, я не понимаю. Я сделал что-то вроде этого:
module AB
def method_missing(name,*args)
super unless THINGS.include?(name.to_s)
...
end
end
Но я никогда не вхожу в этот метод, когда пытаюсь вызвать AB :: как угодно. Я думал о цикле по THINGS и использовании define_method, но я не был уверен, как определить методы, которые принимают аргументы.
Любая помощь приветствуется.