У меня есть программа на Ruby, которая генерирует файлы, содержащие определение модуля:
# try.rb module Test class F1 def initialize arg @arg=arg end end end
Теперь я бы хотел, чтобы та же программа создавала экземпляры F1.
Какая идиома для этого?
load или require файл:
load
require
load 'path/to/try.rb'
, затем вы можете использовать Object.const_get, чтобы получить ссылку на объект класса, и использовать его для создания экземпляра:
Object.const_get
cls = Object.const_get('Test').const_get('F1') obj = cls.new('foo')