diff options
author | tenderlove <tenderlove@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-04-11 01:21:29 +0000 |
---|---|---|
committer | tenderlove <tenderlove@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-04-11 01:21:29 +0000 |
commit | 48a68756f5813a078d3c69a4180a9102208f953b (patch) | |
tree | f750d83fcd4a0e071a19ce00591907da10d317b9 /lib/yaml/store.rb | |
parent | 5a7b5e70587a5b0fdd0fc1bbfa0d98d665e70970 (diff) | |
download | ruby-48a68756f5813a078d3c69a4180a9102208f953b.tar.gz |
* ext/syck/lib/syck/dbm.rb: moved to lib/yaml/dbm.rb since it is not
YAML engine specific
* ext/syck/lib/syck/store.rb: moved to lib/yaml/store.rb since it is not
YAML engine specific.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27294 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/yaml/store.rb')
-rw-r--r-- | lib/yaml/store.rb | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/lib/yaml/store.rb b/lib/yaml/store.rb new file mode 100644 index 0000000000..a7f8a5657d --- /dev/null +++ b/lib/yaml/store.rb @@ -0,0 +1,43 @@ +# +# YAML::Store +# +require 'yaml' +require 'pstore' + +class YAML::Store < PStore + def initialize( *o ) + @opt = {} + if String === o.first + super(o.shift) + end + if o.last.is_a? Hash + @opt.update(o.pop) + end + end + + def dump(table) + @table.to_yaml(@opt) + end + + def load(content) + table = YAML.load(content) + if table == false + {} + else + table + end + end + + def marshal_dump_supports_canonical_option? + false + end + + EMPTY_MARSHAL_DATA = {}.to_yaml + EMPTY_MARSHAL_CHECKSUM = Digest::MD5.digest(EMPTY_MARSHAL_DATA) + def empty_marshal_data + EMPTY_MARSHAL_DATA + end + def empty_marshal_checksum + EMPTY_MARSHAL_CHECKSUM + end +end |