module StubRequests::Concerns::ArgumentValidation

Module ArgumentValidation provides validation of method arguments

@author Mikael Henriksson <mikael@zoolutions.se>

Public Instance Methods

validate!(name:, value:, type:) click to toggle source

Require the value to be any of the types past in

@param [Symbol] name the name of the argument @param [Object] value the actual value of the argument @param [Array, Class, Module] type nil the expected argument value class

@raise [InvalidArgumentType] when the value is disallowed

@return [void]

# File lib/stub_requests/concerns/argument_validation.rb, line 31
def validate!(name:, value:, type:)
  validate_type!(:name, name, [Symbol, String]) unless name
  validate_type!(name, value, type) if type
end
validate_type!(name, value, type) click to toggle source
# File lib/stub_requests/concerns/argument_validation.rb, line 36
def validate_type!(name, value, type)
  expected_types = Array(type).flatten
  return if expected_types.any? { |is_a| value.is_a?(is_a) }

  raise StubRequests::InvalidArgumentType,
        name: name,
        actual: value.class,
        expected: expected_types
end