Class: Ukiryu::Validation::CardinalityConstraint
- Inherits:
-
Constraint
- Object
- Constraint
- Ukiryu::Validation::CardinalityConstraint
- Defined in:
- lib/ukiryu/validation/constraints.rb
Overview
Validates cardinality constraints for variadic arguments
Instance Attribute Summary collapse
-
#attribute_name ⇒ Object
readonly
Returns the value of attribute attribute_name.
-
#max ⇒ Object
readonly
Returns the value of attribute max.
-
#min ⇒ Object
readonly
Returns the value of attribute min.
Instance Method Summary collapse
-
#initialize(attribute_name, min:, max:) ⇒ CardinalityConstraint
constructor
A new instance of CardinalityConstraint.
- #validate(value, _context = {}) ⇒ Object
Methods inherited from Constraint
Constructor Details
#initialize(attribute_name, min:, max:) ⇒ CardinalityConstraint
Returns a new instance of CardinalityConstraint.
145 146 147 148 149 |
# File 'lib/ukiryu/validation/constraints.rb', line 145 def initialize(attribute_name, min:, max:) @attribute_name = attribute_name @min = min @max = max end |
Instance Attribute Details
#attribute_name ⇒ Object (readonly)
Returns the value of attribute attribute_name.
140 141 142 |
# File 'lib/ukiryu/validation/constraints.rb', line 140 def attribute_name @attribute_name end |
#max ⇒ Object (readonly)
Returns the value of attribute max.
140 141 142 |
# File 'lib/ukiryu/validation/constraints.rb', line 140 def max @max end |
#min ⇒ Object (readonly)
Returns the value of attribute min.
140 141 142 |
# File 'lib/ukiryu/validation/constraints.rb', line 140 def min @min end |
Instance Method Details
#validate(value, _context = {}) ⇒ Object
152 153 154 155 156 157 158 159 |
# File 'lib/ukiryu/validation/constraints.rb', line 152 def validate(value, _context = {}) return if value.nil? || !value.is_a?(Array) return unless @max != Float::INFINITY && value.size > @max raise ValidationIssue.new(@attribute_name, :cardinality, "Too many values for #{@attribute_name}: got #{value.size}, max #{@max}") end |