Module: ShipEngine::Utils::Validate

Defined in:
lib/shipengine/utils/validate.rb

Class Method Summary collapse

Class Method Details

.array(field, value) ⇒ Object



85
86
87
88
89
90
91
# File 'lib/shipengine/utils/validate.rb', line 85

def array(field, value)
  not_nil(field, value)

  return if value.is_a?(Array)

  raise Exceptions.create_invalid_field_value_error("#{field} must be an Array.")
end

.array_of_str(field, value) ⇒ Object



93
94
95
96
97
98
99
100
# File 'lib/shipengine/utils/validate.rb', line 93

def array_of_str(field, value)
  array(field, value)
  value.each do |v|
    next if v.is_a?(String)

    raise Exceptions.create_invalid_field_value_error("#{field} must be an Array of Strings.")
  end
end

.bool(field, value) ⇒ Object



50
51
52
53
54
55
# File 'lib/shipengine/utils/validate.rb', line 50

def bool(field, value)
  not_nil(field, value)
  return if [true, false].include?(value)

  raise Exceptions.create_invalid_field_value_error("#{field} must be a Boolean.")
end

.hash(field, value) ⇒ Object



43
44
45
46
47
48
# File 'lib/shipengine/utils/validate.rb', line 43

def hash(field, value)
  not_nil(field, value)
  return if value.is_a?(Hash)

  raise Exceptions.create_invalid_field_value_error("#{field} must be Hash.")
end

.int(field, value) ⇒ Object



64
65
66
67
68
69
# File 'lib/shipengine/utils/validate.rb', line 64

def int(field, value)
  number(field, value)
  return if value.to_i == value

  raise Exceptions.create_invalid_field_value_error("#{field} must be a whole number.")
end

.non_empty_str(field, value) ⇒ Object



29
30
31
32
33
34
# File 'lib/shipengine/utils/validate.rb', line 29

def non_empty_str(field, value)
  str(field, value)
  return unless value.empty?

  raise Exceptions.create_invalid_field_value_error("#{field} cannot be empty.")
end

.non_neg_int(field, value) ⇒ Object



71
72
73
74
75
76
# File 'lib/shipengine/utils/validate.rb', line 71

def non_neg_int(field, value)
  int(field, value)
  return if value >= 0

  raise Exceptions.create_invalid_field_value_error("#{field} must be zero or greater.")
end

.non_whitespace_str(field, value) ⇒ Object



36
37
38
39
40
41
# File 'lib/shipengine/utils/validate.rb', line 36

def non_whitespace_str(field, value)
  str(field, value)
  return unless value.strip.empty?

  raise Exceptions.create_invalid_field_value_error("#{field} cannot be all whitespace.")
end

.not_nil(field, value) ⇒ Object



9
10
11
12
13
# File 'lib/shipengine/utils/validate.rb', line 9

def not_nil(field, value)
  return unless value.nil?

  raise Exceptions.create_required_error(field)
end

.not_nil_or_empty_str(field, value) ⇒ Object



15
16
17
18
19
20
# File 'lib/shipengine/utils/validate.rb', line 15

def not_nil_or_empty_str(field, value)
  not_nil(field, value)
  return unless value == ''

  raise Exceptions.create_required_error(field)
end

.number(field, value) ⇒ Object



57
58
59
60
61
62
# File 'lib/shipengine/utils/validate.rb', line 57

def number(field, value)
  not_nil(field, value)
  return if value.is_a?(Numeric)

  raise Exceptions.create_invalid_field_value_error("#{field} must be Numeric.")
end

.positive_int(field, value) ⇒ Object



78
79
80
81
82
83
# File 'lib/shipengine/utils/validate.rb', line 78

def positive_int(field, value)
  int(field, value)
  return if value.positive?

  raise Exceptions.create_invalid_field_value_error("#{field} must be greater than zero.")
end

.str(field, value) ⇒ Object



22
23
24
25
26
27
# File 'lib/shipengine/utils/validate.rb', line 22

def str(field, value)
  not_nil(field, value)
  return if value.is_a?(String)

  raise Exceptions.create_invalid_field_value_error("#{field} must be a String.")
end

.validate_input_address(address) ⇒ Object



102
# File 'lib/shipengine/utils/validate.rb', line 102

def validate_input_address(address); end