statesman 12.0.0 → 12.1.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: a799d928f8e674203dde325b7653ed8fe2b719f5b9108ded9353afaa5eefe028
4
- data.tar.gz: a92e8f0a4a49a22e66c4d3a83ccdec62e042cf8cd2a734368090f9144373f02a
3
+ metadata.gz: d49f534086023febd344f7eb73b162903a28e3fd77ee430856d42242aafda37c
4
+ data.tar.gz: aba9670be235de98143f0a2ae0d15b9b7b32c8a9699901049e5cd9d931e29981
5
5
  SHA512:
6
- metadata.gz: 781f2603034ba02007a26678f06738ff5b0691cf2bd45c9d56406c3d4bffe15f375301b52f42f4a5e5bf8fd7fcb2b10b61e61d623cfab5d21c901025cb6f70a6
7
- data.tar.gz: df7bfefdb22eaf086e25dfc91b233bd3eb02b3c7e658315e05b4d1e92a30e534f626622b7025a8eff244f6b29c1637bb3ed0678a1c04cab0c5ffd180b18df105
6
+ metadata.gz: d68959bd95e90bd0a986de5dd7197d21ac5535a5500d5d528b599fd07d26611125ce7e926f33efb5140f2ecbffa1c78dbb66e6d5f2209eeabe95ee49a4a862f8
7
+ data.tar.gz: 449e98a18f512eaff9a1ea500f9415b016bc8e775f7e1b1a7b9ffc393038112b3689ff4e7d364cbff9be6d23e3c4768d373dda3df7339249b53aa7a9d2e33136
@@ -24,7 +24,7 @@ jobs:
24
24
  strategy:
25
25
  fail-fast: false
26
26
  matrix:
27
- ruby-version: ["3.0", "3.1", "3.2"]
27
+ ruby-version: ["3.0", "3.1", "3.2", "3.3"]
28
28
  rails-version:
29
29
  - "6.1.7.6"
30
30
  - "7.0.8"
@@ -34,6 +34,8 @@ jobs:
34
34
  exclude:
35
35
  - ruby-version: "3.2"
36
36
  rails-version: "6.1.7.6"
37
+ - ruby-version: "3.3"
38
+ rails-version: "6.1.7.6"
37
39
  runs-on: ubuntu-latest
38
40
  services:
39
41
  postgres:
@@ -67,7 +69,7 @@ jobs:
67
69
  strategy:
68
70
  fail-fast: false
69
71
  matrix:
70
- ruby-version: ["3.0", "3.1", "3.2"]
72
+ ruby-version: ["3.0", "3.1", "3.2", "3.3"]
71
73
  rails-version:
72
74
  - "6.1.7.6"
73
75
  - "7.0.8"
@@ -75,7 +77,9 @@ jobs:
75
77
  - "main"
76
78
  mysql-version: ["8.0", "8.2"]
77
79
  exclude:
78
- - ruby-version: 3.2
80
+ - ruby-version: "3.2"
81
+ rails-version: "6.1.7.6"
82
+ - ruby-version: "3.3"
79
83
  rails-version: "6.1.7.6"
80
84
  runs-on: ubuntu-latest
81
85
  services:
data/.rubocop.yml CHANGED
@@ -4,7 +4,7 @@ inherit_gem:
4
4
  gc_ruboconfig: rubocop.yml
5
5
 
6
6
  AllCops:
7
- TargetRubyVersion: 2.7
7
+ TargetRubyVersion: 3.0
8
8
  NewCops: enable
9
9
 
10
10
  Metrics/AbcSize:
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.2.2
1
+ 3.3.0
data/CHANGELOG.md CHANGED
@@ -1,12 +1,33 @@
1
+ # Changelog
2
+ <!-- markdownlint-disable no-duplicate-heading -->
3
+
4
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
+
7
+ ## v12.1.0 5th January 2024
8
+
9
+ ### Fixed
10
+
11
+ - Fixed autoloading the VERSION constants
12
+ - Fixed Ensuring inheritance issues with STI tabled
13
+ - Enabled gaplock protection when using trilogy mysql adapter
14
+
15
+ ### Added
16
+
17
+ - Added Ruby 3.3 to build matrix
18
+ - Added optional initial transition
19
+
1
20
  ## v12.0.0 30th November 2023
2
21
 
3
- ### Changed
22
+ ### Added
23
+
4
24
  - Added multi-database support [#522](https://github.com/gocardless/statesman/pull/522)
5
25
  - This now uses the correct ActiveRecord connection for the model or transition in a multi-database environment
6
26
 
7
27
  ## v11.0.0 3rd November 2023
8
28
 
9
29
  ### Changed
30
+
10
31
  - Updated to support ActiveRecord > 7.2
11
32
  - Remove support for:
12
33
  - Ruby; 2.7
@@ -15,44 +36,55 @@
15
36
 
16
37
  ## v10.2.3 2nd Aug 2023
17
38
 
18
- ### Changed
39
+ ### Fixed
40
+
19
41
  - Fixed calls to reloading internal cache is the state_machine was made private / protected
20
42
 
21
43
  ## v10.2.2 21st April 2023
22
44
 
23
45
  ### Changed
46
+
24
47
  - Calling `active_record.reload` resets the adapater's internal cache
25
48
 
26
49
  ## v10.2.1 3rd April 2023
27
50
 
28
- ### Changed
51
+ ### Fixed
52
+
29
53
  - Fixed an edge case where `adapter.reset` were failing if the cache is empty
30
54
 
31
55
  ## v10.2.0 3rd April 2023
32
56
 
33
- ### Changed
57
+ ### Fixed
58
+
34
59
  - Fixed caching of `last_transition` [#505](https://github.com/gocardless/statesman/pull/505)
35
60
 
36
61
  ## v10.1.0 10th March 2023
37
62
 
38
- ### CHanged
63
+ ### Changed
64
+
39
65
  - Add the source location of the guard callback to `Statesman::GuardFailedError`
40
66
 
41
67
  ## v10.0.0 17th May 2022
42
68
 
43
- ### Changed
69
+ ### Added
70
+
44
71
  - Added support for Ruby 3.1 [#462](https://github.com/gocardless/statesman/pull/462)
45
- - Removed support for Ruby 2.5 and 2.6 [#462](https://github.com/gocardless/statesman/pull/462)
46
72
  - Added `remove_state` and `remove_transitions` methods to `Statesman::Machine` [#464](https://github.com/gocardless/statesman/pull/464)
47
73
 
74
+ ### Changed
75
+
76
+ - Removed support for Ruby 2.5 and 2.6 [#462](https://github.com/gocardless/statesman/pull/462)
77
+
48
78
  ## v9.0.1 4th February 2021
49
79
 
50
80
  ### Changed
81
+
51
82
  - Deprecate `ActiveRecord::Base.default_timezone` in favour of `ActiveRecord.default_timezone` [#446](https://github.com/gocardless/statesman/pull/446)
52
83
 
53
84
  ## v9.0.0 9th August 2021
54
85
 
55
86
  ### Added
87
+
56
88
  - Added Ruby 3.0 support
57
89
 
58
90
  ### Breaking changes
@@ -62,19 +94,20 @@
62
94
  ## v8.0.3 8th June 2021
63
95
 
64
96
  ### Added
97
+
65
98
  - Implement `Machine#last_transition_to`, to find the last transition to a given state
66
99
  [#438](https://github.com/gocardless/statesman/pull/438)
67
100
 
68
101
  ## v8.0.2 30th March 2021
69
102
 
70
- ### Changed
103
+ ### Fixed
71
104
 
72
105
  - Fixed a bug where the `history` of a model was left in an incorrect state after a transition
73
106
  conflict [#433](https://github.com/gocardless/statesman/pull/433)
74
107
 
75
108
  ## v8.0.1 20th January 2021
76
109
 
77
- ### Changed
110
+ ### Fixed
78
111
 
79
112
  - Fixed `no implicit conversion of nil into String` error when quoting null values
80
113
  [#427](https://github.com/gocardless/statesman/pull/427)
@@ -118,43 +151,57 @@
118
151
 
119
152
  ## v7.1.0, 10th Feb 2020
120
153
 
154
+ ### Fixed
155
+
121
156
  - Fix `to_s` on `TransitionFailedError` & `GuardFailedError`. `.message` and
122
157
  `.to_s` diverged when `from` and `to` accessors where added in v4.1.3
123
158
 
124
159
  ## v7.0.1, 8th Jan 2020
125
160
 
161
+ ### Fixed
162
+
126
163
  - Fix deprecation warning with Ruby 2.7 [#386](https://github.com/gocardless/statesman/pull/386)
127
164
 
128
165
  ## v7.0.0, 8th Jan 2020
129
166
 
130
- **Breaking changes**
167
+ ### Breaking changes
131
168
 
132
169
  - Drop official support for Rails 4.2, 5.0 and 5.1, following our [compatibility
133
170
  policy](https://github.com/gocardless/statesman/blob/master/docs/COMPATIBILITY.md).
134
171
 
135
172
  ## v6.0.0, 20th December 2019
136
173
 
137
- **Breaking changes**
174
+ ### Breaking changes
138
175
 
139
176
  - Drop official support for Ruby 2.2 and 2.3 following our [compatibility
140
177
  policy](https://github.com/gocardless/statesman/blob/master/docs/COMPATIBILITY.md).
141
178
 
142
179
  ## v5.2.0, 17th December 2019
143
180
 
181
+ ### Changed
182
+
144
183
  - Issue `most_recent_transition_join` query as a single-line string [#381](https://github.com/gocardless/statesman/pull/381)
145
184
 
146
185
  ## v5.1.0, 22th November 2019
147
186
 
187
+ ### Fixed
188
+
148
189
  - Correct `Statesman::Adapters::ActiveRecordQueries` error text [@Bramjetten](https://github.com/gocardless/statesman/pull/376)
149
190
  - Removes duplicate `map` call [Isaac Seymour](https://github.com/gocardless/statesman/pull/362)
191
+
192
+ ### Changed
193
+
150
194
  - Update changelog with instructions of how to use `ActiveRecordQueries` added
151
195
  in v5.0.0
152
196
  - Pass exception into `after_transition_failure` and `after_guard_failure` callbacks [@credric-cordenier](https://github.com/gocardless/statesman/pull/378)
153
197
 
154
198
  ## v5.0.0, 11th November 2019
155
199
 
200
+ ### Added
201
+
156
202
  - 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.
157
203
  Change
204
+
158
205
  ```ruby
159
206
  include Statesman::Adapters::ActiveRecordQueries
160
207
  def self.initial_state
@@ -164,7 +211,9 @@
164
211
  MyTransition
165
212
  end
166
213
  ```
214
+
167
215
  to
216
+
168
217
  ```ruby
169
218
  include Statesman::Adapters::ActiveRecordQueries[
170
219
  initial_state: :initial,
@@ -174,34 +223,51 @@
174
223
 
175
224
  ## v4.1.4, 11th November 2019
176
225
 
226
+ ### Changed
227
+
177
228
  - 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.
178
229
 
179
230
  ## v4.1.3, 6th November 2019
180
231
 
232
+ ### Added
233
+
181
234
  - Add accessible from / to state attributes on the `TransitionFailedError` to avoid parsing strings [@ahjmorton](https://github.com/gocardless/statesman/pull/367)
182
235
  - Add `after_transition_failure` mechanism [@credric-cordenier](https://github.com/gocardless/statesman/pull/366)
183
236
 
184
237
  ## v4.1.2, 17th August 2019
185
238
 
239
+ ### Added
240
+
186
241
  - Add support for Rails 6 [@greysteil](https://github.com/gocardless/statesman/pull/360)
187
242
 
188
243
  ## v4.1.1, 6th July 2019
189
244
 
245
+ ### Fixed
246
+
190
247
  - Fix statesman index detection for indexes that start t-z [@hmarr](https://github.com/gocardless/statesman/pull/354)
191
248
  - Correct access of metadata via `state_machine` [@glenpike](https://github.com/gocardless/statesman/pull/349)
192
249
 
193
250
  ## v4.1.0, 10 April 2019
194
251
 
195
- - Add better support for mysql (and others) in `transition_conflict_error?` [@greysteil](https://github.com/greysteil) (https://github.com/gocardless/statesman/pull/342)
252
+ ### Changed
253
+
254
+ - Add better support for mysql (and others) in `transition_conflict_error?` [@greysteil](https://github.com/greysteil) (<https://github.com/gocardless/statesman/pull/342>)
196
255
 
197
256
  ## v4.0.0, 22 February 2019
198
257
 
199
- - Forces Statesman to use a new transactions with `requires_new: true` (https://github.com/gocardless/statesman/pull/249)
258
+ ### Fixed
259
+
200
260
  - Fixes an issue with `after_commit` transition blocks that where being
201
261
  executed even if the transaction rolled back. ([patch](https://github.com/gocardless/statesman/pull/338) by [@matid](https://github.com/matid))
202
262
 
263
+ ### Changed
264
+
265
+ - Forces Statesman to use a new transactions with `requires_new: true` (<https://github.com/gocardless/statesman/pull/249>)
266
+
203
267
  ## v3.5.0, 2 November 2018
204
268
 
269
+ ### Changed
270
+
205
271
  - Expose `most_recent_transition_join` - ActiveRecords `or` requires that both
206
272
  sides of the query match up. Exposing this methods makes things easier if
207
273
  one side of the `or` uses `in_state` or `not_in_state`. (patch by [@adambutler](https://github.com/adambutler))
@@ -209,37 +275,50 @@
209
275
 
210
276
  ## v3.4.1, 14 February 2018 ❤️
211
277
 
278
+ ### Added
279
+
212
280
  - Support ActiveRecord transition classes which don't include `Statesman::Adapters::ActiveRecordTransition`, and thus don't have a `.updated_timestamp_column` method (see #310 for further details) (patch by [@timrogers](https://github.com/timrogers))
213
281
 
214
282
  ## v3.4.0, 12 February 2018
215
283
 
284
+ ### Changed
285
+
216
286
  - When unsetting the `most_recent` flag during a transition, don't assume that transitions have an `updated_at` attribute, but rather allow the "updated timestamp column" to be re-configured or disabled entirely (patch by [@timrogers](https://github.com/timrogers))
217
287
 
218
288
  ## v3.3.0, 5 January 2018
219
289
 
290
+ ### Changed
291
+
220
292
  - Touch `updated_at` on transitions when unsetting `most_recent` flag (patch by [@NGMarmaduke](https://github.com/NGMarmaduke))
221
293
  - Fix `force_reload` for ActiveRecord models with loaded transitions (patch by [@jacobpgn](https://github.com/))
222
294
 
223
295
  ## v3.2.0, 27 November 2017
224
296
 
297
+ ### Added
298
+
225
299
  - Allow specifying metadata with `Machine#allowed_transitions` (patch by [@vvondra](https://github.com/vvondra))
226
300
 
227
301
  ## v3.1.0, 1 September 2017
228
302
 
303
+ ### Added
304
+
229
305
  - Add support for Rails 5.0.x and 5.1.x (patch by [@kenchan0130](https://github.com/kenchan0130) and [@timrogers](https://github.com/timrogers))
306
+
307
+ ### Changed
308
+
230
309
  - Run tests in CircleCI instead of TravisCI (patch by [@timrogers](https://github.com/timrogers))
231
310
  - Update Rubocop and fix offences (patch by [@timrogers](https://github.com/timrogers))
232
311
 
233
312
  ## v3.0.0, 3 July 2017
234
313
 
235
- *Breaking changes*
314
+ ### Breaking changes
236
315
 
237
316
  - Drop support for Rails < 4.2
238
317
  - Drop support for Ruby < 2.2
239
318
 
240
319
  For details on our compatibility policy, see `docs/COMPATIBILITY.md`.
241
320
 
242
- *Changes*
321
+ ### Changed
243
322
 
244
323
  - Better handling of custom transition association names (patch by [@greysteil](https://github.com/greysteil))
245
324
  - Add foreign keys to transition table generator (patch by [@greysteil](https://github.com/greysteil))
@@ -247,6 +326,8 @@ For details on our compatibility policy, see `docs/COMPATIBILITY.md`.
247
326
 
248
327
  ## v2.0.1, 29 March 2016
249
328
 
329
+ ### Added
330
+
250
331
  - Add support for Rails 5 (excluding Mongoid adapter)
251
332
 
252
333
  ## v2.0.0, 5 January 2016
@@ -255,7 +336,7 @@ For details on our compatibility policy, see `docs/COMPATIBILITY.md`.
255
336
 
256
337
  ## v2.0.0.rc1, 23 December 2015
257
338
 
258
- *Breaking changes*
339
+ ### Breaking changes
259
340
 
260
341
  - Unset most_recent after before transitions
261
342
  - TL;DR: set `autosave: false` on the `has_many` association between your parent and transition model and this change will almost certainly not affect your integration
@@ -273,7 +354,7 @@ For details on our compatibility policy, see `docs/COMPATIBILITY.md`.
273
354
  - To keep Statesman lightweight we've moved event functionality into the `statesman-events` gem
274
355
  - If you are using events, add `statesman-events` to your gemfile and include `Statesman::Events` in your state machines
275
356
 
276
- *Changes*
357
+ ### Changed
277
358
 
278
359
  - Add after_destroy hook to ActiveRecord transition model templates
279
360
  - Add `in_state?` instance method to `Statesman::Machine`
@@ -281,56 +362,73 @@ For details on our compatibility policy, see `docs/COMPATIBILITY.md`.
281
362
 
282
363
  ## v1.3.1, 2 July 2015
283
364
 
365
+ ### Changed
366
+
284
367
  - Fix `in_state` queries with a custom `transition_name` (patch by [0tsuki](https://github.com/0tsuki))
285
368
  - Fix `backfill_most_recent` rake task for databases that support partial indexes (patch by [greysteil](https://github.com/greysteil))
286
369
 
287
370
  ## v1.3.0, 20 June 2015
288
371
 
372
+ ### Changed
373
+
289
374
  - Rename `last_transition` alias in `ActiveRecordQueries` to `most_recent_#{model_name}`, to allow merging of two such queries (patch by [@isaacseymour](https://github.com/isaacseymour))
290
375
 
291
376
  ## v1.2.5, 17 June 2015
292
377
 
378
+ ### Changed
379
+
293
380
  - Make `backfill_most_recent` rake task db-agnostic (patch by [@timothyp](https://github.com/timothyp))
294
381
 
295
382
  ## v1.2.4, 16 June 2015
296
383
 
384
+ ### Changed
385
+
297
386
  - Clarify error messages when misusing `Statesman::Adapters::ActiveRecordTransition` (patch by [@isaacseymour](https://github.com/isaacseymour))
298
387
 
299
388
  ## v1.2.3, 14 April 2015
300
389
 
390
+ ### Changed
391
+
301
392
  - Fix use of most_recent column in MySQL (partial indexes aren't supported) (patch by [@greysteil](https://github.com/greysteil))
302
393
 
303
394
  ## v1.2.2, 24 March 2015
304
395
 
396
+ ### Added
397
+
305
398
  - Add support for namespaced transition models (patch by [@DanielWright](https://github.com/DanielWright))
306
399
 
307
400
  ## v1.2.1, 24 March 2015
308
401
 
402
+ ### Added
403
+
309
404
  - Add support for Postgres 9.4's `jsonb` column type (patch by [@isaacseymour](https://github.com/isaacseymour))
310
405
 
311
406
  ## v1.2.0, 18 March 2015
312
407
 
313
- *Changes*
408
+ ### Added
314
409
 
315
410
  - Add a `most_recent` column to transition tables to greatly speed up queries (ActiveRecord adapter only).
316
411
  - All queries are backwards-compatible, so everything still works without the new column.
317
412
  - The upgrade path is:
318
413
  - Generate and run a migration for adding the column, by running `rails generate statesman:add_most_recent <ParentModel> <TransitionModel>`.
319
- - Backfill the `most_recent` column on old records by running `rake statesman:backfill_most_recent[ParentModel] `.
414
+ - Backfill the `most_recent` column on old records by running `rake statesman:backfill_most_recent[ParentModel]`.
320
415
  - Add constraints and indexes to the transition table that make use of the new field, by running `rails g statesman:add_constraints_to_most_recent <ParentModel> <TransitionModel>`.
321
416
  - The upgrade path has been designed to be zero-downtime, even on large tables. As a result, please note that queries will only use the `most_recent` field after the constraints have been added.
322
- - `ActiveRecordQueries.{not_,}in_state` now accepts an array of states.
323
417
 
418
+ ### Changed
419
+
420
+ - `ActiveRecordQueries.{not_,}in_state` now accepts an array of states.
324
421
 
325
422
  ## v1.1.0, 9 December 2014
326
- *Fixes*
423
+
424
+ ### Fixed
327
425
 
328
426
  - Support for Rails 4.2.0.rc2:
329
427
  - Remove use of serialized_attributes when using 4.2+. (patch by [@greysteil](https://github.com/greysteil))
330
428
  - Use reflect_on_association rather than directly using the reflections hash. (patch by [@timrogers](https://github.com/timrogers))
331
429
  - Fix `ActiveRecordQueries.in_state` when `Model.initial_state` is defined as a symbol. (patch by [@isaacseymour](https://github.com/isaacseymour))
332
430
 
333
- *Changes*
431
+ ### Changed
334
432
 
335
433
  - Transition metadata now defaults to `{}` rather than `nil`. (patch by [@greysteil](https://github.com/greysteil))
336
434
 
@@ -339,99 +437,126 @@ For details on our compatibility policy, see `docs/COMPATIBILITY.md`.
339
437
  No changes from v1.0.0.beta2
340
438
 
341
439
  ## v1.0.0.beta2, 10 October 2014
342
- *Breaking changes*
440
+
441
+ ### Breaking changes
343
442
 
344
443
  - Rename `ActiveRecordModel` to `ActiveRecordQueries`, to reflect the fact that it mixes in some helpful scopes, but is not required.
345
444
 
346
445
  ## v1.0.0.beta1, 9 October 2014
347
- *Breaking changes*
446
+
447
+ ### Breaking changes
348
448
 
349
449
  - Classes which include `ActiveRecordModel` must define an `initial_state` class method.
350
450
 
351
- *Fixes*
451
+ ### Fixed
352
452
 
353
453
  - `ActiveRecordModel.in_state` and `ActiveRecordModel.not_in_state` now handle inital states correctly (patch by [@isaacseymour](https://github.com/isaacseymour))
354
454
 
355
- *Additions*
455
+ ### Added
356
456
 
357
457
  - Transition tables created by generated migrations have `NOT NULL` constraints on `to_state`, `sort_key` and foreign key columns (patch by [@greysteil](https://github.com/greysteil))
358
458
  - `before_transition` and `after_transition` allow an array of to states (patch by [@isaacseymour](https://github.com/isaacseymour))
359
459
 
360
460
  ## v0.8.3, 2 September 2014
361
- *Fixes*
461
+
462
+ ### Fixed
362
463
 
363
464
  - Optimisation for Machine#available_events (patch by [@pacso](https://github.com/pacso))
364
465
 
365
466
  ## v0.8.2, 2 September 2014
366
- *Fixes*
467
+
468
+ ### Fixed
367
469
 
368
470
  - Stop generating a default value for the metadata column if using MySQL.
369
471
 
370
472
  ## v0.8.1, 19 August 2014
371
- *Fixes*
473
+
474
+ ### Fixed
372
475
 
373
476
  - Adds check in Machine#transition to make sure the 'to' state is not an empty array (patch by [@barisbalic](https://github.com/barisbalic))
374
477
 
375
478
  ## v0.8.0, 29 June 2014
376
- *Additions*
479
+
480
+ ### Added
377
481
 
378
482
  - Events. Machines can now define events as a logical grouping of transitions (patch by [@iurimatias](https://github.com/iurimatias))
379
483
  - Retries. Individual transitions can be executed with a retry policy by wrapping the method call in a `Machine.retry_conflicts {}` block (patch by [@greysteil](https://github.com/greysteil))
380
484
 
381
485
  ## v0.7.0, 25 June 2014
382
- *Additions*
486
+
487
+ ### Added
383
488
 
384
489
  - `Adapters::ActiveRecord` now handles `ActiveRecord::RecordNotUnique` errors explicitly and re-raises with a `Statesman::TransitionConflictError` if it is due to duplicate sort_keys (patch by [@greysteil](https://github.com/greysteil))
385
490
 
386
491
  ## v0.6.1, 21 May 2014
387
- *Fixes*
492
+
493
+ ### Fixed
494
+
388
495
  - Fixes an issue where the wrong transition was passed to after_transition callbacks for the second and subsequent transition of a given state machine (patch by [@alan](https://github.com/alan))
389
496
 
390
497
  ## v0.6.0, 19 May 2014
391
- *Additions*
498
+
499
+ ### Added
500
+
392
501
  - Generators now handle namespaced classes (patch by [@hrmrebecca](https://github.com/hrmrebecca))
393
502
 
394
- *Changes*
503
+ ### Changed
504
+
395
505
  - `Machine#transition_to` now only swallows Statesman generated errors. An exception in your guard or callback will no longer be caught by Statesman (patch by [@paulspringett](https://github.com/paulspringett))
396
506
 
397
507
  ## v0.5.0, 27 March 2014
398
- *Additions*
508
+
509
+ ### Added
510
+
399
511
  - Scope methods. Adds a module which can be mixed in to an ActiveRecord model to provide `.in_state` and `.not_in_state` query scopes.
400
512
  - Adds `Machine#after_initialize` hook (patch by [@att14](https://github.com/att14))
401
513
 
402
- *Fixes*
514
+ ### Fixed
515
+
403
516
  - Added MongoidTransition to the autoload statements, fixing [#29](https://github.com/gocardless/statesman/issues/29) (patch by [@tomclose](https://github.com/tomclose))
404
517
 
405
518
  ## v0.4.0, 27 February 2014
406
- *Additions*
519
+
520
+ ### Added
521
+
407
522
  - Adds after_commit flag to after_transition for callbacks to be executed after the transaction has been
408
523
  committed on the ActiveRecord adapter. These callbacks will still be executed on non transactional adapters.
409
524
 
410
525
  ## v0.3.0, 20 February 2014
411
- *Additions*
526
+
527
+ ### Added
528
+
412
529
  - Adds Machine#allowed_transitions method (patch by [@prikha](https://github.com/prikha))
413
530
 
414
531
  ## v0.2.1, 31 December 2013
415
- *Fixes*
532
+
533
+ ### Fixed
534
+
416
535
  - Don't add attr_accessible to generated transition model if running in Rails 4
417
536
 
418
537
  ## v0.2.0, 16 December 2013
419
- *Additions*
538
+
539
+ ### Added
540
+
420
541
  - Adds Ruby 1.9.3 support (patch by [@jakehow](https://github.com/jakehow))
421
542
  - All Mongo dependent tests are tagged so they can be excluded from test runs
422
543
 
423
- *Changes*
544
+ ### Changed
545
+
424
546
  - Specs now crash immediately if Mongo is not running
425
547
 
426
548
  ## v0.1.0, 5 November 2013
427
549
 
428
- *Additions*
550
+ ### Added
551
+
429
552
  - Adds Mongoid adapter and generators (patch by [@dluxemburg](https://github.com/dluxemburg))
430
553
 
431
- *Changes*
554
+ ### Changed
555
+
432
556
  - Replaces `config#transition_class` with `Statesman::Adapters::ActiveRecordTransition` mixin. (inspired by [@cjbell88](https://github.com/cjbell88))
433
557
  - Renames the active record transition generator from `statesman:transition` to `statesman:active_record_transition`.
434
558
  - Moves to using `require_relative` internally where possible to avoid stomping on application load paths.
435
559
 
436
- ## v0.0.1, 28 October 2013.
560
+ ## v0.0.1, 28 October 2013
561
+
437
562
  - Initial release
data/CONTRIBUTING.md CHANGED
@@ -1,9 +1,11 @@
1
+ # Contributing
2
+
1
3
  Thanks for taking an interest in contributing to Statesman, here are a few
2
4
  ways you can help make this project better!
3
5
 
4
- ## Contributing
6
+ ## Submitting pull requests
5
7
 
6
- - Generally we welcome new features but please first open an issue where we
8
+ - Generally we welcome new features but please first open an issue where we
7
9
  can discuss whether it fits with our vision for the project.
8
10
  - Any new feature or bug fix needs an accompanying test case.
9
11
  - No need to add to the changelog, we will take care of updating it as we make
@@ -17,23 +19,22 @@ request passes by running `rubocop`.
17
19
 
18
20
  ## Documentation
19
21
 
20
- Please add a section to the readme for any new feature additions or behaviour
21
- changes.
22
+ Please add a section to [the readme](README.md) for any new feature additions or behavioural changes.
22
23
 
23
24
  ## Releasing
24
25
 
25
- We publish new versions of Stateman using [RubyGems](https://guides.rubygems.org/publishing/). Once
26
- the relevant changes have been merged and `VERSION` has been appropriately bumped to the new
27
- version, we run the following command.
28
- ```
29
- $ gem build statesman.gemspec
26
+ We publish new versions of Stateman using [RubyGems](https://guides.rubygems.org/publishing/). Once the relevant changes have been merged and `VERSION` has been appropriately bumped to the new version, we run the following command.
27
+
28
+ ```sh
29
+ gem build statesman.gemspec
30
30
  ```
31
- This builds a `.gem` file locally that will be named something like `statesman-X` where `X` is the
32
- new version. For example, if we are releasing version 9.0.0, the file would be
31
+
32
+ This builds a `.gem` file locally that will be named something like `statesman-X` where `X` is the new version. For example, if we are releasing version 9.0.0, the file would be
33
33
  `statesman-9.0.0.gem`.
34
34
 
35
35
  To publish, run `gem push` with the new `.gem` file we just generated. This requires a OTP that is currently only available
36
36
  to GoCardless engineers. For example, if we were to continue to publish version 9.0.0, we would run:
37
- ```
38
- $ gem push statesman-9.0.0.gem
37
+
38
+ ```sh
39
+ gem push statesman-9.0.0.gem
39
40
  ```