diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-02-02 04:49:13 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-02-02 04:49:13 +0000 |
commit | de0e5e35ae39a03879d8a954dd6b75654c173cd7 (patch) | |
tree | 6f936b0ed7666e5b4c7009c039775bed1a4e9f32 /lib | |
parent | 3293a425afd07c4b004e06e14f1735ca841c1411 (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.rb | 26 | ||||
-rw-r--r-- | lib/delegate.rb | 18 | ||||
-rw-r--r-- | lib/final.rb | 16 | ||||
-rw-r--r-- | lib/parsedate.rb | 4 | ||||
-rw-r--r-- | lib/tempfile.rb | 11 | ||||
-rw-r--r-- | lib/weakref.rb | 2 |
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 |