我想在類變量,以填補從一個文件中的類實例,我已經成功的唯一辦法弄清楚如何做到這一點是一樣的東西類方法中的Ruby實例引用?
a=Thing.new
File.read("filename.ext").each_line do |arguments| #this will => things like @variable=str\n
eval("a.instance_eval {" + arguments.chop + "}") #hence the awkward eval eval chop
end
我唯一的問題已經找到的是,在試圖在一個類的方法來impliment這(在一進入這幾個實例),我不知道如何做到這一點:
class Thing
attr_accessor :variable
def self.method
File.read("filename.ext").each_line do |arguments|
eval("instance.instance_eval{" + arguments.chop + "}") #this line
end
end
end
即參照實例調用該方法。在這種情況下,自我只會成爲事情,那麼有沒有辦法做到這一點?更合適的做法可能是更好的方式去做這個整體。我昨晚纔剛剛學會了Ruby,所以我沒有機會看到一些更爲巧妙的技巧,而且我的語言成熟度有點新鮮。
對於上下文,Thing是遊戲中的角色,從保存文件中加載它的基本值。
一種更好的方式去了解這將是,國際海事組織,使用YAML和馬歇爾它從一個文件。這裏有一篇關於它的好博客文章http://www.skorks.com/2010/04/serializing-and-deserializing-objects-with-ruby/ – iain