Ниже образцов модулей (n номеров), которые я использую в своем проекте с тем же именем (-ами) метода с другим возвращаемым значением (префикс с именем модуля).ruby-define модули динамически
module Example1
def self.ex_method
'example1_with_'
end
end
module Example2
def self.ex_method
'example2_with_'
end
end
Я попытался выполнить это, используя метод метапрограммирования, например #define_method. Но это не работает для меня. Есть ли способ сделать это?
array.each do |name|
Object.class_eval <<TES
module #{name}
def self.ex_method
"#{name.downcase}_with_"
end
end
TES
end
оснастка Ошибки: Вы могли видеть в последней строке говорит, что это не закончено.
"не работает" не хорошее определение. В чем проблема? Какие сообщения об ошибках вы получили? –
Нет ошибок. Когда я попытался в 'irb', команда говорит, но метод не закрывается концом. Почему «нехорошее определение»? –
Почему это не хорошее определение? Потому что вы не даете никаких подробностей о сообщении об ошибке, таком как stacktrace или так. Предоставьте как можно больше (релевантных) деталей, чтобы мы могли легко понять проблему. Возможно, вы можете пролить свет на ПОЧЕМУ вы хотите реализовать что-то подобное? –