aasm 3.0.20 → 3.0.21
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
[![Build Status](https://secure.travis-ci.org/aasm/aasm.png?branch=master)](http://travis-ci.org/aasm/aasm) [![Code Climate](https://codeclimate.com/github/aasm/aasm.png)](https://codeclimate.com/github/aasm/aasm) [![Coverage Status](https://coveralls.io/repos/aasm/aasm/badge.png?branch=master)](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
|