screen_data(value)private
No documentation available.
# File lib/xsd/datatypes.rb, line 312
def screen_data(value)
# "NaN".to_f => 0 in some environment. libc?
if value.is_a?(Float)
return narrow32bit(value)
end
str = value.to_s.strip
if str == 'NaN'
NaN
elsif str == 'INF'
POSITIVE_INF
elsif str == '-INF'
NEGATIVE_INF
else
if /^[+\-\.\deE]+$/ !~ str
raise ValueSpaceError.new("#{ type }: cannot accept '#{ str }'.")
end
# Float("-1.4E") might fail on some system.
str << '0' if /e$/i =~ str
begin
return narrow32bit(Float(str))
rescue ArgumentError
raise ValueSpaceError.new("#{ type }: cannot accept '#{ str }'.")
end
end
end