class Formeze::Validation
Public Class Methods
new(field, **kwargs, &block)
click to toggle source
# File lib/formeze/validation.rb, line 4 def initialize(field, **kwargs, &block) @field = field @error = kwargs[:error] || :invalid @precondition = kwargs[:if] @block = block end
Public Instance Methods
field_errors?(form)
click to toggle source
# File lib/formeze/validation.rb, line 22 def field_errors?(form) form.errors_on?(@field.name) end
field_value?(form)
click to toggle source
# File lib/formeze/validation.rb, line 18 def field_value?(form) present?(form.send(@field.name)) end
validate(form)
click to toggle source
# 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
validates?(form)
click to toggle source
# File lib/formeze/validation.rb, line 14 def validates?(form) @precondition ? Formeze::Block.evaluate(form, @precondition) : true end