ruby-changes:5164
From: nobu <ko1@a...>
Date: Wed, 28 May 2008 15:20:07 +0900 (JST)
Subject: [ruby-changes:5164] Ruby:r16659 (ruby_1_8, trunk): * lib/singleton.rb (SingletonClassMethods): _load should be public.
nobu 2008-05-28 15:18:18 +0900 (Wed, 28 May 2008)
New Revision: 16659
Modified files:
branches/ruby_1_8/ChangeLog
branches/ruby_1_8/lib/singleton.rb
trunk/ChangeLog
trunk/lib/singleton.rb
Log:
* lib/singleton.rb (SingletonClassMethods): _load should be public.
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/lib/singleton.rb?r1=16659&r2=16658&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/singleton.rb?r1=16659&r2=16658&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ChangeLog?r1=16659&r2=16658&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=16659&r2=16658&diff_format=u
Index: ChangeLog
===================================================================
--- ChangeLog (revision 16658)
+++ ChangeLog (revision 16659)
@@ -1,3 +1,7 @@
+Wed May 28 15:18:16 2008 Nobuyoshi Nakada <nobu@r...>
+
+ * lib/singleton.rb (SingletonClassMethods): _load should be public.
+
Wed May 28 13:30:43 2008 NARUSE, Yui <naruse@r...>
* enc/trans/japanese.c: add workarround for Unicode to CP932.
Index: lib/singleton.rb
===================================================================
--- lib/singleton.rb (revision 16658)
+++ lib/singleton.rb (revision 16659)
@@ -30,7 +30,7 @@
# * Klass.new and Klass.allocate - as private
#
# Providing (or modifying) the class methods
-# * Klass.inherited(sub_klass) and Klass.clone() -
+# * Klass.inherited(sub_klass) and Klass.clone() -
# to ensure that the Singleton pattern is properly
# inherited and cloned.
#
@@ -70,32 +70,32 @@
def dup
raise TypeError, "can't dup instance of singleton #{self.class}"
end
-
- private
+ private
+
# default marshalling strategy
- def _dump(depth = -1)
+ def _dump(depth = -1)
''
end
- module SingletonClassMethods
+ module SingletonClassMethods
# properly clone the Singleton pattern - did you know
- # that duping doesn't copy class methods?
+ # that duping doesn't copy class methods?
def clone
Singleton.__init__(super)
end
+ def _load(str)
+ instance
+ end
+
private
-
- # ensure that the Singleton pattern is properly inherited
+
+ # ensure that the Singleton pattern is properly inherited
def inherited(sub_klass)
super
Singleton.__init__(sub_klass)
end
-
- def _load(str)
- instance
- end
end
class << Singleton
@@ -114,12 +114,12 @@
end
klass
end
-
+
private
# extending an object with Singleton is a bad idea
undef_method :extend_object
-
+
def append_features(mod)
# help out people counting on transitive mixins
unless mod.instance_of?(Class)
@@ -127,7 +127,7 @@
end
super
end
-
+
def included(klass)
super
klass.private_class_method :new, :allocate
@@ -135,7 +135,7 @@
Singleton.__init__(klass)
end
end
-
+
end
@@ -143,14 +143,14 @@
def num_of_instances(klass)
"#{ObjectSpace.each_object(klass){}} #{klass} instance(s)"
-end
+end
# The basic and most important example.
class SomeSingletonClass
include Singleton
end
-puts "There are #{num_of_instances(SomeSingletonClass)}"
+puts "There are #{num_of_instances(SomeSingletonClass)}"
a = SomeSingletonClass.instance
b = SomeSingletonClass.instance # a and b are same object
@@ -173,23 +173,23 @@
puts "initialize called by thread ##{Thread.current[:i]}"
end
end
-
+
class << Ups
def _instantiate?
@enter.push Thread.current[:i]
while false.equal?(@singleton__instance__)
@singleton__mutex__.unlock
- sleep 0.08
+ sleep 0.08
@singleton__mutex__.lock
end
@leave.push Thread.current[:i]
@singleton__instance__
end
-
+
def __sleep
sleep(rand(0.08))
end
-
+
def new
begin
__sleep
@@ -201,12 +201,12 @@
end
end
end
-
+
def instantiate_all
@enter = []
@leave = []
- 1.upto(9) {|i|
- Thread.new {
+ 1.upto(9) {|i|
+ Thread.new {
begin
Thread.current[:i] = i
__sleep
@@ -296,7 +296,7 @@
class Down < Middle; end
puts "and basic \"Down test\" is #{Down.instance == Down.instance}\n
-Various exceptions"
+Various exceptions"
begin
module AModule
Index: ruby_1_8/ChangeLog
===================================================================
--- ruby_1_8/ChangeLog (revision 16658)
+++ ruby_1_8/ChangeLog (revision 16659)
@@ -1,3 +1,7 @@
+Wed May 28 15:18:16 2008 Nobuyoshi Nakada <nobu@r...>
+
+ * lib/singleton.rb (SingletonClassMethods): _load should be public.
+
Wed May 28 12:52:41 2008 Nobuyoshi Nakada <nobu@r...>
* marshal.c (w_object, marshal_dump, r_object0, marshal_load): search
Index: ruby_1_8/lib/singleton.rb
===================================================================
--- ruby_1_8/lib/singleton.rb (revision 16658)
+++ ruby_1_8/lib/singleton.rb (revision 16659)
@@ -30,7 +30,7 @@
# * Klass.new and Klass.allocate - as private
#
# Providing (or modifying) the class methods
-# * Klass.inherited(sub_klass) and Klass.clone() -
+# * Klass.inherited(sub_klass) and Klass.clone() -
# to ensure that the Singleton pattern is properly
# inherited and cloned.
#
@@ -70,10 +70,10 @@
def dup
raise TypeError, "can't dup instance of singleton #{self.class}"
end
-
- private
+
+ private
# default marshalling strategy
- def _dump(depth=-1)
+ def _dump(depth=-1)
''
end
end
@@ -104,7 +104,7 @@
end
end
elsif _instantiate?()
- Thread.critical = false
+ Thread.critical = false
else
@__instance__ = false
Thread.critical = false
@@ -123,26 +123,26 @@
end
@__instance__
end
-
- module SingletonClassMethods
+
+ module SingletonClassMethods
# properly clone the Singleton pattern - did you know
- # that duping doesn't copy class methods?
+ # that duping doesn't copy class methods?
def clone
Singleton.__init__(super)
end
-
+
+ def _load(str)
+ instance
+ end
+
private
-
- # ensure that the Singleton pattern is properly inherited
+
+ # ensure that the Singleton pattern is properly inherited
def inherited(sub_klass)
super
Singleton.__init__(sub_klass)
end
-
- def _load(str)
- instance
- end
-
+
# waiting-loop hook
def _instantiate?()
while false.equal?(@__instance__)
@@ -153,7 +153,7 @@
@__instance__
end
end
-
+
def __init__(klass)
klass.instance_eval { @__instance__ = nil }
class << klass
@@ -161,11 +161,11 @@
end
klass
end
-
+
private
# extending an object with Singleton is a bad idea
undef_method :extend_object
-
+
def append_features(mod)
# help out people counting on transitive mixins
unless mod.instance_of?(Class)
@@ -173,7 +173,7 @@
end
super
end
-
+
def included(klass)
super
klass.private_class_method :new, :allocate
@@ -181,21 +181,21 @@
Singleton.__init__(klass)
end
end
-
+
if __FILE__ == $0
def num_of_instances(klass)
"#{ObjectSpace.each_object(klass){}} #{klass} instance(s)"
-end
+end
# The basic and most important example.
class SomeSingletonClass
include Singleton
end
-puts "There are #{num_of_instances(SomeSingletonClass)}"
+puts "There are #{num_of_instances(SomeSingletonClass)}"
a = SomeSingletonClass.instance
b = SomeSingletonClass.instance # a and b are same object
@@ -218,23 +218,23 @@
puts "initialize called by thread ##{Thread.current[:i]}"
end
end
-
+
class << Ups
def _instantiate?
@enter.push Thread.current[:i]
while false.equal?(@__instance__)
Thread.critical = false
- sleep 0.08
+ sleep 0.08
Thread.critical = true
end
@leave.push Thread.current[:i]
@__instance__
end
-
+
def __sleep
sleep(rand(0.08))
end
-
+
def new
begin
__sleep
@@ -246,12 +246,12 @@
end
end
end
-
+
def instantiate_all
@enter = []
@leave = []
- 1.upto(9) {|i|
- Thread.new {
+ 1.upto(9) {|i|
+ Thread.new {
begin
Thread.current[:i] = i
__sleep
@@ -341,7 +341,7 @@
class Down < Middle; end
puts "and basic \"Down test\" is #{Down.instance == Down.instance}\n
-Various exceptions"
+Various exceptions"
begin
module AModule
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/