Class: Ukiryu::Validation::RequiredConstraint
- Inherits:
-
Constraint
- Object
- Constraint
- Ukiryu::Validation::RequiredConstraint
- Defined in:
- lib/ukiryu/validation/constraints.rb
Overview
Validates that a value is present (not nil or empty)
Instance Attribute Summary collapse
-
#attribute_name ⇒ Object
readonly
The name of the attribute being validated.
-
#min ⇒ Object
readonly
The minimum required cardinality.
Instance Method Summary collapse
-
#initialize(attribute_name, min: 1) ⇒ RequiredConstraint
constructor
A new instance of RequiredConstraint.
- #validate(value, _context = {}) ⇒ Object
Methods inherited from Constraint
Constructor Details
#initialize(attribute_name, min: 1) ⇒ RequiredConstraint
Returns a new instance of RequiredConstraint.
40 41 42 43 |
# File 'lib/ukiryu/validation/constraints.rb', line 40 def initialize(attribute_name, min: 1) @attribute_name = attribute_name @min = min end |
Instance Attribute Details
#attribute_name ⇒ Object (readonly)
The name of the attribute being validated
34 35 36 |
# File 'lib/ukiryu/validation/constraints.rb', line 34 def attribute_name @attribute_name end |
#min ⇒ Object (readonly)
The minimum required cardinality
36 37 38 |
# File 'lib/ukiryu/validation/constraints.rb', line 36 def min @min end |
Instance Method Details
#validate(value, _context = {}) ⇒ Object
46 47 48 49 50 51 52 53 54 |
# File 'lib/ukiryu/validation/constraints.rb', line 46 def validate(value, _context = {}) return if @min.zero? is_empty = value.nil? || (value.respond_to?(:empty?) && value.empty?) return unless is_empty raise ValidationIssue.new(@attribute_name, :required, "Attribute #{@attribute_name} is required but missing") end |