http://blog.grayproductions.net/articles/2006/07/30/pstore-meets-yaml
看了这片短文有点惊讶
Pstore应该是
将Ruby对象存入外部文件------比如磁盘文件时使用的类。该类内部使用了Marshal。
Java和PHP类似的做法叫序列化
http://rubycn.ce-lab.net/man/addlib/PStore.html
[code]db = PStore.new("/tmp/foo")
db.transaction do
p db.roots
ary = db["root"] = [1,2,3,4]
ary[0] = [1,1.5]
end
db.transaction do
p db["root"]
end[/code]
必须在transaction块内部访问数据库。其接口类似于Hash。
另外的例子
对象“H”实例化后存储在“/tmp/rb”中,之后便可以直接打开读取该实例的属性和操作该实例方法。
http://www.cnzxh.net/blog/Index.php?month=2005-12&catalogId=0&key=
[code]#!/usr/bin/env ruby
require 'pstore'
path = '/tmp/rb'
class H
attr_accessor :a
attr_accessor :b
attr_accessor :c
def initialize
@a, @b, @c = 3, "abc", ["arr", "ay"]
end
public
def test
@c.join
end
end
#写入
ps = PStore.new(path)
ps.transaction {|x|
x['H'] = H.new
}
ps = nil
#读取
PStore.new(path).transaction {|x|
h = x['H']
puts h.a
puts h.b
puts h.test
}[/code]
YAML 也可以被 PS,
拉郎配, 生硬
看了这片短文有点惊讶
Pstore应该是
将Ruby对象存入外部文件------比如磁盘文件时使用的类。该类内部使用了Marshal。
Java和PHP类似的做法叫序列化
http://rubycn.ce-lab.net/man/addlib/PStore.html
[code]db = PStore.new("/tmp/foo")
db.transaction do
p db.roots
ary = db["root"] = [1,2,3,4]
ary[0] = [1,1.5]
end
db.transaction do
p db["root"]
end[/code]
必须在transaction块内部访问数据库。其接口类似于Hash。
另外的例子
对象“H”实例化后存储在“/tmp/rb”中,之后便可以直接打开读取该实例的属性和操作该实例方法。
http://www.cnzxh.net/blog/Index.php?month=2005-12&catalogId=0&key=
[code]#!/usr/bin/env ruby
require 'pstore'
path = '/tmp/rb'
class H
attr_accessor :a
attr_accessor :b
attr_accessor :c
def initialize
@a, @b, @c = 3, "abc", ["arr", "ay"]
end
public
def test
@c.join
end
end
#写入
ps = PStore.new(path)
ps.transaction {|x|
x['H'] = H.new
}
ps = nil
#读取
PStore.new(path).transaction {|x|
h = x['H']
puts h.a
puts h.b
puts h.test
}[/code]
YAML 也可以被 PS,
拉郎配, 生硬