Sha256: edec786bed73deb62eec6b8039c3bfabf6bf9220d65515852eec9407e6455865
Contents?: true
Size: 766 Bytes
Versions: 1
Compression:
Stored size: 766 Bytes
Contents
module SafeYAML class Transform class ToFloat Infinity = 1.0 / 0.0 NaN = 0.0 / 0.0 PREDEFINED_VALUES = { ".inf" => Infinity, ".Inf" => Infinity, ".INF" => Infinity, "-.inf" => -Infinity, "-.Inf" => -Infinity, "-.INF" => -Infinity, ".nan" => NaN, ".NaN" => NaN, ".NAN" => NaN, }.freeze def transform?(value) return true, Float(value) rescue try_edge_cases?(value) end def try_edge_cases?(value) return true, PREDEFINED_VALUES[value] if PREDEFINED_VALUES.include?(value) return true, Parse::Sexagesimal.value(value) if Parse::Sexagesimal::FLOAT_MATCHER.match(value) return false end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
safe_yaml-0.8.4 | lib/safe_yaml/transform/to_float.rb |