class ToDecimal::Validator

Class to validate arguments

Public Class Methods

new(input, base) click to toggle source
# File lib/to_decimal/validator_class.rb, line 4
def initialize(input, base)
  @input = input
  @base = base
end

Public Instance Methods

validate() click to toggle source
# File lib/to_decimal/validator_class.rb, line 9
   def validate
     err_value = "Argument must be an integer or a valid string\
representation of an integer. You input : #{@input}, of class #{@input.class}."
     raise ArgumentError,  err_value unless valid_integer_string_or_integer?

     err_base = "A number of base #{@base} cannot have a\
 digit greater or equal to #{@base}. Check your argument: #{@input}."
     raise WrongBaseInputError, err_base unless valid_input_base?
   end

Private Instance Methods

valid_input_base?() click to toggle source
# File lib/to_decimal/validator_class.rb, line 33
def valid_input_base?
  digitized_input = @input.to_i.digits
  digitized_input.none? { |digit| digit >= @base }
end
valid_integer?() click to toggle source
# File lib/to_decimal/validator_class.rb, line 25
def valid_integer?
  @input.is_a?(Integer)
end
valid_integer_string?() click to toggle source
# File lib/to_decimal/validator_class.rb, line 29
def valid_integer_string?
  (@input.is_a?(String) && @input.to_i.to_s == @input)
end
valid_integer_string_or_integer?() click to toggle source
# File lib/to_decimal/validator_class.rb, line 21
def valid_integer_string_or_integer?
  valid_integer_string? || valid_integer?
end