Module: BulmaX::Dsl::Validations::ClassMethods
- Defined in:
- lib/bulma_x/dsl/validations.rb
Constant Summary collapse
- ValidatorResult =
Data.define(:result, :source_location, :details, :validator)
- Validator =
Data.define(:option, :validator, :message) do def valid?(component, value) source_location = nil result = case validator in Symbol source_location = component.method(validator).source_location component.send(validator, value) in Proc source_location = validator.source_location component.instance_exec(value, &validator) end ValidatorResult.new(result, source_location.join(':'), , self) end end
Instance Method Summary collapse
- #remove_validations(option_name) ⇒ Object
- #validate(*options, validator, message: nil) ⇒ Object
- #validators ⇒ Object
Instance Method Details
#remove_validations(option_name) ⇒ Object
38 39 40 41 42 |
# File 'lib/bulma_x/dsl/validations.rb', line 38 def remove_validations(option_name) removed, @validators = validators.partition { _1.option == option_name } removed end |
#validate(*options, validator, message: nil) ⇒ Object
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/bulma_x/dsl/validations.rb', line 27 def validate(*, validator, message: nil) .each do |option| if validator.is_a?(Proc) && validator.arity != 1 raise InvalidValidator, 'Your validator must accept exactly on argument (the option value received during initialization)' end validators << Validator.new(option, validator, ) end end |
#validators ⇒ Object
44 |
# File 'lib/bulma_x/dsl/validations.rb', line 44 def validators = @validators ||= [] |