Class: Formeze::Validation

Inherits:
Object
  • Object
show all
Defined in:
lib/formeze.rb

Instance Method Summary collapse

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, options, &block)
  @field, @options, @block = field, options, block
end

Instance Method Details

#error_keyObject



133
134
135
# File 'lib/formeze.rb', line 133

def error_key
  @options.fetch(:error) { :invalid }
end

#error_messageObject



137
138
139
# File 'lib/formeze.rb', line 137

def error_message
  Formeze.translate(error_key, :scope => [:formeze, :errors], :default => 'is invalid')
end

#validate(form) ⇒ Object



145
146
147
148
149
150
151
152
153
154
155
# File 'lib/formeze.rb', line 145

def validate(form)
  if validates?(form) && !form.errors_on?(@field.name)
    return_value = if @block.arity == 1
      @block.call(form.send(@field.name))
    else
      form.instance_eval(&@block)
    end

    form.add_error(@field, error_message) unless return_value
  end
end

#validates?(form) ⇒ Boolean

Returns:

  • (Boolean)


141
142
143
# File 'lib/formeze.rb', line 141

def validates?(form)
  @options.has_key?(:when) ? form.instance_eval(&@options[:when]) : true
end