statesman 3.5.0 → 6.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.circleci/config.yml +45 -225
- data/.rubocop.yml +1 -1
- data/.rubocop_todo.yml +26 -6
- data/CHANGELOG.md +69 -0
- data/Gemfile +9 -3
- data/Guardfile +2 -0
- data/README.md +77 -47
- data/Rakefile +2 -4
- data/lib/generators/statesman/active_record_transition_generator.rb +2 -0
- data/lib/generators/statesman/generator_helpers.rb +2 -0
- data/lib/generators/statesman/migration_generator.rb +2 -0
- data/lib/statesman/adapters/active_record.rb +88 -6
- data/lib/statesman/adapters/active_record_queries.rb +100 -36
- data/lib/statesman/adapters/active_record_transition.rb +2 -0
- data/lib/statesman/adapters/memory.rb +2 -0
- data/lib/statesman/adapters/memory_transition.rb +2 -0
- data/lib/statesman/callback.rb +2 -0
- data/lib/statesman/config.rb +2 -0
- data/lib/statesman/exceptions.rb +29 -2
- data/lib/statesman/guard.rb +3 -4
- data/lib/statesman/machine.rb +29 -7
- data/lib/statesman/railtie.rb +2 -0
- data/lib/statesman/utils.rb +2 -0
- data/lib/statesman/version.rb +3 -1
- data/lib/statesman.rb +2 -3
- data/lib/tasks/statesman.rake +3 -1
- data/spec/fixtures/add_constraints_to_most_recent_for_bacon_transitions_with_partial_index.rb +2 -0
- data/spec/fixtures/add_constraints_to_most_recent_for_bacon_transitions_without_partial_index.rb +2 -0
- data/spec/fixtures/add_most_recent_to_bacon_transitions.rb +2 -0
- data/spec/generators/statesman/active_record_transition_generator_spec.rb +2 -0
- data/spec/generators/statesman/migration_generator_spec.rb +2 -0
- data/spec/spec_helper.rb +3 -30
- data/spec/statesman/adapters/active_record_queries_spec.rb +165 -91
- data/spec/statesman/adapters/active_record_spec.rb +4 -0
- data/spec/statesman/adapters/active_record_transition_spec.rb +2 -0
- data/spec/statesman/adapters/memory_spec.rb +2 -0
- data/spec/statesman/adapters/memory_transition_spec.rb +2 -0
- data/spec/statesman/adapters/shared_examples.rb +2 -0
- data/spec/statesman/callback_spec.rb +2 -0
- data/spec/statesman/config_spec.rb +2 -0
- data/spec/statesman/guard_spec.rb +2 -0
- data/spec/statesman/machine_spec.rb +79 -4
- data/spec/statesman/utils_spec.rb +2 -0
- data/spec/support/active_record.rb +9 -12
- data/spec/support/generators_shared_examples.rb +2 -0
- data/statesman.gemspec +5 -3
- metadata +17 -22
- data/lib/generators/statesman/mongoid_transition_generator.rb +0 -25
- data/lib/generators/statesman/templates/mongoid_transition_model.rb.erb +0 -14
- data/lib/statesman/adapters/mongoid.rb +0 -66
- data/lib/statesman/adapters/mongoid_transition.rb +0 -10
- data/spec/generators/statesman/mongoid_transition_generator_spec.rb +0 -23
- data/spec/statesman/adapters/mongoid_spec.rb +0 -86
- data/spec/support/mongoid.rb +0 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 75560d08df4affec82126fce63627c30902c534e0e8fd11dd89fdd1c94f66b6b
|
4
|
+
data.tar.gz: 3308c1cdff0e0cc32c2e964fac6c7e641bd841384c50d94eb824cae785822c3a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7cb81b50c75c21841f729fa91635cc6470397bafdc683b0ccdee1809e99cc2961ab3084d3fcd256b1b062d1362b6a17e2c7d63ea63dad9d6bc7ae8143d982542
|
7
|
+
data.tar.gz: 3885a1f4459572a92f3c47c6544d5a6eab1e8c38d0adb4206dbde7ad331953090822e3c2930eef695139e96a88df47bf55f4b2eb9df084d5724edab0e97c36ea
|
data/.circleci/config.yml
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
---
|
1
2
|
version: 2
|
2
3
|
|
3
4
|
references:
|
@@ -11,7 +12,7 @@ references:
|
|
11
12
|
- type: cache-restore
|
12
13
|
key: statesman-{{ checksum "Gemfile" }}-{{ checksum "~/RAILS_VERSION.txt" }}
|
13
14
|
|
14
|
-
- run: gem install bundler
|
15
|
+
- run: gem install bundler -v 1.3
|
15
16
|
|
16
17
|
- run: bundle install --path vendor/bundle
|
17
18
|
|
@@ -30,129 +31,12 @@ references:
|
|
30
31
|
path: /tmp/test-results
|
31
32
|
|
32
33
|
jobs:
|
33
|
-
build-
|
34
|
+
build-ruby249-rails-429-mysql:
|
34
35
|
docker:
|
35
|
-
- image: circleci/ruby:2.4.
|
36
|
-
environment:
|
37
|
-
- RAILS_VERSION=4.2.9
|
38
|
-
- DATABASE_DEPENDENCY_PORT=27017
|
39
|
-
- image: circleci/mongo:3
|
40
|
-
steps: *steps
|
41
|
-
build-ruby241-rails-429-mysql:
|
42
|
-
docker:
|
43
|
-
- image: circleci/ruby:2.4.1-node
|
44
|
-
environment:
|
45
|
-
- RAILS_VERSION=4.2.9
|
46
|
-
- DATABASE_URL=mysql2://root@127.0.0.1/statesman_test
|
47
|
-
- EXCLUDE_MONGOID=true
|
48
|
-
- DATABASE_DEPENDENCY_PORT=3306
|
49
|
-
- image: circleci/mysql:5.7.18
|
50
|
-
environment:
|
51
|
-
- MYSQL_ALLOW_EMPTY_PASSWORD=true
|
52
|
-
- MYSQL_USER=root
|
53
|
-
- MYSQL_PASSWORD=
|
54
|
-
- MYSQL_DATABASE=statesman_test
|
55
|
-
steps: *steps
|
56
|
-
build-ruby241-rails-429-postgres:
|
57
|
-
docker:
|
58
|
-
- image: circleci/ruby:2.4.1-node
|
59
|
-
environment:
|
60
|
-
- RAILS_VERSION=4.2.9
|
61
|
-
- DATABASE_URL=postgres://postgres@localhost/statesman_test
|
62
|
-
- EXCLUDE_MONGOID=true
|
63
|
-
- DATABASE_DEPENDENCY_PORT=5432
|
64
|
-
- image: circleci/postgres:9.6
|
65
|
-
environment:
|
66
|
-
- POSTGRES_USER=postgres
|
67
|
-
- POSTGRES_DB=statesman_test
|
68
|
-
steps: *steps
|
69
|
-
build-ruby241-rails-505-mongo:
|
70
|
-
docker:
|
71
|
-
- image: circleci/ruby:2.4.1-node
|
72
|
-
environment:
|
73
|
-
- RAILS_VERSION=5.0.5
|
74
|
-
- DATABASE_DEPENDENCY_PORT=27017
|
75
|
-
- image: circleci/mongo:3
|
76
|
-
steps: *steps
|
77
|
-
build-ruby241-rails-505-mysql:
|
78
|
-
docker:
|
79
|
-
- image: circleci/ruby:2.4.1-node
|
80
|
-
environment:
|
81
|
-
- RAILS_VERSION=5.0.5
|
82
|
-
- DATABASE_URL=mysql2://root@127.0.0.1/statesman_test
|
83
|
-
- EXCLUDE_MONGOID=true
|
84
|
-
- DATABASE_DEPENDENCY_PORT=3306
|
85
|
-
- image: circleci/mysql:5.7.18
|
86
|
-
environment:
|
87
|
-
- MYSQL_ALLOW_EMPTY_PASSWORD=true
|
88
|
-
- MYSQL_USER=root
|
89
|
-
- MYSQL_PASSWORD=
|
90
|
-
- MYSQL_DATABASE=statesman_test
|
91
|
-
steps: *steps
|
92
|
-
build-ruby241-rails-505-postgres:
|
93
|
-
docker:
|
94
|
-
- image: circleci/ruby:2.4.1-node
|
95
|
-
environment:
|
96
|
-
- RAILS_VERSION=5.0.5
|
97
|
-
- DATABASE_URL=postgres://postgres@localhost/statesman_test
|
98
|
-
- EXCLUDE_MONGOID=true
|
99
|
-
- DATABASE_DEPENDENCY_PORT=5432
|
100
|
-
- image: circleci/postgres:9.6
|
101
|
-
environment:
|
102
|
-
- POSTGRES_USER=postgres
|
103
|
-
- POSTGRES_DB=statesman_test
|
104
|
-
steps: *steps
|
105
|
-
build-ruby241-rails-513-mongo:
|
106
|
-
docker:
|
107
|
-
- image: circleci/ruby:2.4.1-node
|
108
|
-
environment:
|
109
|
-
- RAILS_VERSION=5.1.3
|
110
|
-
- DATABASE_DEPENDENCY_PORT=27017
|
111
|
-
- image: circleci/mongo:3
|
112
|
-
steps: *steps
|
113
|
-
build-ruby241-rails-513-mysql:
|
114
|
-
docker:
|
115
|
-
- image: circleci/ruby:2.4.1-node
|
116
|
-
environment:
|
117
|
-
- RAILS_VERSION=5.1.3
|
118
|
-
- DATABASE_URL=mysql2://root@127.0.0.1/statesman_test
|
119
|
-
- EXCLUDE_MONGOID=true
|
120
|
-
- DATABASE_DEPENDENCY_PORT=3306
|
121
|
-
- image: circleci/mysql:5.7.18
|
122
|
-
environment:
|
123
|
-
- MYSQL_ALLOW_EMPTY_PASSWORD=true
|
124
|
-
- MYSQL_USER=root
|
125
|
-
- MYSQL_PASSWORD=
|
126
|
-
- MYSQL_DATABASE=statesman_test
|
127
|
-
steps: *steps
|
128
|
-
build-ruby241-rails-513-postgres:
|
129
|
-
docker:
|
130
|
-
- image: circleci/ruby:2.4.1-node
|
131
|
-
environment:
|
132
|
-
- RAILS_VERSION=5.1.3
|
133
|
-
- DATABASE_URL=postgres://postgres@localhost/statesman_test
|
134
|
-
- EXCLUDE_MONGOID=true
|
135
|
-
- DATABASE_DEPENDENCY_PORT=5432
|
136
|
-
- image: circleci/postgres:9.6
|
137
|
-
environment:
|
138
|
-
- POSTGRES_USER=postgres
|
139
|
-
- POSTGRES_DB=statesman_test
|
140
|
-
steps: *steps
|
141
|
-
build-ruby233-rails-429-mongo:
|
142
|
-
docker:
|
143
|
-
- image: circleci/ruby:2.3.3-node
|
144
|
-
environment:
|
145
|
-
- RAILS_VERSION=4.2.9
|
146
|
-
- DATABASE_DEPENDENCY_PORT=27017
|
147
|
-
- image: circleci/mongo:3
|
148
|
-
steps: *steps
|
149
|
-
build-ruby233-rails-429-mysql:
|
150
|
-
docker:
|
151
|
-
- image: circleci/ruby:2.3.3-node
|
36
|
+
- image: circleci/ruby:2.4.9-node
|
152
37
|
environment:
|
153
38
|
- RAILS_VERSION=4.2.9
|
154
39
|
- DATABASE_URL=mysql2://root@127.0.0.1/statesman_test
|
155
|
-
- EXCLUDE_MONGOID=true
|
156
40
|
- DATABASE_DEPENDENCY_PORT=3306
|
157
41
|
- image: circleci/mysql:5.7.18
|
158
42
|
environment:
|
@@ -161,34 +45,24 @@ jobs:
|
|
161
45
|
- MYSQL_PASSWORD=
|
162
46
|
- MYSQL_DATABASE=statesman_test
|
163
47
|
steps: *steps
|
164
|
-
build-
|
48
|
+
build-ruby249-rails-429-postgres:
|
165
49
|
docker:
|
166
|
-
- image: circleci/ruby:2.
|
50
|
+
- image: circleci/ruby:2.4.9-node
|
167
51
|
environment:
|
168
52
|
- RAILS_VERSION=4.2.9
|
169
53
|
- DATABASE_URL=postgres://postgres@localhost/statesman_test
|
170
|
-
- EXCLUDE_MONGOID=true
|
171
54
|
- DATABASE_DEPENDENCY_PORT=5432
|
172
55
|
- image: circleci/postgres:9.6
|
173
56
|
environment:
|
174
57
|
- POSTGRES_USER=postgres
|
175
58
|
- POSTGRES_DB=statesman_test
|
176
59
|
steps: *steps
|
177
|
-
build-
|
178
|
-
docker:
|
179
|
-
- image: circleci/ruby:2.3.3-node
|
180
|
-
environment:
|
181
|
-
- RAILS_VERSION=5.0.5
|
182
|
-
- DATABASE_DEPENDENCY_PORT=27017
|
183
|
-
- image: circleci/mongo:3
|
184
|
-
steps: *steps
|
185
|
-
build-ruby233-rails-505-mysql:
|
60
|
+
build-ruby249-rails-505-mysql:
|
186
61
|
docker:
|
187
|
-
- image: circleci/ruby:2.
|
62
|
+
- image: circleci/ruby:2.4.9-node
|
188
63
|
environment:
|
189
64
|
- RAILS_VERSION=5.0.5
|
190
65
|
- DATABASE_URL=mysql2://root@127.0.0.1/statesman_test
|
191
|
-
- EXCLUDE_MONGOID=true
|
192
66
|
- DATABASE_DEPENDENCY_PORT=3306
|
193
67
|
- image: circleci/mysql:5.7.18
|
194
68
|
environment:
|
@@ -197,34 +71,24 @@ jobs:
|
|
197
71
|
- MYSQL_PASSWORD=
|
198
72
|
- MYSQL_DATABASE=statesman_test
|
199
73
|
steps: *steps
|
200
|
-
build-
|
74
|
+
build-ruby249-rails-505-postgres:
|
201
75
|
docker:
|
202
|
-
- image: circleci/ruby:2.
|
76
|
+
- image: circleci/ruby:2.4.9-node
|
203
77
|
environment:
|
204
78
|
- RAILS_VERSION=5.0.5
|
205
79
|
- DATABASE_URL=postgres://postgres@localhost/statesman_test
|
206
|
-
- EXCLUDE_MONGOID=true
|
207
80
|
- DATABASE_DEPENDENCY_PORT=5432
|
208
81
|
- image: circleci/postgres:9.6
|
209
82
|
environment:
|
210
83
|
- POSTGRES_USER=postgres
|
211
84
|
- POSTGRES_DB=statesman_test
|
212
85
|
steps: *steps
|
213
|
-
build-
|
214
|
-
docker:
|
215
|
-
- image: circleci/ruby:2.3.3-node
|
216
|
-
environment:
|
217
|
-
- RAILS_VERSION=5.1.3
|
218
|
-
- DATABASE_DEPENDENCY_PORT=27017
|
219
|
-
- image: circleci/mongo:3
|
220
|
-
steps: *steps
|
221
|
-
build-ruby233-rails-513-mysql:
|
86
|
+
build-ruby249-rails-513-mysql:
|
222
87
|
docker:
|
223
|
-
- image: circleci/ruby:2.
|
88
|
+
- image: circleci/ruby:2.4.9-node
|
224
89
|
environment:
|
225
90
|
- RAILS_VERSION=5.1.3
|
226
91
|
- DATABASE_URL=mysql2://root@127.0.0.1/statesman_test
|
227
|
-
- EXCLUDE_MONGOID=true
|
228
92
|
- DATABASE_DEPENDENCY_PORT=3306
|
229
93
|
- image: circleci/mysql:5.7.18
|
230
94
|
environment:
|
@@ -233,34 +97,24 @@ jobs:
|
|
233
97
|
- MYSQL_PASSWORD=
|
234
98
|
- MYSQL_DATABASE=statesman_test
|
235
99
|
steps: *steps
|
236
|
-
build-
|
100
|
+
build-ruby249-rails-513-postgres:
|
237
101
|
docker:
|
238
|
-
- image: circleci/ruby:2.
|
102
|
+
- image: circleci/ruby:2.4.9-node
|
239
103
|
environment:
|
240
104
|
- RAILS_VERSION=5.1.3
|
241
105
|
- DATABASE_URL=postgres://postgres@localhost/statesman_test
|
242
|
-
- EXCLUDE_MONGOID=true
|
243
106
|
- DATABASE_DEPENDENCY_PORT=5432
|
244
107
|
- image: circleci/postgres:9.6
|
245
108
|
environment:
|
246
109
|
- POSTGRES_USER=postgres
|
247
110
|
- POSTGRES_DB=statesman_test
|
248
111
|
steps: *steps
|
249
|
-
build-
|
250
|
-
docker:
|
251
|
-
- image: circleci/ruby:2.2.7-node
|
252
|
-
environment:
|
253
|
-
- RAILS_VERSION=4.2.9
|
254
|
-
- DATABASE_DEPENDENCY_PORT=27017
|
255
|
-
- image: circleci/mongo:3
|
256
|
-
steps: *steps
|
257
|
-
build-ruby227-rails-429-mysql:
|
112
|
+
build-ruby265-rails-600-mysql:
|
258
113
|
docker:
|
259
|
-
- image: circleci/ruby:2.
|
114
|
+
- image: circleci/ruby:2.6.5-node
|
260
115
|
environment:
|
261
|
-
- RAILS_VERSION=
|
116
|
+
- RAILS_VERSION=6.0.0
|
262
117
|
- DATABASE_URL=mysql2://root@127.0.0.1/statesman_test
|
263
|
-
- EXCLUDE_MONGOID=true
|
264
118
|
- DATABASE_DEPENDENCY_PORT=3306
|
265
119
|
- image: circleci/mysql:5.7.18
|
266
120
|
environment:
|
@@ -269,34 +123,24 @@ jobs:
|
|
269
123
|
- MYSQL_PASSWORD=
|
270
124
|
- MYSQL_DATABASE=statesman_test
|
271
125
|
steps: *steps
|
272
|
-
build-
|
126
|
+
build-ruby265-rails-600-postgres:
|
273
127
|
docker:
|
274
|
-
- image: circleci/ruby:2.
|
128
|
+
- image: circleci/ruby:2.6.5-node
|
275
129
|
environment:
|
276
|
-
- RAILS_VERSION=
|
130
|
+
- RAILS_VERSION=6.0.0
|
277
131
|
- DATABASE_URL=postgres://postgres@localhost/statesman_test
|
278
|
-
- EXCLUDE_MONGOID=true
|
279
132
|
- DATABASE_DEPENDENCY_PORT=5432
|
280
133
|
- image: circleci/postgres:9.6
|
281
134
|
environment:
|
282
135
|
- POSTGRES_USER=postgres
|
283
136
|
- POSTGRES_DB=statesman_test
|
284
137
|
steps: *steps
|
285
|
-
build-
|
138
|
+
build-ruby265-rails-master-mysql:
|
286
139
|
docker:
|
287
|
-
- image: circleci/ruby:2.
|
140
|
+
- image: circleci/ruby:2.6.5-node
|
288
141
|
environment:
|
289
|
-
- RAILS_VERSION=
|
290
|
-
- DATABASE_DEPENDENCY_PORT=27017
|
291
|
-
- image: circleci/mongo:3
|
292
|
-
steps: *steps
|
293
|
-
build-ruby227-rails-505-mysql:
|
294
|
-
docker:
|
295
|
-
- image: circleci/ruby:2.2.7-node
|
296
|
-
environment:
|
297
|
-
- RAILS_VERSION=5.0.5
|
142
|
+
- RAILS_VERSION=master
|
298
143
|
- DATABASE_URL=mysql2://root@127.0.0.1/statesman_test
|
299
|
-
- EXCLUDE_MONGOID=true
|
300
144
|
- DATABASE_DEPENDENCY_PORT=3306
|
301
145
|
- image: circleci/mysql:5.7.18
|
302
146
|
environment:
|
@@ -305,11 +149,11 @@ jobs:
|
|
305
149
|
- MYSQL_PASSWORD=
|
306
150
|
- MYSQL_DATABASE=statesman_test
|
307
151
|
steps: *steps
|
308
|
-
build-
|
152
|
+
build-ruby265-rails-master-postgres:
|
309
153
|
docker:
|
310
|
-
- image: circleci/ruby:2.
|
154
|
+
- image: circleci/ruby:2.6.5-node
|
311
155
|
environment:
|
312
|
-
- RAILS_VERSION=
|
156
|
+
- RAILS_VERSION=master
|
313
157
|
- DATABASE_URL=postgres://postgres@localhost/statesman_test
|
314
158
|
- EXCLUDE_MONGOID=true
|
315
159
|
- DATABASE_DEPENDENCY_PORT=5432
|
@@ -318,21 +162,12 @@ jobs:
|
|
318
162
|
- POSTGRES_USER=postgres
|
319
163
|
- POSTGRES_DB=statesman_test
|
320
164
|
steps: *steps
|
321
|
-
build-
|
165
|
+
build-ruby249-rails-523-mysql:
|
322
166
|
docker:
|
323
|
-
- image: circleci/ruby:2.
|
167
|
+
- image: circleci/ruby:2.4.9-node
|
324
168
|
environment:
|
325
|
-
- RAILS_VERSION=5.
|
326
|
-
- DATABASE_DEPENDENCY_PORT=27017
|
327
|
-
- image: circleci/mongo:3
|
328
|
-
steps: *steps
|
329
|
-
build-ruby227-rails-513-mysql:
|
330
|
-
docker:
|
331
|
-
- image: circleci/ruby:2.2.7-node
|
332
|
-
environment:
|
333
|
-
- RAILS_VERSION=5.1.3
|
169
|
+
- RAILS_VERSION=5.2.3
|
334
170
|
- DATABASE_URL=mysql2://root@127.0.0.1/statesman_test
|
335
|
-
- EXCLUDE_MONGOID=true
|
336
171
|
- DATABASE_DEPENDENCY_PORT=3306
|
337
172
|
- image: circleci/mysql:5.7.18
|
338
173
|
environment:
|
@@ -341,13 +176,12 @@ jobs:
|
|
341
176
|
- MYSQL_PASSWORD=
|
342
177
|
- MYSQL_DATABASE=statesman_test
|
343
178
|
steps: *steps
|
344
|
-
build-
|
179
|
+
build-ruby249-rails-523-postgres:
|
345
180
|
docker:
|
346
|
-
- image: circleci/ruby:2.
|
181
|
+
- image: circleci/ruby:2.4.9-node
|
347
182
|
environment:
|
348
|
-
- RAILS_VERSION=5.
|
183
|
+
- RAILS_VERSION=5.2.3
|
349
184
|
- DATABASE_URL=postgres://postgres@localhost/statesman_test
|
350
|
-
- EXCLUDE_MONGOID=true
|
351
185
|
- DATABASE_DEPENDENCY_PORT=5432
|
352
186
|
- image: circleci/postgres:9.6
|
353
187
|
environment:
|
@@ -355,34 +189,20 @@ jobs:
|
|
355
189
|
- POSTGRES_DB=statesman_test
|
356
190
|
steps: *steps
|
357
191
|
|
192
|
+
|
358
193
|
workflows:
|
359
194
|
version: 2
|
360
195
|
tests:
|
361
196
|
jobs:
|
362
|
-
- build-
|
363
|
-
- build-
|
364
|
-
- build-
|
365
|
-
- build-
|
366
|
-
- build-
|
367
|
-
- build-
|
368
|
-
- build-
|
369
|
-
- build-
|
370
|
-
- build-
|
371
|
-
- build-
|
372
|
-
- build-
|
373
|
-
- build-
|
374
|
-
- build-ruby233-rails-505-mongo
|
375
|
-
- build-ruby233-rails-505-mysql
|
376
|
-
- build-ruby233-rails-505-postgres
|
377
|
-
- build-ruby233-rails-513-mongo
|
378
|
-
- build-ruby233-rails-513-mysql
|
379
|
-
- build-ruby233-rails-513-postgres
|
380
|
-
- build-ruby227-rails-429-mongo
|
381
|
-
- build-ruby227-rails-429-mysql
|
382
|
-
- build-ruby227-rails-429-postgres
|
383
|
-
- build-ruby227-rails-505-mongo
|
384
|
-
- build-ruby227-rails-505-mysql
|
385
|
-
- build-ruby227-rails-505-postgres
|
386
|
-
- build-ruby227-rails-513-mongo
|
387
|
-
- build-ruby227-rails-513-mysql
|
388
|
-
- build-ruby227-rails-513-postgres
|
197
|
+
- build-ruby249-rails-429-mysql
|
198
|
+
- build-ruby249-rails-429-postgres
|
199
|
+
- build-ruby249-rails-505-mysql
|
200
|
+
- build-ruby249-rails-505-postgres
|
201
|
+
- build-ruby249-rails-513-mysql
|
202
|
+
- build-ruby249-rails-513-postgres
|
203
|
+
- build-ruby249-rails-523-mysql
|
204
|
+
- build-ruby249-rails-523-postgres
|
205
|
+
- build-ruby265-rails-600-mysql
|
206
|
+
- build-ruby265-rails-600-postgres
|
207
|
+
- build-ruby265-rails-master-mysql
|
208
|
+
- build-ruby265-rails-master-postgres
|
data/.rubocop.yml
CHANGED
data/.rubocop_todo.yml
CHANGED
@@ -1,20 +1,31 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on
|
3
|
+
# on 2019-08-17 15:19:58 +0100 using RuboCop version 0.61.1.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
8
8
|
|
9
|
-
|
9
|
+
Gemspec/RequiredRubyVersion:
|
10
|
+
Enabled: false # We want to allow Ruby 2.2 even though we don't test on it
|
11
|
+
|
12
|
+
# Offense count: 5
|
10
13
|
Metrics/AbcSize:
|
11
14
|
Max: 18
|
12
15
|
|
13
16
|
# Offense count: 4
|
14
|
-
# Configuration parameters: CountComments.
|
17
|
+
# Configuration parameters: CountComments, ExcludedMethods.
|
15
18
|
Metrics/MethodLength:
|
16
19
|
Max: 14
|
17
20
|
|
21
|
+
# Offense count: 2
|
22
|
+
# Cop supports --auto-correct.
|
23
|
+
# Configuration parameters: SkipBlocks, EnforcedStyle.
|
24
|
+
# SupportedStyles: described_class, explicit
|
25
|
+
RSpec/DescribedClass:
|
26
|
+
Exclude:
|
27
|
+
- 'spec/statesman/adapters/active_record_queries_spec.rb'
|
28
|
+
|
18
29
|
# Offense count: 7
|
19
30
|
# Configuration parameters: Max.
|
20
31
|
RSpec/ExampleLength:
|
@@ -29,6 +40,12 @@ RSpec/ExpectInHook:
|
|
29
40
|
- 'spec/statesman/adapters/active_record_spec.rb'
|
30
41
|
- 'spec/statesman/machine_spec.rb'
|
31
42
|
|
43
|
+
# Offense count: 3
|
44
|
+
RSpec/ImplicitBlockExpectation:
|
45
|
+
Exclude:
|
46
|
+
- 'spec/statesman/adapters/active_record_spec.rb'
|
47
|
+
- 'spec/statesman/adapters/shared_examples.rb'
|
48
|
+
|
32
49
|
# Offense count: 1
|
33
50
|
# Configuration parameters: AssignmentOnly.
|
34
51
|
RSpec/InstanceVariable:
|
@@ -40,6 +57,11 @@ RSpec/IteratedExpectation:
|
|
40
57
|
Exclude:
|
41
58
|
- 'spec/statesman/machine_spec.rb'
|
42
59
|
|
60
|
+
# Offense count: 1
|
61
|
+
RSpec/LeakyConstantDeclaration:
|
62
|
+
Exclude:
|
63
|
+
- 'spec/statesman/adapters/active_record_queries_spec.rb'
|
64
|
+
|
43
65
|
# Offense count: 3
|
44
66
|
RSpec/LetSetup:
|
45
67
|
Exclude:
|
@@ -66,16 +88,14 @@ RSpec/NestedGroups:
|
|
66
88
|
RSpec/ScatteredSetup:
|
67
89
|
Exclude:
|
68
90
|
- 'spec/statesman/adapters/active_record_spec.rb'
|
69
|
-
- 'spec/statesman/adapters/mongoid_spec.rb'
|
70
91
|
- 'spec/statesman/adapters/shared_examples.rb'
|
71
92
|
- 'spec/statesman/machine_spec.rb'
|
72
93
|
|
73
94
|
# Offense count: 8
|
74
|
-
# Configuration parameters: IgnoreSymbolicNames.
|
95
|
+
# Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
|
75
96
|
RSpec/VerifiedDoubles:
|
76
97
|
Exclude:
|
77
98
|
- 'spec/generators/statesman/active_record_transition_generator_spec.rb'
|
78
99
|
- 'spec/generators/statesman/migration_generator_spec.rb'
|
79
100
|
- 'spec/statesman/adapters/active_record_spec.rb'
|
80
|
-
- 'spec/statesman/adapters/mongoid_spec.rb'
|
81
101
|
- 'spec/statesman/adapters/shared_examples.rb'
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,72 @@
|
|
1
|
+
## v6.0.0, 20th December 2019
|
2
|
+
|
3
|
+
**Breaking changes**
|
4
|
+
|
5
|
+
- Drop official support for Ruby 2.2 and 2.3 following our [compatibility
|
6
|
+
policy](https://github.com/gocardless/statesman/blob/master/docs/COMPATIBILITY.md).
|
7
|
+
|
8
|
+
|
9
|
+
## v5.2.0, 17th December 2019
|
10
|
+
|
11
|
+
- Issue `most_recent_transition_join` query as a single-line string [#381](https://github.com/gocardless/statesman/pull/381)
|
12
|
+
|
13
|
+
## v5.1.0, 22th November 2019
|
14
|
+
|
15
|
+
- Correct `Statesman::Adapters::ActiveRecordQueries` error text [@Bramjetten](https://github.com/gocardless/statesman/pull/376)
|
16
|
+
- Removes duplicate `map` call [Isaac Seymour](https://github.com/gocardless/statesman/pull/362)
|
17
|
+
- Update changelog with instructions of how to use `ActiveRecordQueries` added
|
18
|
+
in v5.0.0
|
19
|
+
- Pass exception into `after_transition_failure` and `after_guard_failure` callbacks [@credric-cordenier](https://github.com/gocardless/statesman/pull/378)
|
20
|
+
|
21
|
+
## v5.0.0, 11th November 2019
|
22
|
+
|
23
|
+
- Adds new syntax and restrictions to ActiveRecordQueries [PR#358](https://github.com/gocardless/statesman/pull/358). With the introduction of this, defining `self.transition_class` or `self.initial_state` is deprecated and will be removed in the next major release.
|
24
|
+
Change
|
25
|
+
```ruby
|
26
|
+
include Statesman::Adapters::ActiveRecordQueries
|
27
|
+
def self.initial_state
|
28
|
+
:initial
|
29
|
+
end
|
30
|
+
def self.transition_class
|
31
|
+
MyTransition
|
32
|
+
end
|
33
|
+
```
|
34
|
+
to
|
35
|
+
```ruby
|
36
|
+
include Statesman::Adapters::ActiveRecordQueries[
|
37
|
+
initial_state: :inital,
|
38
|
+
transition_class: MyTransition
|
39
|
+
]
|
40
|
+
```
|
41
|
+
|
42
|
+
## v4.1.4, 11th November 2019
|
43
|
+
|
44
|
+
- Reverts the breaking changes from [PR#358](https://github.com/gocardless/statesman/pull/358) & `v4.1.3` that where included in the last minor release. If you have changed your code to work with these changes `v5.0.0` will be a copy of `v4.1.3` with a bugfix applied.
|
45
|
+
|
46
|
+
## v4.1.3, 6th November 2019
|
47
|
+
|
48
|
+
- Add accessible from / to state attributes on the `TransitionFailedError` to avoid parsing strings [@ahjmorton](https://github.com/gocardless/statesman/pull/367)
|
49
|
+
- Add `after_transition_failure` mechanism [@credric-cordenier](https://github.com/gocardless/statesman/pull/366)
|
50
|
+
|
51
|
+
## v4.1.2, 17th August 2019
|
52
|
+
|
53
|
+
- Add support for Rails 6 [@greysteil](https://github.com/gocardless/statesman/pull/360)
|
54
|
+
|
55
|
+
## v4.1.1, 6th July 2019
|
56
|
+
|
57
|
+
- Fix statesman index detection for indexes that start t-z [@hmarr](https://github.com/gocardless/statesman/pull/354)
|
58
|
+
- Correct access of metadata via `state_machine` [@glenpike](https://github.com/gocardless/statesman/pull/349)
|
59
|
+
|
60
|
+
## v4.1.0, 10 April 2019
|
61
|
+
|
62
|
+
- Add better support for mysql (and others) in `transition_conflict_error?` [@greysteil](https://github.com/greysteil) (https://github.com/gocardless/statesman/pull/342)
|
63
|
+
|
64
|
+
## v4.0.0, 22 February 2019
|
65
|
+
|
66
|
+
- Forces Statesman to use a new transactions with `requires_new: true` (https://github.com/gocardless/statesman/pull/249)
|
67
|
+
- Fixes an issue with `after_commit` transition blocks that where being
|
68
|
+
executed even if the transaction rolled back. ([patch](https://github.com/gocardless/statesman/pull/338) by [@matid](https://github.com/matid))
|
69
|
+
|
1
70
|
## v3.5.0, 2 November 2018
|
2
71
|
|
3
72
|
- Expose `most_recent_transition_join` - ActiveRecords `or` requires that both
|
data/Gemfile
CHANGED
@@ -1,12 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
source 'https://rubygems.org'
|
2
4
|
|
3
5
|
gemspec
|
4
6
|
|
5
|
-
|
7
|
+
# rubocop:disable Bundler/DuplicatedGem
|
8
|
+
if ENV['RAILS_VERSION'] == 'master'
|
9
|
+
gem "rails", git: "https://github.com/rails/rails"
|
10
|
+
elsif ENV['RAILS_VERSION']
|
11
|
+
gem "rails", "~> #{ENV['RAILS_VERSION']}"
|
12
|
+
end
|
13
|
+
# rubocop:enable Bundler/DuplicatedGem
|
6
14
|
|
7
15
|
group :development do
|
8
|
-
gem "mongoid", ">= 3.1" unless ENV["EXCLUDE_MONGOID"]
|
9
|
-
|
10
16
|
# test/unit is no longer bundled with Ruby 2.2, but required by Rails
|
11
17
|
gem "test-unit", "~> 3.0" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.2.0")
|
12
18
|
end
|