Class: Treaty::Entity::Attribute::Option::Validators::InclusionValidator
- Inherits:
-
Base
- Object
- Base
- Treaty::Entity::Attribute::Option::Validators::InclusionValidator
- Defined in:
- lib/treaty/entity/attribute/option/validators/inclusion_validator.rb
Overview
Validates that attribute value is included in allowed set.
Usage Examples
Simple mode:
string :provider, in: %w[twitter linkedin github]
Advanced mode:
string :provider, inclusion: { in: %w[twitter linkedin github], message: "Invalid provider" }
Advanced Mode
Uses :in as the value key (instead of default :is).
Schema format: { in: [...], message: nil }
Instance Method Summary collapse
-
#validate_schema! ⇒ void
Validates that allowed values are provided as non-empty array.
-
#validate_value!(value) ⇒ void
Validates that value is included in allowed set Skips validation for nil values (handled by RequiredValidator).
Methods inherited from Base
#initialize, #target_name, #transform_value, #transforms_name?
Constructor Details
This class inherits a constructor from Treaty::Entity::Attribute::Option::Base
Instance Method Details
#validate_schema! ⇒ void
This method returns an undefined value.
Validates that allowed values are provided as non-empty array
27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/treaty/entity/attribute/option/validators/inclusion_validator.rb', line 27 def validate_schema! allowed_values = option_value return if allowed_values.is_a?(Array) && !allowed_values.empty? raise Treaty::Exceptions::Validation, I18n.t( "treaty.attributes.validators.inclusion.invalid_schema", attribute: @attribute_name ) end |
#validate_value!(value) ⇒ void
This method returns an undefined value.
Validates that value is included in allowed set Skips validation for nil values (handled by RequiredValidator)
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/treaty/entity/attribute/option/validators/inclusion_validator.rb', line 45 def validate_value!(value) return if value.nil? # Inclusion validation doesn't check for nil, required does. allowed_values = option_value return if allowed_values.include?(value) attributes = { attribute: @attribute_name, value:, allowed_values: } = (**attributes) || (**attributes) raise Treaty::Exceptions::Validation, end |