Class: Cel::Number
- Inherits:
-
Literal
- Object
- SimpleDelegator
- Literal
- Cel::Number
show all
- Defined in:
- lib/cel/ast/elements/number.rb
Instance Attribute Summary
Attributes inherited from Literal
#type, #value
Instance Method Summary
collapse
Methods inherited from Literal
#initialize, to_cel_type
Methods included from CelMethods
included
Constructor Details
This class inherits a constructor from Cel::Literal
Instance Method Details
#==(other) ⇒ Object
5
6
7
8
9
10
11
12
|
# File 'lib/cel/ast/elements/number.rb', line 5
def ==(other)
case other
when Number
@value == other.value
else
super
end
end
|
#check_overflow(value = @value) ⇒ Object
58
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/cel/ast/elements/number.rb', line 58
def check_overflow(value = @value)
case @type
when TYPES[:double]
return if value.nan? || value.infinite?
raise EvaluateError, "return error for overflow" unless (-(MAX_FLOAT - 1)...MAX_FLOAT).cover?(value)
when TYPES[:uint]
raise EvaluateError, "return error for overflow" unless (0...MAX_INT).cover?(value)
else
raise EvaluateError, "return error for overflow" unless (-(MAX_INT - 1)...MAX_INT).cover?(value)
end
end
|