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