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

Positional and keyword arguments for timezone are exclusive

[Feature #17485]
This commit is contained in:
Nobuyoshi Nakada 2021-01-13 18:25:07 +09:00
parent 4b15caee8f
commit e9b93d67ba
No known key found for this signature in database
GPG key ID: 7CD2805BFA3770C6
Notes: git 2021-01-13 20:41:34 +09:00
2 changed files with 14 additions and 3 deletions

View file

@ -607,6 +607,7 @@ module TestTimeTZ::WithTZ
assert_equal(6, t.wday)
assert_equal(244, t.yday)
assert_equal(t, time_class.new(2018, 9, 1, 12, in: tzarg))
assert_raise(ArgumentError) {time_class.new(2018, 9, 1, 12, 0, 0, tzarg, in: tzarg)}
end
def subtest_now(time_class, tz, tzarg, tzname, abbr, utc_offset)

View file

@ -107,9 +107,19 @@ class Time
# (t4-t3)/3600.0 #=> 2.466666666666667
# (t6-t5)/3600.0 #=> 1.95
# (t8-t7)/3600.0 #=> 13.416666666666666
def initialize(year = (now = true), mon = nil, mday = nil, hour = nil, min = nil, sec = nil, zone = nil, in: zone)
zone = __builtin.arg!(:in)
return __builtin.time_init_now(zone) if now
def initialize(year = (now = true), mon = nil, mday = nil, hour = nil, min = nil, sec = nil, zone = nil, in: nil)
if zone
if __builtin.arg!(:in)
raise ArgumentError, "timezone argument given as positional and keyword arguments"
end
else
zone = __builtin.arg!(:in)
end
if now
return __builtin.time_init_now(zone)
end
__builtin.time_init_args(year, mon, mday, hour, min, sec, zone)
end
end