Module: ShipEngine::Utils::Validate

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

Class Method Summary collapse

Class Method Details

.array(field, value) ⇒ Object



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

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

  return if value.is_a?(Array)

  raise ShipEngine::Exceptions.invalid_field_value_error(message: "#{field} must be an Array.")
end

.array_of_str(field, value) ⇒ Object



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

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

    raise ShipEngine::Exceptions.invalid_field_value_error(message: "#{field} must be an Array of Strings.")
  end
end

.bool(field, value) ⇒ Object



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

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

  raise ShipEngine::Exceptions.invalid_field_value_error(message: "#{field} must be a Boolean.")
end

.hash(field, value) ⇒ Object



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

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

  raise ShipEngine::Exceptions.invalid_field_value_error(message: "#{field} must be Hash.")
end

.int(field, value) ⇒ Object



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

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

  raise ShipEngine::Exceptions.invalid_field_value_error(message: "#{field} must be a whole number.")
end

.non_empty_str(field, value) ⇒ Object



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

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

  raise ShipEngine::Exceptions.invalid_field_value_error(message: "#{field} cannot be empty.")
end

.non_neg_int(field, value) ⇒ Object



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

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

  raise ShipEngine::Exceptions.invalid_field_value_error(message: "#{field} must be zero or greater.")
end

.non_whitespace_str(field, value) ⇒ Object



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

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

  raise ShipEngine::Exceptions.invalid_field_value_error(message: "#{field} cannot be all whitespace.")
end

.not_nil(field, value) ⇒ Object



7
8
9
10
11
# File 'lib/shipengine/utils/validate.rb', line 7

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

  raise ShipEngine::Exceptions.required_error(field_name: field)
end

.not_nil_or_empty_str(field, value) ⇒ Object



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

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

  raise ShipEngine::Exceptions.required_error(field_name: field)
end

.number(field, value) ⇒ Object



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

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

  raise ShipEngine::Exceptions.invalid_field_value_error(message: "#{field} must be Numeric.")
end

.positive_int(field, value) ⇒ Object



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

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

  raise ShipEngine::Exceptions.invalid_field_value_error(message: "#{field} must be greater than zero.")
end

.str(field, value) ⇒ Object



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

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

  raise ShipEngine::Exceptions.invalid_field_value_error(message: "#{field} must be a String.")
end