aasm 5.0.7 → 5.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/CHANGELOG.md +4 -0
- data/aasm.gemspec +0 -1
- data/lib/aasm/persistence/active_record_persistence.rb +0 -8
- data/lib/aasm/persistence/orm.rb +19 -23
- data/lib/aasm/version.rb +1 -1
- data/spec/unit/persistence/active_record_persistence_spec.rb +0 -32
- metadata +2 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: c02be243049ac08482ee6dd9de9b388d7f965019012f680507b75aee43e1819c
|
4
|
+
data.tar.gz: e41809b4fd44cd1d5358e4da499c6b2691caf6a2b6f0b1cf24816458af711522
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c5e49eeff60a68201dccfd988525030946a5f4e2ff080a8818ec729f7bb88291b6f333ccf8666a241dfb72b38a2f30333afbc4d284c3c6103eaab49446630b8e
|
7
|
+
data.tar.gz: d2d16d9368d1c8dfd8f50baaea1f07b525798a017fc612c27705161606ae27e1cdd1ea15b979d6d916cfd8abaa81479ff20c72577f8dbbd140dcb78572683845
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
## unreleased
|
4
4
|
|
5
|
+
## 5.0.8
|
6
|
+
|
7
|
+
* Revert Fix for :after_commit within nested transaction because it adds after_commit_action dependency which is dependent on many gems.
|
8
|
+
|
5
9
|
## 5.0.7
|
6
10
|
|
7
11
|
* Fix :after_commit within nested transaction [#666](https://github.com/aasm/aasm/pull/666), thanks to [stokarenko](https://github.com/stokarenko)
|
data/aasm.gemspec
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'after_commit_action'
|
2
1
|
require 'aasm/persistence/orm'
|
3
2
|
module AASM
|
4
3
|
module Persistence
|
@@ -29,7 +28,6 @@ module AASM
|
|
29
28
|
# end
|
30
29
|
#
|
31
30
|
def self.included(base)
|
32
|
-
base.send(:include, ::AfterCommitAction) unless base.include?(::AfterCommitAction)
|
33
31
|
base.send(:include, AASM::Persistence::Base)
|
34
32
|
base.send(:include, AASM::Persistence::ORM)
|
35
33
|
base.send(:include, AASM::Persistence::ActiveRecordPersistence::InstanceMethods)
|
@@ -90,12 +88,6 @@ module AASM
|
|
90
88
|
end
|
91
89
|
end
|
92
90
|
|
93
|
-
def aasm_execute_after_commit
|
94
|
-
execute_after_commit do
|
95
|
-
yield
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
91
|
def aasm_enum(name=:default)
|
100
92
|
case AASM::StateMachineStore.fetch(self.class, true).machine(name).config.enum
|
101
93
|
when false then nil
|
data/lib/aasm/persistence/orm.rb
CHANGED
@@ -81,10 +81,6 @@ module AASM
|
|
81
81
|
true
|
82
82
|
end
|
83
83
|
|
84
|
-
def aasm_execute_after_commit
|
85
|
-
yield
|
86
|
-
end
|
87
|
-
|
88
84
|
def aasm_write_state_attribute(state, name=:default)
|
89
85
|
aasm_write_attribute(self.class.aasm(name).attribute_name, aasm_raw_attribute_value(state, name))
|
90
86
|
end
|
@@ -120,32 +116,32 @@ module AASM
|
|
120
116
|
|
121
117
|
# Returns true if event was fired successfully and transaction completed.
|
122
118
|
def aasm_fire_event(state_machine_name, name, options, *args, &block)
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
119
|
+
if aasm_supports_transactions? && options[:persist]
|
120
|
+
event = self.class.aasm(state_machine_name).state_machine.events[name]
|
121
|
+
event.fire_callbacks(:before_transaction, self, *args)
|
122
|
+
event.fire_global_callbacks(:before_all_transactions, self, *args)
|
123
|
+
|
124
|
+
begin
|
125
|
+
success = if options[:persist] && use_transactions?(state_machine_name)
|
126
|
+
aasm_transaction(requires_new?(state_machine_name), requires_lock?(state_machine_name)) do
|
127
|
+
super
|
128
|
+
end
|
129
|
+
else
|
132
130
|
super
|
133
131
|
end
|
134
|
-
else
|
135
|
-
super
|
136
|
-
end
|
137
132
|
|
138
|
-
|
139
|
-
aasm_execute_after_commit do
|
133
|
+
if success
|
140
134
|
event.fire_callbacks(:after_commit, self, *args)
|
141
135
|
event.fire_global_callbacks(:after_all_commits, self, *args)
|
142
136
|
end
|
143
|
-
end
|
144
137
|
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
138
|
+
success
|
139
|
+
ensure
|
140
|
+
event.fire_callbacks(:after_transaction, self, *args)
|
141
|
+
event.fire_global_callbacks(:after_all_transactions, self, *args)
|
142
|
+
end
|
143
|
+
else
|
144
|
+
super
|
149
145
|
end
|
150
146
|
end
|
151
147
|
|
data/lib/aasm/version.rb
CHANGED
@@ -613,38 +613,6 @@ if defined?(ActiveRecord)
|
|
613
613
|
expect(validator).to be_running
|
614
614
|
expect(validator.name).to eq("name")
|
615
615
|
end
|
616
|
-
|
617
|
-
context "nested transaction" do
|
618
|
-
it "should fire :after_commit if root transaction was successful" do
|
619
|
-
validator = Validator.create(:name => 'name')
|
620
|
-
expect(validator).to be_sleeping
|
621
|
-
|
622
|
-
validator.transaction do
|
623
|
-
validator.run!
|
624
|
-
expect(validator.name).to eq("name")
|
625
|
-
expect(validator).to be_running
|
626
|
-
end
|
627
|
-
|
628
|
-
expect(validator.name).to eq("name changed")
|
629
|
-
expect(validator.reload).to be_running
|
630
|
-
end
|
631
|
-
end
|
632
|
-
|
633
|
-
it "should not fire :after_commit if root transaction failed" do
|
634
|
-
validator = Validator.create(:name => 'name')
|
635
|
-
expect(validator).to be_sleeping
|
636
|
-
|
637
|
-
validator.transaction do
|
638
|
-
validator.run!
|
639
|
-
expect(validator.name).to eq("name")
|
640
|
-
expect(validator).to be_running
|
641
|
-
|
642
|
-
raise ActiveRecord::Rollback, "failed on purpose"
|
643
|
-
end
|
644
|
-
|
645
|
-
expect(validator.name).to eq("name")
|
646
|
-
expect(validator.reload).to be_sleeping
|
647
|
-
end
|
648
616
|
end
|
649
617
|
|
650
618
|
describe 'before and after transaction callbacks' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aasm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.0.
|
4
|
+
version: 5.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thorsten Boettger
|
@@ -25,20 +25,6 @@ dependencies:
|
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '1.0'
|
28
|
-
- !ruby/object:Gem::Dependency
|
29
|
-
name: after_commit_action
|
30
|
-
requirement: !ruby/object:Gem::Requirement
|
31
|
-
requirements:
|
32
|
-
- - "~>"
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: '1.0'
|
35
|
-
type: :runtime
|
36
|
-
prerelease: false
|
37
|
-
version_requirements: !ruby/object:Gem::Requirement
|
38
|
-
requirements:
|
39
|
-
- - "~>"
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
version: '1.0'
|
42
28
|
- !ruby/object:Gem::Dependency
|
43
29
|
name: rake
|
44
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -437,8 +423,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
437
423
|
- !ruby/object:Gem::Version
|
438
424
|
version: '0'
|
439
425
|
requirements: []
|
440
|
-
|
441
|
-
rubygems_version: 2.6.14
|
426
|
+
rubygems_version: 3.1.2
|
442
427
|
signing_key:
|
443
428
|
specification_version: 4
|
444
429
|
summary: State machine mixin for Ruby objects
|