[前][次][番号順一覧][スレッド一覧]

ruby-changes:4473

From: ko1@a...
Date: Thu, 10 Apr 2008 23:10:35 +0900 (JST)
Subject: [ruby-changes:4473] matz - Ruby:r15964 (trunk): * lib/pstore.rb (PStoRe: :dump, PStore::load): allow subclass

matz	2008-04-10 23:10:19 +0900 (Thu, 10 Apr 2008)

  New Revision: 15964

  Modified files:
    trunk/ChangeLog
    trunk/lib/pstore.rb
    trunk/lib/yaml/store.rb

  Log:
    * 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.

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15964&r2=15963&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/yaml/store.rb?r1=15964&r2=15963&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/pstore.rb?r1=15964&r2=15963&diff_format=u

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 15963)
+++ ChangeLog	(revision 15964)
@@ -1,3 +1,11 @@
+Thu Apr 10 23:08:52 2008  Yukihiro Matsumoto  <matz@r...>
+
+	* 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@i...>
 
 	* misc/rdebug.el, misc/README: Remove rdebug.el as per request
Index: lib/pstore.rb
===================================================================
--- lib/pstore.rb	(revision 15963)
+++ lib/pstore.rb	(revision 15964)
@@ -399,7 +399,7 @@
   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 @@
         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 @@
     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 @@
     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:
Index: lib/yaml/store.rb
===================================================================
--- lib/yaml/store.rb	(revision 15963)
+++ lib/yaml/store.rb	(revision 15964)
@@ -23,7 +23,7 @@
     YAML::load(content)
   end
 
-  def load_file(file)
-    YAML::load(file)
+  def marshal_dump_supports_canonical_option?
+    false
   end
 end

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]