summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-02-02 04:49:13 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-02-02 04:49:13 +0000
commitde0e5e35ae39a03879d8a954dd6b75654c173cd7 (patch)
tree6f936b0ed7666e5b4c7009c039775bed1a4e9f32 /lib
parent3293a425afd07c4b004e06e14f1735ca841c1411 (diff)
__FILE__,__LINE__
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@62 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r--lib/date.rb26
-rw-r--r--lib/delegate.rb18
-rw-r--r--lib/final.rb16
-rw-r--r--lib/parsedate.rb4
-rw-r--r--lib/tempfile.rb11
-rw-r--r--lib/weakref.rb2
6 files changed, 56 insertions, 21 deletions
diff --git a/lib/date.rb b/lib/date.rb
index 24731d7c68..0f14d59ff5 100644
--- a/lib/date.rb
+++ b/lib/date.rb
@@ -1,8 +1,8 @@
#
# Date.rb -
# $Release Version: $
-# $Revision: 1.1.1.1 $
-# $Date: 1998/01/16 04:05:49 $
+# $Revision: 1.1.1.1.4.1 $
+# $Date: 1998/01/16 12:36:04 $
# by Yasuo OHBA(SHL Japan Inc. Technology Dept.)
#
# --
@@ -17,6 +17,20 @@
class Date
include Comparable
+ Weektag = [
+ "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"
+ ]
+
+ Monthtag = [
+ "January","February","March","April", "May", "June","July",
+ "August", "September", "October", "November", "December"
+ ]
+
+ Monthtab = {
+ "jan"=>1, "feb"=>2, "mar"=>3, "apr"=>4, "may"=>5, "jun"=>6,
+ "jul"=>7, "aug"=>8, "sep"=>9, "oct"=>10, "nov"=>11, "dec"=>12
+ }
+
def initialize(y = 1, m = 1, d = 1)
if y.kind_of?(String) && y.size == 8
@year = y[0,4].to_i
@@ -24,8 +38,7 @@ class Date
@day = y[6,2].to_i
else
if m.kind_of?(String)
- ml = {"jan"=>1, "feb"=>2, "mar"=>3, "apr"=>4, "may"=>5, "jun"=>6, "jul"=>7, "aug"=>8, "sep"=>9, "oct"=>10, "nov"=>11, "dec"=>12}
- m = ml[m.downcase]
+ m = Monthtab[m.downcase]
if m.nil?
raise ArgumentError, "Wrong argument. (month)"
end
@@ -67,11 +80,14 @@ class Date
return (d % 7)
end
- Weektag = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
def name_of_week
return Weektag[self.day_of_week]
end
+ def name_of_month
+ return Monthtag[@month-1]
+ end
+
def +(o)
if o.kind_of?(Numeric)
d = Integer(self.period + o)
diff --git a/lib/delegate.rb b/lib/delegate.rb
index cb3c730787..571bf87510 100644
--- a/lib/delegate.rb
+++ b/lib/delegate.rb
@@ -7,16 +7,16 @@
#
# Usage:
# foo = Object.new
-# foo = SimpleDelegater.new(foo)
+# foo = SimpleDelegator.new(foo)
# foo.type # => Object
-class Delegater
+class Delegator
def initialize(obj)
preserved = ["id", "equal?", "__getobj__"]
for t in self.type.ancestors
preserved |= t.instance_methods
- break if t == Delegater
+ break if t == Delegator
end
for method in obj.methods
next if preserved.include? method
@@ -30,7 +30,7 @@ class Delegater
end
-class SimpleDelegater<Delegater
+class SimpleDelegator<Delegator
def initialize(obj)
super
@@ -45,3 +45,13 @@ class SimpleDelegater<Delegater
@obj = obj
end
end
+
+# backword compatibility ^_^;;;
+Delegater = Delegator
+SimpleDelegater = SimpleDelegator
+
+if __FILE__ == $0
+ foo = Object.new
+ foo = SimpleDelegator.new(foo)
+ p foo.type # => Object
+end
diff --git a/lib/final.rb b/lib/final.rb
index 566d1aae42..fc17dce289 100644
--- a/lib/final.rb
+++ b/lib/final.rb
@@ -15,26 +15,26 @@
#
module ObjectSpace
- Finalizer = {}
+ Finalizers = {}
def define_finalizer(obj, proc=lambda())
ObjectSpace.call_finalizer(obj)
- if assoc = Finalizer[obj.id]
+ if assoc = Finalizers[obj.id]
assoc.push(proc)
else
- Finalizer[obj.id] = [proc]
+ Finalizers[obj.id] = [proc]
end
end
def undefine_finalizer(obj)
- Finalizer.delete(obj.id)
+ Finalizers.delete(obj.id)
end
- module_function :define_finalizer, :remove_finalizer
+ module_function :define_finalizer, :undefine_finalizer
Generic_Finalizer = proc {|id|
- if Finalizer.key? id
- for proc in Finalizer[id]
+ if Finalizers.key? id
+ for proc in Finalizers[id]
proc.call(id)
end
- Finalizer.delete(id)
+ Finalizers.delete(id)
end
}
add_finalizer Generic_Finalizer
diff --git a/lib/parsedate.rb b/lib/parsedate.rb
index 1c1dda76bc..2ec54b0125 100644
--- a/lib/parsedate.rb
+++ b/lib/parsedate.rb
@@ -13,8 +13,8 @@ module ParseDate
if date.sub!(/\s+(\d+:\d+(:\d+)?)/, ' ')
time = $1
end
- if date =~ /19(\d\d)/
- year = Integer($1)
+ if date =~ /(19|20)(\d\d)/
+ year = Integer($2)
end
if date.sub!(/\s*(\d+)\s+(#{MONTHPAT})\S*\s+/i, ' ')
dayofmonth = $1.to_i
diff --git a/lib/tempfile.rb b/lib/tempfile.rb
index 66d96200b5..78b770c5a4 100644
--- a/lib/tempfile.rb
+++ b/lib/tempfile.rb
@@ -12,7 +12,7 @@
require 'delegate'
require 'final'
-class Tempfile < SimpleDelegater
+class Tempfile < SimpleDelegator
Max_try = 10
def initialize(basename, tmpdir = '/tmp')
@@ -70,3 +70,12 @@ class Tempfile < SimpleDelegater
end
end
end
+
+if __FILE__ == $0
+ f = Tempfile.new("foo")
+ f.print("foo\n")
+ f.close
+ f.open
+ p f.gets # => "foo\n"
+ f.close(true)
+end
diff --git a/lib/weakref.rb b/lib/weakref.rb
index 93b2c65ecd..18d3bbc9a3 100644
--- a/lib/weakref.rb
+++ b/lib/weakref.rb
@@ -10,7 +10,7 @@
require "delegate"
-class WeakRef<Delegater
+class WeakRef<Delegator
Exception :RefError