Class: Formeze::Validation
- Inherits:
-
Object
- Object
- Formeze::Validation
- Includes:
- Presence
- Defined in:
- lib/formeze/validation.rb
Constant Summary
Constants included from Presence
Instance Method Summary collapse
- #field_errors?(form) ⇒ Boolean
- #field_value?(form) ⇒ Boolean
-
#initialize(field, **kwargs, &block) ⇒ Validation
constructor
A new instance of Validation.
- #validate(form) ⇒ Object
- #validates?(form) ⇒ Boolean
Methods included from Presence
Constructor Details
#initialize(field, **kwargs, &block) ⇒ Validation
Returns a new instance of Validation.
4 5 6 7 8 9 10 11 12 |
# File 'lib/formeze/validation.rb', line 4 def initialize(field, **kwargs, &block) @field = field @error = kwargs[:error] || :invalid @precondition = kwargs[:if] @block = block end |
Instance Method Details
#field_errors?(form) ⇒ Boolean
22 23 24 |
# File 'lib/formeze/validation.rb', line 22 def field_errors?(form) form.errors_on?(@field.name) end |
#field_value?(form) ⇒ Boolean
18 19 20 |
# File 'lib/formeze/validation.rb', line 18 def field_value?(form) present?(form.send(@field.name)) end |
#validate(form) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/formeze/validation.rb', line 26 def validate(form) if validates?(form) && field_value?(form) && !field_errors?(form) return_value = if @block.arity == 1 @block.call(form.send(@field.name)) else form.instance_eval(&@block) end form.add_error(@field, @error) unless return_value end end |