method

screen_data

ruby latest stable - Class: XSD::XSDFloat

Method deprecated or moved

This method is deprecated or moved on the latest stable version. The last existing version (v1_8_7_330) is shown here.

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