Class: Formeze::Validation
- Inherits:
-
Object
- Object
- Formeze::Validation
- Defined in:
- lib/formeze.rb
Instance Method Summary collapse
- #error_key ⇒ Object
- #error_message ⇒ Object
- #field_errors?(form) ⇒ Boolean
- #field_value?(form) ⇒ Boolean
-
#initialize(field, options, &block) ⇒ Validation
constructor
A new instance of Validation.
- #validate(form) ⇒ Object
- #validates?(form) ⇒ Boolean
Constructor Details
#initialize(field, options, &block) ⇒ Validation
Returns a new instance of Validation.
129 130 131 |
# File 'lib/formeze.rb', line 129 def initialize(field, , &block) @field, , @block = field, , block end |
Instance Method Details
#error_key ⇒ Object
133 134 135 |
# File 'lib/formeze.rb', line 133 def error_key .fetch(:error) { :invalid } end |
#error_message ⇒ Object
137 138 139 |
# File 'lib/formeze.rb', line 137 def Formeze.translate(error_key, :scope => [:formeze, :errors], :default => 'is invalid') end |
#field_errors?(form) ⇒ Boolean
149 150 151 |
# File 'lib/formeze.rb', line 149 def field_errors?(form) form.errors_on?(@field.name) end |
#field_value?(form) ⇒ Boolean
145 146 147 |
# File 'lib/formeze.rb', line 145 def field_value?(form) form.send(@field.name) =~ /\S/ end |
#validate(form) ⇒ Object
153 154 155 156 157 158 159 160 161 162 163 |
# File 'lib/formeze.rb', line 153 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, ) unless return_value end end |
#validates?(form) ⇒ Boolean
141 142 143 |
# File 'lib/formeze.rb', line 141 def validates?(form) .has_key?(:when) ? form.instance_eval(&[:when]) : true end |