Class: Kirico::SpaceDividerValidator
- Inherits:
-
ActiveModel::EachValidator
- Object
- ActiveModel::EachValidator
- Kirico::SpaceDividerValidator
- Defined in:
- lib/kirico/validators/space_divider_validator.rb
Constant Summary collapse
- HALF_WIDTH_SPACE_RULE =
' '- FULL_WIDTH_SPACE_RULE =
' '- BOTH_WIDTH_SPACE_RULE =
'[ ]'- CHECKS =
{ half_width: regexp(HALF_WIDTH_SPACE_RULE), full_width: regexp(FULL_WIDTH_SPACE_RULE), both_width: regexp(BOTH_WIDTH_SPACE_RULE) }.freeze
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.regexp(space_divider_rule) ⇒ Object
30 31 32 |
# File 'lib/kirico/validators/space_divider_validator.rb', line 30 def self.regexp(space_divider_rule) /\A[^\p{blank}]+(#{space_divider_rule}[^\p{blank}]+)+\z/ end |
Instance Method Details
#check_validity! ⇒ Object
40 41 42 |
# File 'lib/kirico/validators/space_divider_validator.rb', line 40 def check_validity! raise ArgumentError, "Invalid space option #{space_option}. Specify the :full_width, half_width, or :both_width." unless CHECKS.keys.include?(space_option) end |
#validate_each(record, attribute, value) ⇒ Object
44 45 46 |
# File 'lib/kirico/validators/space_divider_validator.rb', line 44 def validate_each(record, attribute, value) record.errors.add(attribute, ([:message] || :invalid_space_divider), space_type: space_type_i18n) if value.to_s !~ CHECKS[space_option] end |