method
screen_data
ruby latest stable - Class:
XSD::XSDDuration
screen_data(value)private
No documentation available.
# File lib/xsd/datatypes.rb, line 439
def screen_data(value)
/^([+\-]?)P(?:(\d+)Y)?(?:(\d+)M)?(?:(\d+)D)?(T(?:(\d+)H)?(?:(\d+)M)?(?:(\d+(?:\.\d+)?)S)?)?$/ =~ value.to_s.strip
unless Regexp.last_match
raise ValueSpaceError.new("#{ type }: cannot accept '#{ value }'.")
end
if ($5 and ((!$2 and !$3 and !$4) or (!$6 and !$7 and !$8)))
# Should we allow 'PT5S' here?
raise ValueSpaceError.new("#{ type }: cannot accept '#{ value }'.")
end
sign = $1
year = $2.to_i
month = $3.to_i
day = $4.to_i
hour = $6.to_i
min = $7.to_i
sec = $8 ? XSDDecimal.new($8) : 0
[sign, year, month, day, hour, min, sec]
end