active_form_objects 2.1.1 → 2.2.1

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
  SHA256:
3
- metadata.gz: 3adbc64ad3aaec9bd9588470a8ad973daa6b1549389f52dc24c043b52ec4bea7
4
- data.tar.gz: 9fac6d32d71260879886077db2a154cb00cb57793dcbda2cf1683944199c2e9d
3
+ metadata.gz: '059136943580b5341289a4daf655b3d35ee4c593d01fc7e8278ccfd40f927a01'
4
+ data.tar.gz: a4da375da3f8d89716cd0dc6f58b1bc4eec0a7530a8d0ed5b734ae9c6dc83816
5
5
  SHA512:
6
- metadata.gz: dc9193a4a1643092fff0a893fa0f33659be98cfd1b5188919d91ef45f6fbb4a0c4999c95a50ba249ce07c460b00c0816f05501f891ea5ed701ae386200e75cc6
7
- data.tar.gz: 11b5bd0d920cac545ddbe4cb202641f0851923329ef7a18ced74e4ae528af8be68245a654ccd6c5be2257476b6e9e263f1f34f2249b5defac09430214f18c118
6
+ metadata.gz: e5ac348c43e58a7ae67432b4215ecd43461685c7ca38896fb72f210fd3eb92c5b8cfd286f1a2c050caadf1027bf4fc967d219e735a860ad49ad478302bb1def0
7
+ data.tar.gz: 66895c0e454f5399980c9fc52df94e3ed75bd8f2cda8fe2c659d8ef0a0e213fd07b4d4b83b1a164106e3e81da5d3230222a8464d8522f412aa9088b72bb7b81c
@@ -6,8 +6,9 @@ module Dsl
6
6
  record = (e.try(:record) || e.model)
7
7
  initial_messages = record.errors.messages.as_json
8
8
  record.errors.clear
9
- record.errors.messages[form] = initial_messages
10
-
9
+ initial_messages.each do |i|
10
+ record.errors.add(form, i)
11
+ end
11
12
  raise ActiveModel::ValidationError, record
12
13
  end
13
14
  end
@@ -8,6 +8,7 @@ module Dsl
8
8
  @@before_save = {}
9
9
  @@after_save = {}
10
10
  @@after_validation = {}
11
+ @@after_commit = {}
11
12
 
12
13
  class_methods do
13
14
  def before_save(*params, &block)
@@ -24,6 +25,11 @@ module Dsl
24
25
  hooks = block.present? ? [block] : params
25
26
  @@after_validation[name] = (@@after_validation[name] || []) + hooks
26
27
  end
28
+
29
+ def after_commit(*params, &block)
30
+ hooks = block.present? ? [block] : params
31
+ @@after_commit[name] = (@@after_commit[name] || []) + hooks
32
+ end
27
33
  end
28
34
  end
29
35
  end
@@ -39,4 +39,10 @@ module Handlers
39
39
  handle_hooks('after_validation')
40
40
  end
41
41
  end
42
+
43
+ class AfterCommitHooks < BeforeSaveHooks
44
+ def handle
45
+ handle_hooks('after_commit')
46
+ end
47
+ end
42
48
  end
@@ -14,8 +14,9 @@ module Handlers
14
14
  after_validations_hooks!
15
15
  block ? save_with_block!(block) : save_without_block!
16
16
  after_save_hooks!
17
- @resource
18
17
  end
18
+ after_commit_hooks!
19
+ @resource
19
20
  rescue ActiveRecord::RecordInvalid => e
20
21
  e.record.errors.add(e.record.class.name, '')
21
22
  raise ActiveRecord::RecordInvalid.new(e.record)
@@ -29,7 +30,7 @@ module Handlers
29
30
  def save_with_block!(block)
30
31
  @klass.instance_eval(&block)
31
32
  @resource = @klass.instance_variable_get(:@resource)
32
- @resource.try(:save!)
33
+ @resource
33
34
  end
34
35
 
35
36
  def save_without_block!
@@ -40,5 +41,9 @@ module Handlers
40
41
  AfterValidationsHooks.handle(@klass)
41
42
  Polymorphs.handle(@klass)
42
43
  end
44
+
45
+ def after_commit_hooks!
46
+ AfterCommitHooks.handle(@klass)
47
+ end
43
48
  end
44
49
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_form_objects
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michaël Villeneuve
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-26 00:00:00.000000000 Z
11
+ date: 2020-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -142,8 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
142
142
  - !ruby/object:Gem::Version
143
143
  version: '0'
144
144
  requirements: []
145
- rubyforge_project:
146
- rubygems_version: 2.7.3
145
+ rubygems_version: 3.1.2
147
146
  signing_key:
148
147
  specification_version: 4
149
148
  summary: A step toward an hexagonal Rails architecture