Module: Olyx::Guardrails::Validation
- Defined in:
- lib/olyx/guardrails/validation.rb
Overview
Shared internal validators for public collection arguments.
Class Method Summary collapse
- .array_of!(value, item_class, name:) ⇒ Object
- .boolean!(value, name:) ⇒ Object
- .callable_or_nil!(value, name:) ⇒ Object
- .hash!(value, name:) ⇒ Object
- .non_negative_integer!(value, name:) ⇒ Object
Class Method Details
.array_of!(value, item_class, name:) ⇒ Object
7 8 9 10 11 12 |
# File 'lib/olyx/guardrails/validation.rb', line 7 def self.array_of!(value, item_class, name:) valid = value.is_a?(Array) && value.all?(item_class) return value if valid raise ArgumentError, "#{name} must be an Array of #{item_class} values" end |
.boolean!(value, name:) ⇒ Object
14 15 16 17 18 |
# File 'lib/olyx/guardrails/validation.rb', line 14 def self.boolean!(value, name:) return value if [true, false].include?(value) raise ArgumentError, "#{name} must be true or false" end |
.callable_or_nil!(value, name:) ⇒ Object
32 33 34 35 36 |
# File 'lib/olyx/guardrails/validation.rb', line 32 def self.callable_or_nil!(value, name:) return value if value.nil? || value.respond_to?(:call) raise ArgumentError, "#{name} must respond to call" end |
.hash!(value, name:) ⇒ Object
20 21 22 23 24 |
# File 'lib/olyx/guardrails/validation.rb', line 20 def self.hash!(value, name:) return value if value.is_a?(Hash) raise ArgumentError, "#{name} must be a Hash" end |
.non_negative_integer!(value, name:) ⇒ Object
26 27 28 29 30 |
# File 'lib/olyx/guardrails/validation.rb', line 26 def self.non_negative_integer!(value, name:) return value if value.is_a?(Integer) && value >= 0 raise ArgumentError, "#{name} must be a non-negative Integer" end |