statesman 1.2.2 → 1.2.3
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 +4 -4
- data/.rubocop.yml +5 -5
- data/.travis.yml +5 -5
- data/CHANGELOG.md +4 -0
- data/lib/generators/statesman/generator_helpers.rb +4 -0
- data/lib/generators/statesman/templates/add_constraints_to_most_recent_migration.rb.erb +6 -0
- data/lib/generators/statesman/templates/create_migration.rb.erb +10 -3
- data/lib/generators/statesman/templates/mongoid_transition_model.rb.erb +2 -2
- data/lib/statesman/adapters/active_record.rb +29 -9
- data/lib/statesman/callback.rb +1 -1
- data/lib/statesman/machine.rb +1 -1
- data/lib/statesman/version.rb +1 -1
- data/lib/tasks/statesman.rake +8 -3
- data/spec/fixtures/{add_constraints_to_most_recent_for_bacon_transitions.rb → add_constraints_to_most_recent_for_bacon_transitions_with_partial_index.rb} +0 -0
- data/spec/fixtures/add_constraints_to_most_recent_for_bacon_transitions_without_partial_index.rb +11 -0
- data/spec/generators/statesman/active_record_transition_generator_spec.rb +1 -1
- data/spec/generators/statesman/add_constraints_to_most_recent_generator_spec.rb +7 -2
- data/spec/generators/statesman/migration_generator_spec.rb +1 -1
- data/spec/generators/statesman/mongoid_transition_generator_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -1
- data/spec/statesman/adapters/active_record_spec.rb +13 -1
- data/spec/support/active_record.rb +21 -6
- data/spec/support/mongoid.rb +2 -2
- data/statesman.gemspec +1 -1
- metadata +9 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 747626de855901f8252afbc7bae793d67c3e062a
|
4
|
+
data.tar.gz: f6b3c8239d7b92883c4bffce040d133cfc7cedfd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3db31cb3e861d3230ab1f631c30727709251d70e109a27c3b723bcfe0f213ed3f73f82920a939e9ac897e87db8cee5852c20f4e8103fc3a7a210a57b62445f07
|
7
|
+
data.tar.gz: b17bfbc8186d3c0bc888cb0c92e282cd8174b0cb64dcd78185b6b40ed9bac8b2112314ca4ee0031d0293af07aeaa7cc7b2960809e7daa9ec89a8e5d785ad5550
|
data/.rubocop.yml
CHANGED
@@ -17,11 +17,11 @@ Documentation:
|
|
17
17
|
Enabled: false
|
18
18
|
|
19
19
|
SignalException:
|
20
|
-
|
20
|
+
EnforcedStyle: only_raise
|
21
21
|
|
22
|
-
# Avoid methods longer than
|
22
|
+
# Avoid methods longer than 15 lines of code
|
23
23
|
MethodLength:
|
24
|
-
CountComments: false
|
24
|
+
CountComments: false
|
25
25
|
Max: 15
|
26
26
|
|
27
27
|
AbcSize:
|
@@ -40,5 +40,5 @@ GuardClause:
|
|
40
40
|
SingleSpaceBeforeFirstArg:
|
41
41
|
Enabled: false
|
42
42
|
|
43
|
-
|
44
|
-
EnforcedStyle:
|
43
|
+
DotPosition:
|
44
|
+
EnforcedStyle: trailing
|
data/.travis.yml
CHANGED
@@ -20,8 +20,8 @@ script:
|
|
20
20
|
|
21
21
|
env:
|
22
22
|
- "RAILS_VERSION=3.2.21"
|
23
|
-
- "RAILS_VERSION=4.0.
|
24
|
-
- "RAILS_VERSION=4.1.
|
25
|
-
- "RAILS_VERSION=4.2.
|
26
|
-
- "RAILS_VERSION=4.2.
|
27
|
-
- "RAILS_VERSION=4.2.
|
23
|
+
- "RAILS_VERSION=4.0.13"
|
24
|
+
- "RAILS_VERSION=4.1.10"
|
25
|
+
- "RAILS_VERSION=4.2.1"
|
26
|
+
- "RAILS_VERSION=4.2.1 DATABASE_URL=mysql2://root@localhost/statesman_test"
|
27
|
+
- "RAILS_VERSION=4.2.1 DATABASE_URL=postgres://postgres@localhost/statesman_test"
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
## v1.2.3 14 April 2015
|
2
|
+
|
3
|
+
- Fix use of most_recent column in MySQL (partial indexes aren't supported) (patch by [@greysteil](https://github.com/greysteil))
|
4
|
+
|
1
5
|
## v1.2.2 24 March 2015
|
2
6
|
|
3
7
|
- Add support for namespaced transition models (patch by [@DanielWright](https://github.com/DanielWright))
|
@@ -2,12 +2,18 @@ class AddConstraintsToMostRecentFor<%= migration_class_name %> < ActiveRecord::M
|
|
2
2
|
disable_ddl_transaction!
|
3
3
|
|
4
4
|
def up
|
5
|
+
<%- if database_supports_partial_indexes? -%>
|
5
6
|
add_index :<%= table_name %>, [:<%= parent_id %>, :most_recent], unique: true, where: "most_recent", name: "index_<%= table_name %>_parent_most_recent", algorithm: :concurrently
|
6
7
|
change_column_null :<%= table_name %>, :most_recent, false
|
8
|
+
<%- else -%>
|
9
|
+
add_index :<%= table_name %>, [:<%= parent_id %>, :most_recent], unique: true, name: "index_<%= table_name %>_parent_most_recent", algorithm: :concurrently
|
10
|
+
<%- end -%>
|
7
11
|
end
|
8
12
|
|
9
13
|
def down
|
10
14
|
remove_index :<%= table_name %>, name: "index_<%= table_name %>_parent_most_recent"
|
15
|
+
<%- if database_supports_partial_indexes? -%>
|
11
16
|
change_column_null :<%= table_name %>, :most_recent, true
|
17
|
+
<%- end -%>
|
12
18
|
end
|
13
19
|
end
|
@@ -5,11 +5,18 @@ class Create<%= migration_class_name %> < ActiveRecord::Migration
|
|
5
5
|
t.text :metadata<%= ", default: \"{}\"" unless mysql? %>
|
6
6
|
t.integer :sort_key, null: false
|
7
7
|
t.integer :<%= parent_id %>, null: false
|
8
|
-
t.boolean :most_recent, null: false
|
8
|
+
t.boolean :most_recent<%= ", null: false" if database_supports_partial_indexes? %>
|
9
9
|
t.timestamps null: false
|
10
10
|
end
|
11
11
|
|
12
|
-
add_index
|
13
|
-
|
12
|
+
add_index(:<%= table_name %>,
|
13
|
+
[:<%= parent_id %>, :sort_key],
|
14
|
+
unique: true,
|
15
|
+
name: "<%= index_name :parent_sort %>")
|
16
|
+
add_index(:<%= table_name %>,
|
17
|
+
[:<%= parent_id %>, :most_recent],
|
18
|
+
unique: true,
|
19
|
+
<%= "where: 'most_recent'," if database_supports_partial_indexes? %>
|
20
|
+
name: "<%= index_name :parent_most_recent %>")
|
14
21
|
end
|
15
22
|
end
|
@@ -1,14 +1,14 @@
|
|
1
1
|
class <%= klass %>
|
2
2
|
include Mongoid::Document
|
3
3
|
include Mongoid::Timestamps
|
4
|
-
include Statesman::Adapters::MongoidTransition
|
5
4
|
|
6
5
|
field :to_state, type: String
|
7
6
|
field :sort_key, type: Integer
|
8
7
|
field :statesman_metadata, type: Hash
|
9
8
|
|
9
|
+
include Statesman::Adapters::MongoidTransition
|
10
|
+
|
10
11
|
index({ sort_key: 1 })
|
11
12
|
|
12
13
|
belongs_to :<%= parent %><%= class_name_option %>, index: true
|
13
|
-
|
14
14
|
end
|
@@ -8,6 +8,15 @@ module Statesman
|
|
8
8
|
|
9
9
|
JSON_COLUMN_TYPES = %w(json jsonb).freeze
|
10
10
|
|
11
|
+
def self.database_supports_partial_indexes?
|
12
|
+
# Rails 3 doesn't implement `supports_partial_index?`
|
13
|
+
if ::ActiveRecord::Base.connection.respond_to?(:supports_partial_index?)
|
14
|
+
::ActiveRecord::Base.connection.supports_partial_index?
|
15
|
+
else
|
16
|
+
::ActiveRecord::Base.connection.adapter_name == 'PostgreSQL'
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
11
20
|
def initialize(transition_class, parent_model, observer, options = {})
|
12
21
|
serialized = serialized?(transition_class)
|
13
22
|
column_type = transition_class.columns_hash['metadata'].sql_type
|
@@ -27,15 +36,10 @@ module Statesman
|
|
27
36
|
end
|
28
37
|
|
29
38
|
def create(from, to, metadata = {})
|
30
|
-
from
|
31
|
-
to = to.to_s
|
32
|
-
create_transition(from, to, metadata)
|
39
|
+
create_transition(from.to_s, to.to_s, metadata)
|
33
40
|
rescue ::ActiveRecord::RecordNotUnique => e
|
34
|
-
|
35
|
-
|
36
|
-
raise TransitionConflictError, e.message
|
37
|
-
else raise
|
38
|
-
end
|
41
|
+
raise TransitionConflictError, e.message if transition_conflict_error? e
|
42
|
+
raise
|
39
43
|
ensure
|
40
44
|
@last_transition = nil
|
41
45
|
end
|
@@ -83,7 +87,18 @@ module Statesman
|
|
83
87
|
|
84
88
|
def unset_old_most_recent
|
85
89
|
return unless most_recent_column?
|
86
|
-
|
90
|
+
# Check whether the `most_recent` column allows null values. If it
|
91
|
+
# doesn't, set old records to `false`, otherwise, set them to `NULL`.
|
92
|
+
#
|
93
|
+
# Some conditioning here is required to support databases that don't
|
94
|
+
# support partial indexes. By doing the conditioning on the column,
|
95
|
+
# rather than Rails' opinion of whether the database supports partial
|
96
|
+
# indexes, we're robust to DBs later adding support for partial indexes.
|
97
|
+
if transition_class.columns_hash['most_recent'].null == false
|
98
|
+
transitions_for_parent.update_all(most_recent: false)
|
99
|
+
else
|
100
|
+
transitions_for_parent.update_all(most_recent: nil)
|
101
|
+
end
|
87
102
|
end
|
88
103
|
|
89
104
|
def most_recent_column?
|
@@ -103,6 +118,11 @@ module Statesman
|
|
103
118
|
transition_class.serialized_attributes.include?("metadata")
|
104
119
|
end
|
105
120
|
end
|
121
|
+
|
122
|
+
def transition_conflict_error?(e)
|
123
|
+
e.message.include?(@transition_class.table_name) &&
|
124
|
+
(e.message.include?('sort_key') || e.message.include?('most_recent'))
|
125
|
+
end
|
106
126
|
end
|
107
127
|
end
|
108
128
|
end
|
data/lib/statesman/callback.rb
CHANGED
data/lib/statesman/machine.rb
CHANGED
data/lib/statesman/version.rb
CHANGED
data/lib/tasks/statesman.rake
CHANGED
@@ -15,9 +15,14 @@ namespace :statesman do
|
|
15
15
|
|
16
16
|
parent_class.find_in_batches(batch_size: batch_size) do |models|
|
17
17
|
ActiveRecord::Base.transaction do
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
if transition_class.columns_hash['most_recent'].null == false
|
19
|
+
# Set all transitions' most_recent to FALSE
|
20
|
+
transition_class.where(parent_fk => models.map(&:id)).
|
21
|
+
update_all(most_recent: false)
|
22
|
+
else
|
23
|
+
transition_class.where(parent_fk => models.map(&:id)).
|
24
|
+
update_all(most_recent: nil)
|
25
|
+
end
|
21
26
|
|
22
27
|
# Set current transition's most_recent to TRUE
|
23
28
|
ActiveRecord::Base.connection.execute %{
|
File without changes
|
data/spec/fixtures/add_constraints_to_most_recent_for_bacon_transitions_without_partial_index.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
class AddConstraintsToMostRecentForBaconTransitions < ActiveRecord::Migration
|
2
|
+
disable_ddl_transaction!
|
3
|
+
|
4
|
+
def up
|
5
|
+
add_index :bacon_transitions, [:bacon_id, :most_recent], unique: true, name: "index_bacon_transitions_parent_most_recent", algorithm: :concurrently
|
6
|
+
end
|
7
|
+
|
8
|
+
def down
|
9
|
+
remove_index :bacon_transitions, name: "index_bacon_transitions_parent_most_recent"
|
10
|
+
end
|
11
|
+
end
|
@@ -12,7 +12,7 @@ describe Statesman::ActiveRecordTransitionGenerator, type: :generator do
|
|
12
12
|
subject { file('app/models/yummy/bacon_transition.rb') }
|
13
13
|
|
14
14
|
it { is_expected.to contain(/:bacon_transition/) }
|
15
|
-
it { is_expected.not_to contain(
|
15
|
+
it { is_expected.not_to contain(%r{:yummy/bacon}) }
|
16
16
|
it { is_expected.to contain(/class_name: 'Yummy::Bacon'/) }
|
17
17
|
end
|
18
18
|
|
@@ -22,8 +22,13 @@ describe Statesman::AddConstraintsToMostRecentGenerator, type: :generator do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
let(:fixture_file) do
|
25
|
-
|
26
|
-
|
25
|
+
if Statesman::Adapters::ActiveRecord.database_supports_partial_indexes?
|
26
|
+
File.read("spec/fixtures/add_constraints_to_most_recent_for_"\
|
27
|
+
"bacon_transitions_with_partial_index.rb")
|
28
|
+
else
|
29
|
+
File.read("spec/fixtures/add_constraints_to_most_recent_for_"\
|
30
|
+
"bacon_transitions_without_partial_index.rb")
|
31
|
+
end
|
27
32
|
end
|
28
33
|
|
29
34
|
before do
|
@@ -26,7 +26,7 @@ describe Statesman::MigrationGenerator, type: :generator do
|
|
26
26
|
end
|
27
27
|
|
28
28
|
it { is_expected.to contain(/:bacon_transition/) }
|
29
|
-
it { is_expected.not_to contain(
|
29
|
+
it { is_expected.not_to contain(%r{:yummy/bacon}) }
|
30
30
|
it { is_expected.to contain(/null: false/) }
|
31
31
|
|
32
32
|
it "names the sorting index appropriately" do
|
@@ -7,7 +7,7 @@ describe Statesman::MongoidTransitionGenerator, type: :generator do
|
|
7
7
|
before { run_generator %w(Yummy::Bacon Yummy::BaconTransition) }
|
8
8
|
subject { file('app/models/yummy/bacon_transition.rb') }
|
9
9
|
|
10
|
-
it { is_expected.not_to contain(
|
10
|
+
it { is_expected.not_to contain(%r{:yummy/bacon}) }
|
11
11
|
it { is_expected.to contain(/class_name: 'Yummy::Bacon'/) }
|
12
12
|
end
|
13
13
|
|
data/spec/spec_helper.rb
CHANGED
@@ -31,7 +31,7 @@ RSpec.configure do |config|
|
|
31
31
|
else
|
32
32
|
# Connect to the database for activerecord tests
|
33
33
|
db_conn_spec = ENV["DATABASE_URL"]
|
34
|
-
db_conn_spec ||=
|
34
|
+
db_conn_spec ||= { adapter: "sqlite3", database: ":memory:" }
|
35
35
|
ActiveRecord::Base.establish_connection(db_conn_spec)
|
36
36
|
|
37
37
|
db_adapter = ActiveRecord::Base.connection.adapter_name
|
@@ -145,7 +145,7 @@ describe Statesman::Adapters::ActiveRecord, active_record: true do
|
|
145
145
|
it "updates the previous transition's most_recent flag" do
|
146
146
|
expect { create }.
|
147
147
|
to change { previous_transition.reload.most_recent }.
|
148
|
-
from(true).to
|
148
|
+
from(true).to be_falsey
|
149
149
|
end
|
150
150
|
|
151
151
|
context "and the parent model is updated in a callback" do
|
@@ -162,6 +162,18 @@ describe Statesman::Adapters::ActiveRecord, active_record: true do
|
|
162
162
|
end
|
163
163
|
end
|
164
164
|
end
|
165
|
+
|
166
|
+
context "with two previous transitions" do
|
167
|
+
let!(:previous_transition) { adapter.create(from, to) }
|
168
|
+
let!(:another_previous_transition) { adapter.create(from, to) }
|
169
|
+
its(:most_recent) { is_expected.to eq(true) }
|
170
|
+
|
171
|
+
it "updates the previous transition's most_recent flag" do
|
172
|
+
expect { create }.
|
173
|
+
to change { another_previous_transition.reload.most_recent }.
|
174
|
+
from(true).to be_falsey
|
175
|
+
end
|
176
|
+
end
|
165
177
|
end
|
166
178
|
|
167
179
|
context "when the transition_class doesn't have a most_recent column" do
|
@@ -50,7 +50,6 @@ class CreateMyActiveRecordModelTransitionMigration < ActiveRecord::Migration
|
|
50
50
|
t.string :to_state
|
51
51
|
t.integer :my_active_record_model_id
|
52
52
|
t.integer :sort_key
|
53
|
-
t.boolean :most_recent, default: true, null: false
|
54
53
|
|
55
54
|
# MySQL doesn't allow default values on text fields
|
56
55
|
if ActiveRecord::Base.connection.adapter_name == 'Mysql2'
|
@@ -59,17 +58,33 @@ class CreateMyActiveRecordModelTransitionMigration < ActiveRecord::Migration
|
|
59
58
|
t.text :metadata, default: '{}'
|
60
59
|
end
|
61
60
|
|
61
|
+
if Statesman::Adapters::ActiveRecord.database_supports_partial_indexes?
|
62
|
+
t.boolean :most_recent, default: true, null: false
|
63
|
+
else
|
64
|
+
t.boolean :most_recent, default: true
|
65
|
+
end
|
66
|
+
|
62
67
|
t.timestamps null: false
|
63
68
|
end
|
64
69
|
|
65
70
|
add_index :my_active_record_model_transitions,
|
66
71
|
[:my_active_record_model_id, :sort_key],
|
67
72
|
unique: true, name: "sort_key_index"
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
+
|
74
|
+
if Statesman::Adapters::ActiveRecord.database_supports_partial_indexes?
|
75
|
+
add_index :my_active_record_model_transitions,
|
76
|
+
[:my_active_record_model_id, :most_recent],
|
77
|
+
unique: true,
|
78
|
+
where: "most_recent",
|
79
|
+
name: "index_my_active_record_model_transitions_"\
|
80
|
+
"parent_most_recent"
|
81
|
+
else
|
82
|
+
add_index :my_active_record_model_transitions,
|
83
|
+
[:my_active_record_model_id, :most_recent],
|
84
|
+
unique: true,
|
85
|
+
name: "index_my_active_record_model_transitions_"\
|
86
|
+
"parent_most_recent"
|
87
|
+
end
|
73
88
|
end
|
74
89
|
end
|
75
90
|
# rubocop:enable MethodLength
|
data/spec/support/mongoid.rb
CHANGED
@@ -14,6 +14,7 @@ end
|
|
14
14
|
|
15
15
|
class MyMongoidModelTransition
|
16
16
|
include Mongoid::Document
|
17
|
+
include Mongoid::Timestamps
|
17
18
|
|
18
19
|
field :to_state, type: String
|
19
20
|
field :sort_key, type: Integer
|
@@ -23,6 +24,5 @@ class MyMongoidModelTransition
|
|
23
24
|
|
24
25
|
belongs_to :my_mongoid_model, index: true
|
25
26
|
|
26
|
-
|
27
|
-
alias_method :metadata=, :statesman_metadata=
|
27
|
+
include Statesman::Adapters::MongoidTransition
|
28
28
|
end
|
data/statesman.gemspec
CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_development_dependency "rspec", "~> 3.1"
|
24
24
|
spec.add_development_dependency "rspec-its", "~> 1.1"
|
25
25
|
spec.add_development_dependency "guard-rspec", "~> 4.3"
|
26
|
-
spec.add_development_dependency "rubocop", "~> 0.
|
26
|
+
spec.add_development_dependency "rubocop", "~> 0.30.0"
|
27
27
|
spec.add_development_dependency "guard-rubocop", "~> 1.2"
|
28
28
|
spec.add_development_dependency "sqlite3", "~> 1.3"
|
29
29
|
spec.add_development_dependency "mongoid", ">= 3.1"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: statesman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Harry Marr
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-04-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -87,14 +87,14 @@ dependencies:
|
|
87
87
|
requirements:
|
88
88
|
- - ~>
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version: 0.
|
90
|
+
version: 0.30.0
|
91
91
|
type: :development
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
95
|
- - ~>
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
version: 0.
|
97
|
+
version: 0.30.0
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: guard-rubocop
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
@@ -240,7 +240,8 @@ files:
|
|
240
240
|
- lib/statesman/railtie.rb
|
241
241
|
- lib/statesman/version.rb
|
242
242
|
- lib/tasks/statesman.rake
|
243
|
-
- spec/fixtures/
|
243
|
+
- spec/fixtures/add_constraints_to_most_recent_for_bacon_transitions_with_partial_index.rb
|
244
|
+
- spec/fixtures/add_constraints_to_most_recent_for_bacon_transitions_without_partial_index.rb
|
244
245
|
- spec/fixtures/add_most_recent_to_bacon_transitions.rb
|
245
246
|
- spec/generators/statesman/active_record_transition_generator_spec.rb
|
246
247
|
- spec/generators/statesman/add_constraints_to_most_recent_generator_spec.rb
|
@@ -283,12 +284,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
283
284
|
version: '0'
|
284
285
|
requirements: []
|
285
286
|
rubyforge_project:
|
286
|
-
rubygems_version: 2.
|
287
|
+
rubygems_version: 2.2.2
|
287
288
|
signing_key:
|
288
289
|
specification_version: 4
|
289
290
|
summary: A statesmanlike state machine library
|
290
291
|
test_files:
|
291
|
-
- spec/fixtures/
|
292
|
+
- spec/fixtures/add_constraints_to_most_recent_for_bacon_transitions_with_partial_index.rb
|
293
|
+
- spec/fixtures/add_constraints_to_most_recent_for_bacon_transitions_without_partial_index.rb
|
292
294
|
- spec/fixtures/add_most_recent_to_bacon_transitions.rb
|
293
295
|
- spec/generators/statesman/active_record_transition_generator_spec.rb
|
294
296
|
- spec/generators/statesman/add_constraints_to_most_recent_generator_spec.rb
|
@@ -310,4 +312,3 @@ test_files:
|
|
310
312
|
- spec/support/active_record.rb
|
311
313
|
- spec/support/generators_shared_examples.rb
|
312
314
|
- spec/support/mongoid.rb
|
313
|
-
has_rdoc:
|