我正在制作一个基于鞋子的Ruby GUI应用程序。它只包含一个类:
class Note
attr_reader :text, :title, :color
def initialize(text,title,color)
@text = text
@title = title
@color = color
end
end
和类型为
的对象数组notes = [] OR notes = Array.new
我要做的是保存并加载这个数组到磁盘。请帮助。我打算在外表上做这件事,而不涉及背景细节。
Marshal是有用的,但是在类中使用它似乎有点令人头痛。
请帮
如果只导出/导入静态数据,则添加封送功能很容易:
class Note
attr_reader :text, :title, :color
def initialize(text,title,color)
@text = text
@title = title
@color = color
end
def marshal_dump
[@text, @title, @color]
end
def marshal_load(array)
@text, @title, @color = array
end
end
为了方便保存和加载数据,我总是推荐使用标准库中的YAML::Store
。
您可以在我的番茄跟踪器中看到YAML::Store
的示例实现
你可以使用它作为一个大哈希,你有键和对象,然后正确序列化/反序列化简单的ruby对象,如你的Note
类。代码不一定要进入对象,而是要进入存储区。