active_form_objects 2.1.3 → 2.2.0

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: 70fae9d4bfd4ab4a8be0fb5078bc76df2fa26aa7dd8fe84ecfc8da4222ed13f3
4
- data.tar.gz: 7a5d4015059b41d4e731209a7791862e9afe2ad3b81787b47f2453cefa738f31
3
+ metadata.gz: ec2115a7e0927fc58e7bd8ad1b0013d082765b48442b7b3fb75ace036218f622
4
+ data.tar.gz: 4e36c456697a2552a2637e4cdc17f8ff9ddd0137f3b2b52d9b44ae2f0fa4d5a3
5
5
  SHA512:
6
- metadata.gz: 838f6f1568eec8a9c16516fa9ccd7c30d98a9a54bb7885ccd90c324d24c770549df7f3f2ba17ba0551e259be6f29fa15effcd0e1819e0f72f9e89b5cd3da2020
7
- data.tar.gz: 006365a9ac48e75bb38237b45da7ef7e4b8ad65d0229e6a339c026abf43bda3e7067bf2cad6236d6c71b9e7a2d0bfa622d8b7a969759d92243ba4bea43a224b7
6
+ metadata.gz: 5082b7dff3c3412f59057ecfe7f733c308a54560c12d55f0313737f928e2ae73bc4cc2eaacde782223f5e76823fa47430c3530ade6d9f24d3acc7a5b44ebecec
7
+ data.tar.gz: 5c49aadd223f7763ee6a10aa42f66c5ba6c00c19f0d11b0df98fb7b61b9d9d74a96c766a7d177526e345da234cb4d667f36c4a3803329134d262d6f89b558642
@@ -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)
@@ -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,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_form_objects
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.3
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michaël Villeneuve
@@ -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.0.1
147
146
  signing_key:
148
147
  specification_version: 4
149
148
  summary: A step toward an hexagonal Rails architecture