類別 YAML::Store
YAML::Store
提供與 PStore
相同的功能,只不過它使用 YAML
來轉儲物件,而不是 Marshal
。
範例¶ ↑
require 'yaml/store' Person = Struct.new :first_name, :last_name people = [Person.new("Bob", "Smith"), Person.new("Mary", "Johnson")] store = YAML::Store.new "test.store" store.transaction do store["people"] = people store["greeting"] = { "hello" => "world" } end
執行上述程式碼後,“test.store” 的內容將會是
--- people: - !ruby/struct:Person first_name: Bob last_name: Smith - !ruby/struct:Person first_name: Mary last_name: Johnson greeting: hello: world
公開類別方法
initialize( file_name, yaml_opts = {} ) 按一下以切換來源
initialize( file_name, thread_safe = false, yaml_opts = {} )
建立新的 YAML::Store
物件,它會將資料儲存在 file_name
中。如果檔案不存在,它會建立檔案。
YAML::Store
物件總是可重入的。但是,如果將 thread_safe 設為 true,它就會變成執行緒安全,但效能會稍微下降。
透過 Hash#to_yaml()
將儲存轉換成 YAML
時,會使用透過 yaml_opts
傳入的選項。
呼叫超類別方法
PStore::new
# File lib/yaml/store.rb, line 53 def initialize( *o ) @opt = {} if o.last.is_a? Hash @opt.update(o.pop) end super(*o) end