mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/pstore.rb (PStore::dump, PStore::load): allow subclass
overriding. [ruby-dev:34305] * lib/yaml/store.rb (YAML::Store::marshal_dump_supports_canonical_option?): add a method to support faster PStore. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15964 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
df033c0632
commit
1e8ec51e8f
3 changed files with 26 additions and 5 deletions
|
@ -1,3 +1,11 @@
|
|||
Thu Apr 10 23:08:52 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||
|
||||
* lib/pstore.rb (PStore::dump, PStore::load): allow subclass
|
||||
overriding. [ruby-dev:34305]
|
||||
|
||||
* lib/yaml/store.rb (YAML::Store::marshal_dump_supports_canonical_option?):
|
||||
add a method to support faster PStore.
|
||||
|
||||
Thu Apr 10 20:36:45 2008 Akinori MUSHA <knu@iDaemons.org>
|
||||
|
||||
* misc/rdebug.el, misc/README: Remove rdebug.el as per request
|
||||
|
|
|
@ -399,7 +399,7 @@ class PStore
|
|||
def load_data(file, read_only)
|
||||
if read_only
|
||||
begin
|
||||
table = Marshal.load(file)
|
||||
table = load(file)
|
||||
if !table.is_a?(Hash)
|
||||
raise Error, "PStore file seems to be corrupted."
|
||||
end
|
||||
|
@ -416,7 +416,7 @@ class PStore
|
|||
checksum = EMPTY_MARSHAL_CHECKSUM
|
||||
size = EMPTY_MARSHAL_DATA.size
|
||||
else
|
||||
table = Marshal.load(data)
|
||||
table = load(data)
|
||||
checksum = Digest::MD5.digest(data)
|
||||
size = data.size
|
||||
if !table.is_a?(Hash)
|
||||
|
@ -461,7 +461,7 @@ class PStore
|
|||
if marshal_dump_supports_canonical_option?
|
||||
new_data = Marshal.dump(@table, -1, true)
|
||||
else
|
||||
new_data = Marshal.dump(@table)
|
||||
new_data = dump(@table)
|
||||
end
|
||||
new_checksum = Digest::MD5.digest(new_data)
|
||||
|
||||
|
@ -498,6 +498,19 @@ class PStore
|
|||
file.truncate(0)
|
||||
file.write(data)
|
||||
end
|
||||
|
||||
|
||||
# This method is just a wrapped around Marshal.dump
|
||||
# to allow subclass overriding used in YAML::Store.
|
||||
def dump(table) # :nodoc:
|
||||
Marshal::dump(table)
|
||||
end
|
||||
|
||||
# This method is just a wrapped around Marshal.load.
|
||||
# to allow subclass overriding used in YAML::Store.
|
||||
def load(content) # :nodoc:
|
||||
Marshal::load(content)
|
||||
end
|
||||
end
|
||||
|
||||
# :enddoc:
|
||||
|
|
|
@ -23,7 +23,7 @@ class YAML::Store < PStore
|
|||
YAML::load(content)
|
||||
end
|
||||
|
||||
def load_file(file)
|
||||
YAML::load(file)
|
||||
def marshal_dump_supports_canonical_option?
|
||||
false
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue