aasm 3.0.20 → 3.0.21
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.
- data/CHANGELOG.md +5 -0
- data/README.md +3 -1
- data/lib/aasm/base.rb +1 -3
- data/lib/aasm/persistence/active_record_persistence.rb +1 -1
- data/lib/aasm/version.rb +1 -1
- data/spec/unit/persistence/active_record_persistence_spec.rb +15 -3
- metadata +24 -74
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## 3.0.21
|
4
|
+
|
5
|
+
* support nested ActiveRecord transactions ([@ozeias](https://github.com/ozeias))
|
6
|
+
* allow overwriting of events, can be very useful with inheritance ([@Intrepidd](https://github.com/Intrepidd))
|
7
|
+
|
3
8
|
## 3.0.20
|
4
9
|
|
5
10
|
* added configuration option to disable automatic scope creation
|
data/README.md
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
# AASM - Ruby state machines
|
1
|
+
# AASM - Ruby state machines
|
2
|
+
|
3
|
+
[](http://travis-ci.org/aasm/aasm) [](https://codeclimate.com/github/aasm/aasm) [](https://coveralls.io/r/aasm/aasm)
|
2
4
|
|
3
5
|
This package contains AASM, a library for adding finite state machines to Ruby classes.
|
4
6
|
|
data/lib/aasm/base.rb
CHANGED
@@ -48,9 +48,7 @@ module AASM
|
|
48
48
|
def event(name, options={}, &block)
|
49
49
|
# @clazz.aasm_event(name, options, &block)
|
50
50
|
|
51
|
-
|
52
|
-
@state_machine.events[name] = AASM::Event.new(name, options, &block)
|
53
|
-
end
|
51
|
+
@state_machine.events[name] = AASM::Event.new(name, options, &block)
|
54
52
|
|
55
53
|
# an addition over standard aasm so that, before firing an event, you can ask
|
56
54
|
# may_event? and get back a boolean that tells you whether the guard method
|
data/lib/aasm/version.rb
CHANGED
@@ -179,9 +179,10 @@ describe 'transitions with persistence' do
|
|
179
179
|
end
|
180
180
|
|
181
181
|
describe 'transactions' do
|
182
|
+
let(:worker) { Worker.create!(:name => 'worker', :status => 'sleeping') }
|
183
|
+
let(:transactor) { Transactor.create!(:name => 'transactor', :worker => worker) }
|
184
|
+
|
182
185
|
it 'should rollback all changes' do
|
183
|
-
worker = Worker.create!(:name => 'worker', :status => 'sleeping')
|
184
|
-
transactor = Transactor.create!(:name => 'transactor', :worker => worker)
|
185
186
|
transactor.should be_sleeping
|
186
187
|
worker.status.should == 'sleeping'
|
187
188
|
|
@@ -189,6 +190,17 @@ describe 'transitions with persistence' do
|
|
189
190
|
transactor.should be_running
|
190
191
|
worker.reload.status.should == 'sleeping'
|
191
192
|
end
|
192
|
-
end
|
193
193
|
|
194
|
+
it "should rollback all changes in nested transaction" do
|
195
|
+
transactor.should be_sleeping
|
196
|
+
worker.status.should == 'sleeping'
|
197
|
+
|
198
|
+
Worker.transaction do
|
199
|
+
lambda { transactor.run! }.should raise_error(StandardError, 'failed on purpose')
|
200
|
+
end
|
201
|
+
|
202
|
+
transactor.should be_running
|
203
|
+
worker.reload.status.should == 'sleeping'
|
204
|
+
end
|
205
|
+
end
|
194
206
|
end
|
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: 3.0.
|
4
|
+
version: 3.0.21
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -12,27 +12,22 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2013-08-
|
15
|
+
date: 2013-08-27 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: activerecord
|
19
|
-
requirement: !ruby/object:Gem::Requirement
|
19
|
+
requirement: &70183071498180 !ruby/object:Gem::Requirement
|
20
20
|
none: false
|
21
21
|
requirements:
|
22
|
-
- -
|
22
|
+
- - =
|
23
23
|
- !ruby/object:Gem::Version
|
24
24
|
version: 3.2.12
|
25
25
|
type: :development
|
26
26
|
prerelease: false
|
27
|
-
version_requirements:
|
28
|
-
none: false
|
29
|
-
requirements:
|
30
|
-
- - '='
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: 3.2.12
|
27
|
+
version_requirements: *70183071498180
|
33
28
|
- !ruby/object:Gem::Dependency
|
34
29
|
name: mongoid
|
35
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirement: &70183071497520 !ruby/object:Gem::Requirement
|
36
31
|
none: false
|
37
32
|
requirements:
|
38
33
|
- - ! '>='
|
@@ -40,15 +35,10 @@ dependencies:
|
|
40
35
|
version: '0'
|
41
36
|
type: :development
|
42
37
|
prerelease: false
|
43
|
-
version_requirements:
|
44
|
-
none: false
|
45
|
-
requirements:
|
46
|
-
- - ! '>='
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
version: '0'
|
38
|
+
version_requirements: *70183071497520
|
49
39
|
- !ruby/object:Gem::Dependency
|
50
40
|
name: rake
|
51
|
-
requirement: !ruby/object:Gem::Requirement
|
41
|
+
requirement: &70183071497060 !ruby/object:Gem::Requirement
|
52
42
|
none: false
|
53
43
|
requirements:
|
54
44
|
- - ! '>='
|
@@ -56,15 +46,10 @@ dependencies:
|
|
56
46
|
version: '0'
|
57
47
|
type: :development
|
58
48
|
prerelease: false
|
59
|
-
version_requirements:
|
60
|
-
none: false
|
61
|
-
requirements:
|
62
|
-
- - ! '>='
|
63
|
-
- !ruby/object:Gem::Version
|
64
|
-
version: '0'
|
49
|
+
version_requirements: *70183071497060
|
65
50
|
- !ruby/object:Gem::Dependency
|
66
51
|
name: sdoc
|
67
|
-
requirement: !ruby/object:Gem::Requirement
|
52
|
+
requirement: &70183071496640 !ruby/object:Gem::Requirement
|
68
53
|
none: false
|
69
54
|
requirements:
|
70
55
|
- - ! '>='
|
@@ -72,15 +57,10 @@ dependencies:
|
|
72
57
|
version: '0'
|
73
58
|
type: :development
|
74
59
|
prerelease: false
|
75
|
-
version_requirements:
|
76
|
-
none: false
|
77
|
-
requirements:
|
78
|
-
- - ! '>='
|
79
|
-
- !ruby/object:Gem::Version
|
80
|
-
version: '0'
|
60
|
+
version_requirements: *70183071496640
|
81
61
|
- !ruby/object:Gem::Dependency
|
82
62
|
name: rspec
|
83
|
-
requirement: !ruby/object:Gem::Requirement
|
63
|
+
requirement: &70183071496140 !ruby/object:Gem::Requirement
|
84
64
|
none: false
|
85
65
|
requirements:
|
86
66
|
- - ~>
|
@@ -88,15 +68,10 @@ dependencies:
|
|
88
68
|
version: '2.0'
|
89
69
|
type: :development
|
90
70
|
prerelease: false
|
91
|
-
version_requirements:
|
92
|
-
none: false
|
93
|
-
requirements:
|
94
|
-
- - ~>
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '2.0'
|
71
|
+
version_requirements: *70183071496140
|
97
72
|
- !ruby/object:Gem::Dependency
|
98
73
|
name: rr
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
74
|
+
requirement: &70183071495720 !ruby/object:Gem::Requirement
|
100
75
|
none: false
|
101
76
|
requirements:
|
102
77
|
- - ! '>='
|
@@ -104,15 +79,10 @@ dependencies:
|
|
104
79
|
version: '0'
|
105
80
|
type: :development
|
106
81
|
prerelease: false
|
107
|
-
version_requirements:
|
108
|
-
none: false
|
109
|
-
requirements:
|
110
|
-
- - ! '>='
|
111
|
-
- !ruby/object:Gem::Version
|
112
|
-
version: '0'
|
82
|
+
version_requirements: *70183071495720
|
113
83
|
- !ruby/object:Gem::Dependency
|
114
84
|
name: sqlite3
|
115
|
-
requirement: !ruby/object:Gem::Requirement
|
85
|
+
requirement: &70183071495260 !ruby/object:Gem::Requirement
|
116
86
|
none: false
|
117
87
|
requirements:
|
118
88
|
- - ! '>='
|
@@ -120,15 +90,10 @@ dependencies:
|
|
120
90
|
version: '0'
|
121
91
|
type: :development
|
122
92
|
prerelease: false
|
123
|
-
version_requirements:
|
124
|
-
none: false
|
125
|
-
requirements:
|
126
|
-
- - ! '>='
|
127
|
-
- !ruby/object:Gem::Version
|
128
|
-
version: '0'
|
93
|
+
version_requirements: *70183071495260
|
129
94
|
- !ruby/object:Gem::Dependency
|
130
95
|
name: minitest
|
131
|
-
requirement: !ruby/object:Gem::Requirement
|
96
|
+
requirement: &70183071494840 !ruby/object:Gem::Requirement
|
132
97
|
none: false
|
133
98
|
requirements:
|
134
99
|
- - ! '>='
|
@@ -136,15 +101,10 @@ dependencies:
|
|
136
101
|
version: '0'
|
137
102
|
type: :development
|
138
103
|
prerelease: false
|
139
|
-
version_requirements:
|
140
|
-
none: false
|
141
|
-
requirements:
|
142
|
-
- - ! '>='
|
143
|
-
- !ruby/object:Gem::Version
|
144
|
-
version: '0'
|
104
|
+
version_requirements: *70183071494840
|
145
105
|
- !ruby/object:Gem::Dependency
|
146
106
|
name: ruby-debug-completion
|
147
|
-
requirement: !ruby/object:Gem::Requirement
|
107
|
+
requirement: &70183071494420 !ruby/object:Gem::Requirement
|
148
108
|
none: false
|
149
109
|
requirements:
|
150
110
|
- - ! '>='
|
@@ -152,15 +112,10 @@ dependencies:
|
|
152
112
|
version: '0'
|
153
113
|
type: :development
|
154
114
|
prerelease: false
|
155
|
-
version_requirements:
|
156
|
-
none: false
|
157
|
-
requirements:
|
158
|
-
- - ! '>='
|
159
|
-
- !ruby/object:Gem::Version
|
160
|
-
version: '0'
|
115
|
+
version_requirements: *70183071494420
|
161
116
|
- !ruby/object:Gem::Dependency
|
162
117
|
name: coveralls
|
163
|
-
requirement: !ruby/object:Gem::Requirement
|
118
|
+
requirement: &70183071494000 !ruby/object:Gem::Requirement
|
164
119
|
none: false
|
165
120
|
requirements:
|
166
121
|
- - ! '>='
|
@@ -168,12 +123,7 @@ dependencies:
|
|
168
123
|
version: '0'
|
169
124
|
type: :development
|
170
125
|
prerelease: false
|
171
|
-
version_requirements:
|
172
|
-
none: false
|
173
|
-
requirements:
|
174
|
-
- - ! '>='
|
175
|
-
- !ruby/object:Gem::Version
|
176
|
-
version: '0'
|
126
|
+
version_requirements: *70183071494000
|
177
127
|
description: AASM is a continuation of the acts as state machine rails plugin, built
|
178
128
|
for plain Ruby objects.
|
179
129
|
email: scott@elitists.net, ttilley@gmail.com, aasm@mt7.de
|
@@ -273,7 +223,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
273
223
|
version: '0'
|
274
224
|
requirements: []
|
275
225
|
rubyforge_project:
|
276
|
-
rubygems_version: 1.8.
|
226
|
+
rubygems_version: 1.8.11
|
277
227
|
signing_key:
|
278
228
|
specification_version: 3
|
279
229
|
summary: State machine mixin for Ruby objects
|