Próbuję dowiedzieć się, jak tworzyć dynamicznie metodyRuby metoda class_eval
class MyClass
def initialize(dynamic_methods)
@arr = Array.new(dynamic_methods)
@arr.each { |m|
self.class.class_eval do
def m(*value)
puts value
end
end
}
end
end
tmp = MyClass.new ['method1', 'method2', 'method3']
Niestety to tylko tworzy metoda m, ale trzeba utworzyć metody oparte na wartości m, pomysły?
Dzięki, dokładnie to, czego potrzebowałem – Bob
Możesz zauważyć, że musisz być bardziej ostrożny o drugiej metodzie, np. unikaj kodu, takiego jak https://github.com/rails/rails/blob/f1d8f2af72e21d41efd02488f1c2dcf829e17783/actionpack/lib/action_dispatch/routing/route_set.rb#L188-200 –