1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* time.c (time_dup): duplicate the class of original time.

[ruby-core:09357]

* lib/time.rb (Time::make_time, Time::rfc2822, Time::httpdate):
  should respect subclasses.  [ruby-core:09357]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11250 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
matz 2006-10-31 08:08:46 +00:00
parent d9ec86f410
commit 0f519375ab
3 changed files with 14 additions and 6 deletions

View file

@ -1,3 +1,11 @@
Tue Oct 31 17:03:21 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
* time.c (time_dup): duplicate the class of original time.
[ruby-core:09357]
* lib/time.rb (Time::make_time, Time::rfc2822, Time::httpdate):
should respect subclasses. [ruby-core:09357]
Tue Oct 31 16:25:22 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
* array.c (ary_shared_first): should address offset after

View file

@ -181,7 +181,7 @@ class Time
t.localtime if !zone_utc?(zone)
t
else
Time.local(year, mon, day, hour, min, sec, usec)
self.local(year, mon, day, hour, min, sec, usec)
end
end
private :make_time
@ -304,7 +304,7 @@ class Time
year, mon, day, hour, min, sec =
apply_offset(year, mon, day, hour, min, sec, zone_offset(zone))
t = Time.utc(year, mon, day, hour, min, sec)
t = self.utc(year, mon, day, hour, min, sec)
t.localtime if !zone_utc?(zone)
t
else
@ -331,14 +331,14 @@ class Time
(\d{2}):(\d{2}):(\d{2})\x20
GMT
\s*\z/ix =~ date
Time.rfc2822(date)
self.rfc2822(date)
elsif /\A\s*
(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday),\x20
(\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d)\x20
(\d\d):(\d\d):(\d\d)\x20
GMT
\s*\z/ix =~ date
Time.parse(date)
self.parse(date)
elsif /\A\s*
(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun)\x20
(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\x20
@ -346,7 +346,7 @@ class Time
(\d\d):(\d\d):(\d\d)\x20
(\d{4})
\s*\z/ix =~ date
Time.utc($6.to_i, MonthValue[$1.upcase], $2.to_i,
self.utc($6.to_i, MonthValue[$1.upcase], $2.to_i,
$3.to_i, $4.to_i, $5.to_i)
else
raise ArgumentError.new("not RFC 2616 compliant date: #{date.inspect}")

2
time.c
View file

@ -1019,7 +1019,7 @@ time_init_copy(VALUE copy, VALUE time)
static VALUE
time_dup(VALUE time)
{
VALUE dup = time_s_alloc(rb_cTime);
VALUE dup = time_s_alloc(CLASS_OF(time));
time_init_copy(dup, time);
return dup;
}