state_machines-audit_trail 1.0.2 → 2.0.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
  SHA1:
3
- metadata.gz: b2be69a3ef20ae821d26c9cc330e19fe8d94d5a2
4
- data.tar.gz: a4b55d4b850acf875c7489c1505c3c99152111a1
3
+ metadata.gz: a8bdbceb8f20cf398d79321289977826d2ebe3a3
4
+ data.tar.gz: 52121baac211285206c9c5a5439072a8766b8417
5
5
  SHA512:
6
- metadata.gz: 0d89506285ebdd527499b689a4bc9d08e7996ceaed99f4cb707941e8134a086f998b73d50f414702afbbd15abfa669dca1b24446da2fef56e647792bb971b9a1
7
- data.tar.gz: f7e486a00886044b9763ad293d27c4fce800c52e968e0b689b431b23b3b3d321050a1c229921f8ab55ac17531c48db356734c0ee010719d9a42bdbc15f3f8754
6
+ metadata.gz: 1344549ca014caea0917f4828355955519a103a4491b58823e52168259f4b4a6892eb135d9f72f9982337475978810ded1656ecc047d2fe5cbb803ed77b06530
7
+ data.tar.gz: 07d84647e61176676c060a0627c5af092041ebad291004991bc84dec9bb2ef18dae6d4cbd69d0c9db97e627f475a60ccd01bf1ff75f06b4d2286a86f712b72f2
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ state_machines-audit_trail
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.3.1
data/.travis.yml CHANGED
@@ -6,9 +6,8 @@ script: "bundle exec rake"
6
6
 
7
7
  services: mongodb
8
8
  rvm:
9
- - 2.1
10
- - 2.0.0
11
- - 2.2
9
+ - 2.2.2
10
+ - 2.3.1
12
11
  - jruby
13
12
  - rbx-2
14
13
  matrix:
data/README.md CHANGED
@@ -56,7 +56,7 @@ will generate the `SubscriptionStateTransition` model and an accompanying migrat
56
56
 
57
57
  ```ruby
58
58
  class Subscription < ActiveRecord::Base
59
- state_machines :state, initial: :start do
59
+ state_machine :state, initial: :start do
60
60
  audit_trail
61
61
  ...
62
62
  ```
@@ -64,6 +64,10 @@ class Subscription < ActiveRecord::Base
64
64
  ### That's it!
65
65
  `audit_trail` will register an `after_transition` callback that is used to log all transitions including the initial state if there is one.
66
66
 
67
+ ## Upgrading from state_machine-audit_trail
68
+
69
+ See the wiki, https://github.com/state-machines/state_machines-audit_trail/wiki/Converting-from-former-state_machine-audit_trail-to-state_machines-audit_trail
70
+
67
71
  ## Configuration options
68
72
 
69
73
  ### `:initial` - turn off initial state logging
@@ -110,7 +114,7 @@ audit_trail context: [:field1, :field2]
110
114
  Store `Subscription` `user` in `Transition` fields `user_id` and `user_name`:
111
115
  ```ruby
112
116
  class Subscription < ActiveRecord::Base
113
- state_machines :state, initial: :start do
117
+ state_machine :state, initial: :start do
114
118
  audit_trail context: :user
115
119
  ...
116
120
  end
@@ -132,7 +136,7 @@ Sometimes it can be useful to store dynamically computed information, such as th
132
136
 
133
137
  ```ruby
134
138
  class Subscription < ActiveRecord::Base
135
- state_machines :state, initial: :start do
139
+ state_machine :state, initial: :start do
136
140
  audit_trail :context: :plan_time_remaining
137
141
  ...
138
142
 
@@ -146,7 +150,7 @@ Store method results that interrogate the transition for information such as `ev
146
150
 
147
151
  ```ruby
148
152
  class Subscription < ActiveRecord::Base
149
- state_machines :state, initial: :start do
153
+ state_machine :state, initial: :start do
150
154
  audit_trail :context: :user_name
151
155
  ...
152
156
 
@@ -1,2 +1,3 @@
1
+ # Comment here to test travis build on gem PR with no meaningful changes
1
2
  # To keep Rails happy
2
3
  require 'state_machines/audit_trail'
@@ -1,4 +1,4 @@
1
- class StateMachines::AuditTrail::Backend < Struct.new(:transition_class, :owner_class, :context)
1
+ class StateMachines::AuditTrail::Backend < Struct.new(:transition_class, :owner_class, :options)
2
2
 
3
3
  autoload :Mongoid, 'state_machines/audit_trail/backend/mongoid'
4
4
  autoload :ActiveRecord, 'state_machines/audit_trail/backend/active_record'
@@ -18,9 +18,9 @@ class StateMachines::AuditTrail::Backend < Struct.new(:transition_class, :owner_
18
18
  namespace = transition.namespace
19
19
  end
20
20
  fields = {namespace: namespace, event: transition.event ? transition.event.to_s : nil, from: transition.from, to: transition.to}
21
- [context].flatten(1).each { |field|
21
+ [*options[:context]].each { |field|
22
22
  fields[field] = resolve_context(object, field, transition)
23
- } unless self.context.nil?
23
+ }
24
24
 
25
25
  # begin
26
26
  persist(object, fields)
@@ -38,11 +38,11 @@ class StateMachines::AuditTrail::Backend < Struct.new(:transition_class, :owner_
38
38
  # To add a new ORM, implement something similar to lib/state_machines/audit_trail/backend/active_record.rb
39
39
  # and return from here the appropriate object based on which ORM the transition_class is using
40
40
  #
41
- def self.create_for(transition_class, owner_class, context = nil)
41
+ def self.create_for(transition_class, owner_class, options = {})
42
42
  if Object.const_defined?('ActiveRecord') && transition_class.ancestors.include?(::ActiveRecord::Base)
43
- return StateMachines::AuditTrail::Backend::ActiveRecord.new(transition_class, owner_class, context)
43
+ return StateMachines::AuditTrail::Backend::ActiveRecord.new(transition_class, owner_class, options)
44
44
  elsif Object.const_defined?('Mongoid') && transition_class.ancestors.include?(::Mongoid::Document)
45
- return StateMachines::AuditTrail::Backend::Mongoid.new(transition_class, owner_class, context)
45
+ return StateMachines::AuditTrail::Backend::Mongoid.new(transition_class, owner_class, options)
46
46
  else
47
47
  raise 'Not implemented. Only support for ActiveRecord and Mongoid is implemented. Pull requests welcome.'
48
48
  end
@@ -60,7 +60,15 @@ class StateMachines::AuditTrail::Backend < Struct.new(:transition_class, :owner_
60
60
  end
61
61
 
62
62
  def resolve_context(object, context, transition)
63
- if object.method(context).arity != 0
63
+ # ---------------
64
+ # TODO: remove this check after we set a minimum version of Rails/ActiveRecord to 5.1+. At that time, the argument will be removed and the arity check will be enough. - rosskevin
65
+ # Don't send params to Rails 5+ associations because it triggers a ton of deprecation messages.
66
+ # @see https://github.com/state-machines/state_machines-audit_trail/issues/6
67
+ # check if activerecord && the context is an association
68
+ skip_args = object.is_a?(::ActiveRecord::Base) && object.class.reflections.keys.include?(context.to_s)
69
+ # ---------------
70
+
71
+ if object.method(context).arity != 0 && !skip_args
64
72
  object.send(context, transition)
65
73
  else
66
74
  object.send(context)
@@ -1,13 +1,11 @@
1
1
  require 'state_machines-activerecord'
2
2
 
3
3
  class StateMachines::AuditTrail::Backend::ActiveRecord < StateMachines::AuditTrail::Backend
4
- attr_accessor :context
5
-
6
- def initialize(transition_class, owner_class, context = nil)
4
+ def initialize(transition_class, owner_class, options = {})
5
+ super
7
6
  @association = transition_class.to_s.tableize.split('/').last.to_sym
8
- super transition_class, owner_class
9
- self.context = context # FIXME: actually not sure why we need to do this, but tests fail otherwise. Something with super's Struct?
10
- owner_class.has_many(@association, class_name: transition_class.to_s) unless owner_class.reflect_on_association(@association)
7
+ assoc_options = {class_name: transition_class.to_s}.merge(options.slice(:as))
8
+ owner_class.has_many(@association, assoc_options) unless owner_class.reflect_on_association(@association)
11
9
  end
12
10
 
13
11
  def persist(object, fields)
@@ -12,6 +12,7 @@ module StateMachines::AuditTrail::TransitionAuditing
12
12
  #
13
13
  # options:
14
14
  # - :class - custom state transition class
15
+ # - :owner_class - the class which is to own the persisted transition objects
15
16
  # - :context - methods to call/store in field of same name in the state transition class
16
17
  # - :initial - if false, won't log null => initial state transition upon instantiation
17
18
  #
@@ -21,9 +22,10 @@ module StateMachines::AuditTrail::TransitionAuditing
21
22
  raise ":class option[#{options[:class]}] must be a class (not a string)." unless options[:class].is_a? Class
22
23
  end
23
24
  transition_class = options[:class] || default_transition_class
25
+ owner_class = options[:owner_class] || self.owner_class
24
26
 
25
27
  # backend implements #log to store transition information
26
- @backend = StateMachines::AuditTrail::Backend.create_for(transition_class, self.owner_class, options[:context])
28
+ @backend = StateMachines::AuditTrail::Backend.create_for(transition_class, owner_class, options.slice(:context, :as))
27
29
 
28
30
  # Initial state logging can be turned off. Very useful for a model with multiple state_machines using a single TransitionState object for logging
29
31
  unless options[:initial] == false
@@ -1,5 +1,5 @@
1
1
  module StateMachines
2
2
  module AuditTrail
3
- VERSION = '1.0.2'
3
+ VERSION = '2.0.0'
4
4
  end
5
5
  end
@@ -171,6 +171,38 @@ class ARModelWithMultipleStateMachines < ActiveRecord::Base
171
171
  end
172
172
  end
173
173
 
174
+ class ARResourceStateTransition < ActiveRecord::Base
175
+ belongs_to :resource, polymorphic: true
176
+ end
177
+
178
+ class ARFirstModelWithPolymorphicStateTransition < ActiveRecord::Base
179
+ state_machine :state, :initial => :pending do
180
+ audit_trail class: ARResourceStateTransition, as: :ar_resource
181
+
182
+ event :start do
183
+ transition :pending => :in_progress
184
+ end
185
+
186
+ event :finish do
187
+ transition :in_progress => :complete
188
+ end
189
+ end
190
+ end
191
+
192
+ class ARSecondModelWithPolymorphicStateTransition < ActiveRecord::Base
193
+ state_machine :state, :initial => :pending do
194
+ audit_trail class: ARResourceStateTransition, as: :ar_resource
195
+
196
+ event :start do
197
+ transition :pending => :in_progress
198
+ end
199
+
200
+ event :finish do
201
+ transition :in_progress => :complete
202
+ end
203
+ end
204
+ end
205
+
174
206
  module SomeModule
175
207
  class ARModelStateTransition < ActiveRecord::Base
176
208
  belongs_to :ar_model
@@ -215,20 +247,19 @@ def create_model_table(owner_class, multiple_state_machines = false, state_colum
215
247
  end
216
248
 
217
249
 
218
- %w(ARModel ARModelNoInitial ARModelWithContext ARModelWithMultipleContext).each do |name|
250
+ %w(ARModel ARModelNoInitial ARModelWithContext ARModelWithMultipleContext ARFirstModelWithPolymorphicStateTransition ARSecondModelWithPolymorphicStateTransition).each do |name|
219
251
  create_model_table(name.constantize)
220
252
  end
221
253
 
222
254
  create_model_table(ARModelWithNamespace, false, :foo_state)
223
255
  create_model_table(ARModelWithMultipleStateMachines, true)
224
256
 
225
-
226
- def create_transition_table(owner_class, state, add_context = false)
227
- class_name = "#{owner_class.name}#{state.to_s.camelize}Transition"
257
+ def create_transition_table(owner_class_name, state, add_context: false, polymorphic: false)
258
+ class_name = "#{owner_class_name}#{state.to_s.camelize}Transition"
228
259
  ActiveRecord::Base.connection.create_table(class_name.tableize) do |t|
229
260
 
230
- # t.references :"#{owner_class.name.pluralize.demodulize.tableize}"
231
- t.integer owner_class.name.foreign_key
261
+ t.references "#{owner_class_name.demodulize.underscore}", index: false, polymorphic: polymorphic
262
+ # t.integer owner_class_name.foreign_key
232
263
  t.string :namespace
233
264
  t.string :event
234
265
  t.string :from
@@ -242,12 +273,13 @@ def create_transition_table(owner_class, state, add_context = false)
242
273
  end
243
274
 
244
275
  %w(ARModel ARModelNoInitial).each do |name|
245
- create_transition_table(name.constantize, :state)
276
+ create_transition_table(name, :state)
246
277
  end
247
278
 
248
- create_transition_table(ARModelWithNamespace, :foo_state, false)
249
- create_transition_table(ARModelWithContext, :state, true)
250
- create_transition_table(ARModelWithMultipleContext, :state, true)
251
- create_transition_table(ARModelWithMultipleStateMachines, :first)
252
- create_transition_table(ARModelWithMultipleStateMachines, :second)
253
- create_transition_table(ARModelWithMultipleStateMachines, :third)
279
+ create_transition_table("ARModelWithNamespace", :foo_state, add_context: false)
280
+ create_transition_table("ARModelWithContext", :state, add_context: true)
281
+ create_transition_table("ARModelWithMultipleContext", :state, add_context: true)
282
+ create_transition_table("ARModelWithMultipleStateMachines", :first)
283
+ create_transition_table("ARModelWithMultipleStateMachines", :second)
284
+ create_transition_table("ARModelWithMultipleStateMachines", :third)
285
+ create_transition_table("ARResource", :state, polymorphic: true)
@@ -1,5 +1,5 @@
1
1
  test:
2
- sessions:
2
+ clients:
3
3
  default:
4
4
  database: sm_audit_trail
5
5
  hosts:
@@ -147,7 +147,7 @@ describe StateMachines::AuditTrail::Backend::ActiveRecord do
147
147
 
148
148
  context 'wants to log a single context' do
149
149
  before(:each) do
150
- StateMachines::AuditTrail::Backend.create_for(ARModelWithContextStateTransition, ARModelWithContext, :context)
150
+ StateMachines::AuditTrail::Backend.create_for(ARModelWithContextStateTransition, ARModelWithContext, context: :context)
151
151
  end
152
152
 
153
153
  let!(:target) { ARModelWithContext.create! }
@@ -161,7 +161,7 @@ describe StateMachines::AuditTrail::Backend::ActiveRecord do
161
161
 
162
162
  context 'wants to log multiple context fields' do
163
163
  before(:each) do
164
- StateMachines::AuditTrail::Backend.create_for(ARModelWithMultipleContextStateTransition, ARModelWithMultipleContext, [:context, :second_context, :context_with_args])
164
+ StateMachines::AuditTrail::Backend.create_for(ARModelWithMultipleContextStateTransition, ARModelWithMultipleContext, context: [:context, :second_context, :context_with_args])
165
165
  end
166
166
 
167
167
  let!(:target) { ARModelWithMultipleContext.create! }
@@ -264,6 +264,19 @@ describe StateMachines::AuditTrail::Backend::ActiveRecord do
264
264
  end
265
265
  end
266
266
 
267
+ context 'polymorphic' do
268
+ it 'creates polymorphic state transitions' do
269
+ m1 = ARFirstModelWithPolymorphicStateTransition.create!
270
+ m2 = ARSecondModelWithPolymorphicStateTransition.create!
271
+ m2.start!
272
+ m2.finish!
273
+
274
+ expect(m1.ar_resource_state_transitions.count).to eq(1)
275
+ expect(m2.ar_resource_state_transitions.count).to eq(3)
276
+ expect(ARResourceStateTransition.count).to eq(4)
277
+ end
278
+ end
279
+
267
280
  private
268
281
 
269
282
  def assert_transition(state_transition, event, from, to)
@@ -1,98 +1,98 @@
1
- # reset integrations so that something like ActiveRecord is not loaded and conflicting
2
- require 'state_machines'
3
- StateMachines::Integrations.reset
4
-
5
- require 'spec_helper'
6
- require 'state_machines-mongoid'
7
- require 'helpers/mongoid'
8
-
9
- describe StateMachines::AuditTrail::Backend::Mongoid do
10
-
11
- context '#create_for' do
12
- it 'should create a Mongoid backend' do
13
- backend = StateMachines::AuditTrail::Backend.create_for(MongoidTestModelStateTransition, MongoidTestModel)
14
- expect(backend).to be_instance_of(StateMachines::AuditTrail::Backend::Mongoid)
15
- end
16
- end
17
-
18
- context 'single state machine' do
19
- let!(:target) { MongoidTestModel.create! }
20
-
21
- it 'should populate all fields' do
22
- target.start!
23
- last_transition = MongoidTestModelStateTransition.where(:mongoid_test_model_id => target.id).last
24
-
25
- expect(last_transition.event).to eq 'start'
26
- expect(last_transition.from).to eq 'waiting'
27
- expect(last_transition.to).to eq 'started'
28
- expect(last_transition.created_at).to be_within(10.seconds).of(DateTime.now)
29
- end
30
-
31
- it 'should log multiple events' do
32
- expect { target.start && target.stop && target.start }.to change(MongoidTestModelStateTransition, :count).by(3)
33
- end
34
-
35
- it 'do nothing on failed transition' do
36
- expect { target.stop }.not_to change(MongoidTestModelStateTransition, :count)
37
- end
38
- end
39
-
40
- context 'multiple state machines' do
41
- let!(:target) { MongoidTestModelWithMultipleStateMachines.create! }
42
-
43
- it 'should log a state transition for the affected state machine' do
44
- expect { target.begin_first! }.to change(MongoidTestModelWithMultipleStateMachinesFirstTransition, :count).by(1)
45
- end
46
-
47
- it 'should not log a state transition for the unaffected state machine' do
48
- expect { target.begin_first! }.not_to change(MongoidTestModelWithMultipleStateMachinesSecondTransition, :count)
49
- end
50
- end
51
-
52
- context 'on an object with a state machine having an initial state' do
53
- let(:target_class) { MongoidTestModelWithMultipleStateMachines }
54
- let(:state_transition_class) { MongoidTestModelWithMultipleStateMachinesFirstTransition }
55
-
56
- it 'should log a state transition for the inital state' do
57
- expect { target_class.create! }.to change(state_transition_class, :count).by(1)
58
- end
59
-
60
- it 'should only set the :to state for the initial transition' do
61
- target_class.create!
62
- initial_transition = state_transition_class.last
63
- expect(initial_transition.event).to be_nil
64
- expect(initial_transition.from).to be_nil
65
- expect(initial_transition.to).to eq 'beginning'
66
- expect(initial_transition.created_at).to be_within(10.seconds).of(DateTime.now)
67
- end
68
- end
69
-
70
- context 'on an object with a state machine not having an initial state' do
71
- let(:target_class) { MongoidTestModelWithMultipleStateMachines }
72
- let(:state_transition_class) { MongoidTestModelWithMultipleStateMachinesSecondTransition }
73
-
74
- it 'should not log a transition when the object is created' do
75
- expect { target_class.create! }.not_to change(state_transition_class, :count)
76
- end
77
-
78
- it 'should log a transition for the first event' do
79
- expect { target_class.create.begin_second! }.to change(state_transition_class, :count).by(1)
80
- end
81
-
82
- it 'should not set a value for the :from state on the first transition' do
83
- target_class.create.begin_second!
84
- first_transition = state_transition_class.last
85
- expect(first_transition.event).to eq 'begin_second'
86
- expect(first_transition.from).to be_nil
87
- expect(first_transition.to).to eq 'beginning_second'
88
- expect(first_transition.created_at).to be_within(10.seconds).of(DateTime.now)
89
- end
90
- end
91
-
92
- context 'on a class using STI' do
93
- it 'should properly grab the class name from STI models' do
94
- m = MongoidTestModelDescendant.create!
95
- expect { m.start! }.not_to raise_error
96
- end
97
- end
98
- end
1
+ # # reset integrations so that something like ActiveRecord is not loaded and conflicting
2
+ # require 'state_machines'
3
+ # StateMachines::Integrations.reset
4
+ #
5
+ # require 'spec_helper'
6
+ # require 'state_machines-mongoid'
7
+ # require 'helpers/mongoid'
8
+ #
9
+ # describe StateMachines::AuditTrail::Backend::Mongoid do
10
+ #
11
+ # context '#create_for' do
12
+ # it 'should create a Mongoid backend' do
13
+ # backend = StateMachines::AuditTrail::Backend.create_for(MongoidTestModelStateTransition, MongoidTestModel)
14
+ # expect(backend).to be_instance_of(StateMachines::AuditTrail::Backend::Mongoid)
15
+ # end
16
+ # end
17
+ #
18
+ # context 'single state machine' do
19
+ # let!(:target) { MongoidTestModel.create! }
20
+ #
21
+ # it 'should populate all fields' do
22
+ # target.start!
23
+ # last_transition = MongoidTestModelStateTransition.where(:mongoid_test_model_id => target.id).last
24
+ #
25
+ # expect(last_transition.event).to eq 'start'
26
+ # expect(last_transition.from).to eq 'waiting'
27
+ # expect(last_transition.to).to eq 'started'
28
+ # expect(last_transition.created_at).to be_within(10.seconds).of(DateTime.now)
29
+ # end
30
+ #
31
+ # it 'should log multiple events' do
32
+ # expect { target.start && target.stop && target.start }.to change(MongoidTestModelStateTransition, :count).by(3)
33
+ # end
34
+ #
35
+ # it 'do nothing on failed transition' do
36
+ # expect { target.stop }.not_to change(MongoidTestModelStateTransition, :count)
37
+ # end
38
+ # end
39
+ #
40
+ # context 'multiple state machines' do
41
+ # let!(:target) { MongoidTestModelWithMultipleStateMachines.create! }
42
+ #
43
+ # it 'should log a state transition for the affected state machine' do
44
+ # expect { target.begin_first! }.to change(MongoidTestModelWithMultipleStateMachinesFirstTransition, :count).by(1)
45
+ # end
46
+ #
47
+ # it 'should not log a state transition for the unaffected state machine' do
48
+ # expect { target.begin_first! }.not_to change(MongoidTestModelWithMultipleStateMachinesSecondTransition, :count)
49
+ # end
50
+ # end
51
+ #
52
+ # context 'on an object with a state machine having an initial state' do
53
+ # let(:target_class) { MongoidTestModelWithMultipleStateMachines }
54
+ # let(:state_transition_class) { MongoidTestModelWithMultipleStateMachinesFirstTransition }
55
+ #
56
+ # it 'should log a state transition for the inital state' do
57
+ # expect { target_class.create! }.to change(state_transition_class, :count).by(1)
58
+ # end
59
+ #
60
+ # it 'should only set the :to state for the initial transition' do
61
+ # target_class.create!
62
+ # initial_transition = state_transition_class.last
63
+ # expect(initial_transition.event).to be_nil
64
+ # expect(initial_transition.from).to be_nil
65
+ # expect(initial_transition.to).to eq 'beginning'
66
+ # expect(initial_transition.created_at).to be_within(10.seconds).of(DateTime.now)
67
+ # end
68
+ # end
69
+ #
70
+ # context 'on an object with a state machine not having an initial state' do
71
+ # let(:target_class) { MongoidTestModelWithMultipleStateMachines }
72
+ # let(:state_transition_class) { MongoidTestModelWithMultipleStateMachinesSecondTransition }
73
+ #
74
+ # it 'should not log a transition when the object is created' do
75
+ # expect { target_class.create! }.not_to change(state_transition_class, :count)
76
+ # end
77
+ #
78
+ # it 'should log a transition for the first event' do
79
+ # expect { target_class.create.begin_second! }.to change(state_transition_class, :count).by(1)
80
+ # end
81
+ #
82
+ # it 'should not set a value for the :from state on the first transition' do
83
+ # target_class.create.begin_second!
84
+ # first_transition = state_transition_class.last
85
+ # expect(first_transition.event).to eq 'begin_second'
86
+ # expect(first_transition.from).to be_nil
87
+ # expect(first_transition.to).to eq 'beginning_second'
88
+ # expect(first_transition.created_at).to be_within(10.seconds).of(DateTime.now)
89
+ # end
90
+ # end
91
+ #
92
+ # context 'on a class using STI' do
93
+ # it 'should properly grab the class name from STI models' do
94
+ # m = MongoidTestModelDescendant.create!
95
+ # expect { m.start! }.not_to raise_error
96
+ # end
97
+ # end
98
+ # end
@@ -22,12 +22,12 @@ Gem::Specification.new do |s|
22
22
  s.add_development_dependency('state_machines-mongoid')
23
23
  s.add_development_dependency('rake')
24
24
  s.add_development_dependency('rspec', '>= 3.0.0')
25
- s.add_development_dependency('activerecord', '>= 4.0.0')
25
+ s.add_development_dependency('activerecord', '>= 5.0.0')
26
26
  s.add_development_dependency('sqlite3')
27
- s.add_development_dependency('mongoid', '>= 4.0.0')
27
+ s.add_development_dependency('mongoid', '>= 6.0.0.beta')
28
28
  s.add_development_dependency('bson_ext')
29
29
  s.add_development_dependency('generator_spec')
30
- s.add_development_dependency('rails', '>= 4.0.0')
30
+ s.add_development_dependency('rails', '>= 5.0.0')
31
31
 
32
32
  s.files = `git ls-files`.split($/).reject { |f| f =~ /^samples\// }
33
33
  s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: state_machines-audit_trail
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Ross
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-04-03 00:00:00.000000000 Z
13
+ date: 2017-10-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: state_machines
@@ -88,14 +88,14 @@ dependencies:
88
88
  requirements:
89
89
  - - ">="
90
90
  - !ruby/object:Gem::Version
91
- version: 4.0.0
91
+ version: 5.0.0
92
92
  type: :development
93
93
  prerelease: false
94
94
  version_requirements: !ruby/object:Gem::Requirement
95
95
  requirements:
96
96
  - - ">="
97
97
  - !ruby/object:Gem::Version
98
- version: 4.0.0
98
+ version: 5.0.0
99
99
  - !ruby/object:Gem::Dependency
100
100
  name: sqlite3
101
101
  requirement: !ruby/object:Gem::Requirement
@@ -116,14 +116,14 @@ dependencies:
116
116
  requirements:
117
117
  - - ">="
118
118
  - !ruby/object:Gem::Version
119
- version: 4.0.0
119
+ version: 6.0.0.beta
120
120
  type: :development
121
121
  prerelease: false
122
122
  version_requirements: !ruby/object:Gem::Requirement
123
123
  requirements:
124
124
  - - ">="
125
125
  - !ruby/object:Gem::Version
126
- version: 4.0.0
126
+ version: 6.0.0.beta
127
127
  - !ruby/object:Gem::Dependency
128
128
  name: bson_ext
129
129
  requirement: !ruby/object:Gem::Requirement
@@ -158,14 +158,14 @@ dependencies:
158
158
  requirements:
159
159
  - - ">="
160
160
  - !ruby/object:Gem::Version
161
- version: 4.0.0
161
+ version: 5.0.0
162
162
  type: :development
163
163
  prerelease: false
164
164
  version_requirements: !ruby/object:Gem::Requirement
165
165
  requirements:
166
166
  - - ">="
167
167
  - !ruby/object:Gem::Version
168
- version: 4.0.0
168
+ version: 5.0.0
169
169
  description: Log transitions on a state_machines to support auditing and business
170
170
  process analytics.
171
171
  email:
@@ -178,6 +178,8 @@ extra_rdoc_files: []
178
178
  files:
179
179
  - ".gitignore"
180
180
  - ".rspec"
181
+ - ".ruby-gemset"
182
+ - ".ruby-version"
181
183
  - ".travis.yml"
182
184
  - Gemfile
183
185
  - LICENSE
@@ -221,7 +223,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
221
223
  version: '0'
222
224
  requirements: []
223
225
  rubyforge_project:
224
- rubygems_version: 2.4.5
226
+ rubygems_version: 2.6.7
225
227
  signing_key:
226
228
  specification_version: 4
227
229
  summary: Log transitions on a state_machines to support auditing and business process