2012-02-29 87 views
0

我在模块中动态创建一个类及其中的所有内容。在模块中创建的访问类

(我离开了一切,但创建类的..)

在“test.rb”

module Model 

    def generate(input) 
     eval(" 
      class #{titleString}; 
       def initialize(#{attrStr}); 
        #{instVar} 
       end; 

       #{attrMethString}; 

      end 
     ") 
    end 
    extend self 
end 

然后我加载另一个Ruby文件的模块,“创建.rb'

require 'test.rb' 

Person = Model.generate('sample.txt') 

其中'sample.txt'包含创建类的信息。

我“达到”,并从内“test.rb”类创建实例,如:

p = Person.new('Joe', 22, 178,'New kid') 

当类被实例化,我可以将对象传递给“create.rb”

但我想要做的,是从“create.rb”“到达”之类,还有创建对象..

是否有可能未实例化类分配给一个变量,然后通过它?

+1

如果这样解决了,然后单击下一步打勾你的答案。 – 2012-05-07 03:19:25

回答

0

的solotuion是返回类的名称作为常数.. **

eval("return #{titleString}")