Time.xmlschema: Clarify error and docs

It parses a (date)time, not a date.
This commit is contained in:
Henrik Nyh and Tomas Skogberg 2020-04-20 16:10:37 +01:00 committed by Hiroshi SHIBATA
parent da484c3187
commit fdb31aa7ab
Notes: git 2020-05-23 09:43:28 +09:00

View File

@ -590,12 +590,12 @@ class Time
end end
# #
# Parses +date+ as a dateTime defined by the XML Schema and converts it to # Parses +time+ as a dateTime defined by the XML Schema and converts it to
# a Time object. The format is a restricted version of the format defined # a Time object. The format is a restricted version of the format defined
# by ISO 8601. # by ISO 8601.
# #
# ArgumentError is raised if +date+ is not compliant with the format or if # ArgumentError is raised if +time+ is not compliant with the format or if
# the Time class cannot represent specified date. # the Time class cannot represent the specified time.
# #
# See #xmlschema for more information on this format. # See #xmlschema for more information on this format.
# #
@ -606,14 +606,14 @@ class Time
# #
# You must require 'time' to use this method. # You must require 'time' to use this method.
# #
def xmlschema(date) def xmlschema(time)
if /\A\s* if /\A\s*
(-?\d+)-(\d\d)-(\d\d) (-?\d+)-(\d\d)-(\d\d)
T T
(\d\d):(\d\d):(\d\d) (\d\d):(\d\d):(\d\d)
(\.\d+)? (\.\d+)?
(Z|[+-]\d\d(?::?\d\d)?)? (Z|[+-]\d\d(?::?\d\d)?)?
\s*\z/ix =~ date \s*\z/ix =~ time
year = $1.to_i year = $1.to_i
mon = $2.to_i mon = $2.to_i
day = $3.to_i day = $3.to_i
@ -636,7 +636,7 @@ class Time
self.local(year, mon, day, hour, min, sec, usec) self.local(year, mon, day, hour, min, sec, usec)
end end
else else
raise ArgumentError.new("invalid date: #{date.inspect}") raise ArgumentError.new("invalid xmlschema format: #{time.inspect}")
end end
end end
alias iso8601 xmlschema alias iso8601 xmlschema