Module: LightForm::PropertyMethods

Included in:
Form, Lash
Defined in:
lib/light_form/property_methods.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



10
11
12
# File 'lib/light_form/property_methods.rb', line 10

def self.included(base)
  base.extend(ClassMethods)
end

Instance Method Details

#_errorsObject



68
69
70
# File 'lib/light_form/property_methods.rb', line 68

def _errors
  @_errors
end

#errors_overriden?Boolean

Returns:

  • (Boolean)


72
73
74
# File 'lib/light_form/property_methods.rb', line 72

def errors_overriden?
  self.class.config[:errors_overriden] == true
end

#valid?(context = nil) ⇒ Boolean

Returns:

  • (Boolean)


76
77
78
79
80
81
82
83
84
85
86
# File 'lib/light_form/property_methods.rb', line 76

def valid?(context = nil)
  @errors = ActiveModel::Errors.new(self)
  return _form_valid?(context) unless errors_overriden?
  @_errors = @errors
  stored_method = method(:errors)
  errors_method = -> { @errors }
  define_singleton_method(:errors) { errors_method.call }
  result, _store, @_errors, @errors = _form_valid?(context), @_errors, @errors, _store
  define_singleton_method(:errors) { stored_method.call }
  result
end