class Rtype::Behavior::NumericCheck
Public Class Methods
new(condition, x)
click to toggle source
@param [Symbol] condition @param [Numeric] x
# File lib/rtype/behavior/numeric_check.rb, line 10 def initialize(condition, x) raise ArgumentError, "Invalid condition '#{condition}'" unless @@conditions.include?(condition) raise ArgumentError, "x is not a Numeric" unless x.is_a?(Numeric) @condition = condition @x = x @lambda = case condition when :> lambda { |obj| obj > @x } when :< lambda { |obj| obj < @x } when :>= lambda { |obj| obj >= @x } when :<= lambda { |obj| obj <= @x } when :== lambda { |obj| obj == @x } end end
Public Instance Methods
error_message(value)
click to toggle source
# File lib/rtype/behavior/numeric_check.rb, line 37 def error_message(value) "Expected #{value.inspect} to be a numeric #{@condition} #{@x}" end
valid?(value)
click to toggle source
# File lib/rtype/behavior/numeric_check.rb, line 29 def valid?(value) if value.is_a?(Numeric) @lambda.call(value) else false end end