light_form 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2e9f92ebfd7e16c3ca7edf3a1eb8e1a6bee58eac
4
- data.tar.gz: fd5e1c5397eaf1184e89c0158deb8ee7b1cdf239
3
+ metadata.gz: d9597a28e9e3f731a43a85decad5f11e955d9388
4
+ data.tar.gz: 822d5e8f7b73af2e7fcc75a459bc8ca65b8a9ece
5
5
  SHA512:
6
- metadata.gz: 2313702dc37f7b69e21113a57b306cf90800510ff46e1321b7d1b523d8f7eb1516c862665582e135985390f3ecdbe00a892b172649d05991e3a641c9b5036ead
7
- data.tar.gz: 8a5ba2155c51d6d33e4bb9c47c136aa4480be5ad59057eb1197a8e14978da4a06509b843ea71fc3d4ebb099c9fbea197387d7172ae285b01f2c06a2a62ad31f7
6
+ metadata.gz: 9ddd24343f88e82596363ae25e7801bfd51c4b19f95cec83df6ef1f5df6880600accfe6631f31ef6737580111c31ebf36d3c9d4d00ddbd16bb51b4f49dabd92b
7
+ data.tar.gz: 1a097f2c95930916766cc4555e49e8ce9e4ee94cfbe900e8df68582817899638391754484391b19e65986b343c3d9970eb47e0b4a006418ee55e50be63b8739e
@@ -73,26 +73,33 @@ module LightForm
73
73
  self.class.config[:errors_overriden] == true
74
74
  end
75
75
 
76
- def valid?
77
- return [_check_validation, super].all? unless errors_overriden?
76
+ def valid?(context = nil)
77
+ @errors = ActiveModel::Errors.new(self)
78
+ return [_check_validation, _valid_without_clear?(context)].all? unless errors_overriden?
78
79
  @_errors = @errors
79
- @errors ||= ActiveModel::Errors.new(self)
80
80
  stored_method = method(:errors)
81
81
  errors_method = -> { @errors }
82
82
  define_singleton_method(:errors) { errors_method.call }
83
- result, store, @_errors, @errors = [_check_validation, super].all?, @_errors, @errors, store
83
+ result, store, @_errors, @errors = [_check_validation, _valid_without_clear?(context)].all?, @_errors, @errors, store
84
84
  define_singleton_method(:errors) { stored_method.call }
85
85
  result
86
86
  end
87
87
 
88
88
  private
89
89
 
90
+ def _valid_without_clear?(context = nil)
91
+ current_context, self.validation_context = validation_context, context
92
+ run_validations!
93
+ ensure
94
+ self.validation_context = current_context
95
+ end
96
+
90
97
  def _validation_errors(obj)
91
98
  obj.errors if obj.respond_to?(:valid?) && !obj.valid?
92
99
  end
93
100
 
94
101
  def _check_validation
95
- @errors ||= ActiveModel::Errors.new(self)
102
+ @errors = ActiveModel::Errors.new(self)
96
103
  properties = _properties.delete(_properties_sources.keys)
97
104
  properties.each do |prop|
98
105
  public_send(prop).tap do |subject|
@@ -1,3 +1,3 @@
1
1
  module LightForm
2
- VERSION = '0.0.5'
2
+ VERSION = '0.0.6'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: light_form
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pawel Niemczyk