statesman 2.0.0 → 2.0.1
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/.travis.yml +13 -5
- data/CHANGELOG.md +5 -0
- data/Gemfile +7 -3
- data/README.md +7 -7
- data/Rakefile +5 -1
- data/lib/statesman/adapters/active_record.rb +2 -2
- data/lib/statesman/machine.rb +26 -19
- data/lib/statesman/version.rb +1 -1
- data/spec/spec_helper.rb +30 -30
- data/spec/statesman/adapters/active_record_spec.rb +10 -10
- data/statesman.gemspec +0 -1
- metadata +34 -48
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e4180ca332c6a592c0e0816d6b4f718aaf4fa423
|
4
|
+
data.tar.gz: a61d0a4cd39ed4712092855d61a8ec06bf2e0cbb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2105f8a7709db6abdb666ea0a8f3ba8778170fa59bf8f6f2f845d2f8456896ee4088f2a44e1be83e90b758bd4b0f49b1eee78048a8230b6581011dae10b7ca3b
|
7
|
+
data.tar.gz: f8395d6ce314a2ff1411ede761211029f95f9c32cc0c54948f534f334f98df64bea193472464ab1187099f1b9064551c4d05add078619fdec653099ad5470cd8
|
data/.travis.yml
CHANGED
@@ -2,7 +2,7 @@ language: ruby
|
|
2
2
|
|
3
3
|
rvm:
|
4
4
|
- 2.3.0
|
5
|
-
- 2.2
|
5
|
+
- 2.2.4
|
6
6
|
- 2.1
|
7
7
|
- 2.0.0
|
8
8
|
|
@@ -21,7 +21,15 @@ script:
|
|
21
21
|
env:
|
22
22
|
- "RAILS_VERSION=3.2.21"
|
23
23
|
- "RAILS_VERSION=4.0.13"
|
24
|
-
- "RAILS_VERSION=4.1.
|
25
|
-
- "RAILS_VERSION=4.2.
|
26
|
-
- "RAILS_VERSION=4.2.
|
27
|
-
- "RAILS_VERSION=4.2.
|
24
|
+
- "RAILS_VERSION=4.1.14"
|
25
|
+
- "RAILS_VERSION=4.2.5"
|
26
|
+
- "RAILS_VERSION=4.2.5 DATABASE_URL=mysql2://root@localhost/statesman_test"
|
27
|
+
- "RAILS_VERSION=4.2.5 DATABASE_URL=postgres://postgres@localhost/statesman_test"
|
28
|
+
- "RAILS_VERSION=5.0.0.beta3 EXCLUDE_MONGOID=true"
|
29
|
+
|
30
|
+
matrix:
|
31
|
+
exclude:
|
32
|
+
- rvm: 2.1
|
33
|
+
env: "RAILS_VERSION=5.0.0.beta3 EXCLUDE_MONGOID=true"
|
34
|
+
- rvm: 2.0.0
|
35
|
+
env: "RAILS_VERSION=5.0.0.beta3 EXCLUDE_MONGOID=true"
|
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
@@ -4,7 +4,11 @@ gemspec
|
|
4
4
|
|
5
5
|
gem "rails", "~> #{ENV["RAILS_VERSION"]}" if ENV["RAILS_VERSION"]
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
group :development do
|
8
|
+
gem "mongoid", ">= 3.1" unless ENV["EXCLUDE_MONGOID"]
|
9
|
+
|
10
|
+
# test/unit is no longer bundled with Ruby 2.2, but required by Rails
|
11
|
+
if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.2.0")
|
12
|
+
gem "test-unit", "~> 3.0"
|
13
|
+
end
|
10
14
|
end
|
data/README.md
CHANGED
@@ -19,7 +19,7 @@ to which they should apply.
|
|
19
19
|
- State transitions are also modelled as a class, which can optionally be
|
20
20
|
persisted to the database for a full audit history. This audit history can
|
21
21
|
include JSON metadata set during a transition.
|
22
|
-
- Database
|
22
|
+
- Database indices are used to offer database-level transaction duplication
|
23
23
|
protection.
|
24
24
|
|
25
25
|
## TL;DR Usage
|
@@ -74,15 +74,15 @@ class Order < ActiveRecord::Base
|
|
74
74
|
@state_machine ||= OrderStateMachine.new(self, transition_class: OrderTransition)
|
75
75
|
end
|
76
76
|
|
77
|
-
private
|
78
|
-
|
79
77
|
def self.transition_class
|
80
78
|
OrderTransition
|
81
79
|
end
|
80
|
+
private_class_method :transition_class
|
82
81
|
|
83
82
|
def self.initial_state
|
84
83
|
:pending
|
85
84
|
end
|
85
|
+
private_class_method :initial_state
|
86
86
|
end
|
87
87
|
|
88
88
|
####################
|
@@ -290,15 +290,15 @@ model and define `transition_class` and `initial_state` class methods:
|
|
290
290
|
class Order < ActiveRecord::Base
|
291
291
|
include Statesman::Adapters::ActiveRecordQueries
|
292
292
|
|
293
|
-
private
|
294
|
-
|
295
293
|
def self.transition_class
|
296
294
|
OrderTransition
|
297
295
|
end
|
296
|
+
private_class_method :transition_class
|
298
297
|
|
299
298
|
def self.initial_state
|
300
299
|
OrderStateMachine.initial_state
|
301
300
|
end
|
301
|
+
private_class_method :initial_state
|
302
302
|
end
|
303
303
|
```
|
304
304
|
|
@@ -309,8 +309,6 @@ need to define a corresponding `transition_name` class method:
|
|
309
309
|
class Order < ActiveRecord::Base
|
310
310
|
has_many :transitions, class_name: "OrderTransition", autosave: false
|
311
311
|
|
312
|
-
private
|
313
|
-
|
314
312
|
def self.transition_name
|
315
313
|
:transitions
|
316
314
|
end
|
@@ -318,10 +316,12 @@ class Order < ActiveRecord::Base
|
|
318
316
|
def self.transition_class
|
319
317
|
OrderTransition
|
320
318
|
end
|
319
|
+
private_class_method :transition_class
|
321
320
|
|
322
321
|
def self.initial_state
|
323
322
|
OrderStateMachine.initial_state
|
324
323
|
end
|
324
|
+
private_class_method :initial_state
|
325
325
|
end
|
326
326
|
```
|
327
327
|
|
data/Rakefile
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
2
|
require "rspec/core/rake_task"
|
3
3
|
|
4
|
-
RSpec::Core::RakeTask.new(:spec)
|
4
|
+
RSpec::Core::RakeTask.new(:spec) do |task|
|
5
|
+
if ENV["EXCLUDE_MONGOID"]
|
6
|
+
task.rspec_opts = "--tag ~mongo --exclude-pattern **/*mongo*"
|
7
|
+
end
|
8
|
+
end
|
5
9
|
|
6
10
|
task default: :spec
|
@@ -108,8 +108,8 @@ module Statesman
|
|
108
108
|
def serialized?(transition_class)
|
109
109
|
if ::ActiveRecord.respond_to?(:gem_version) &&
|
110
110
|
::ActiveRecord.gem_version >= Gem::Version.new('4.2.0.a')
|
111
|
-
transition_class.
|
112
|
-
|
111
|
+
transition_class.type_for_attribute("metadata").
|
112
|
+
is_a?(::ActiveRecord::Type::Serialized)
|
113
113
|
else
|
114
114
|
transition_class.serialized_attributes.include?("metadata")
|
115
115
|
end
|
data/lib/statesman/machine.rb
CHANGED
@@ -66,25 +66,21 @@ module Statesman
|
|
66
66
|
successors[from] += to
|
67
67
|
end
|
68
68
|
|
69
|
-
def before_transition(options = {
|
70
|
-
add_callback(
|
71
|
-
|
72
|
-
&block)
|
69
|
+
def before_transition(options = {}, &block)
|
70
|
+
add_callback(callback_type: :before, callback_class: Callback,
|
71
|
+
from: options[:from], to: options[:to], &block)
|
73
72
|
end
|
74
73
|
|
75
|
-
def guard_transition(options = {
|
76
|
-
add_callback(
|
77
|
-
|
78
|
-
&block)
|
74
|
+
def guard_transition(options = {}, &block)
|
75
|
+
add_callback(callback_type: :guards, callback_class: Guard,
|
76
|
+
from: options[:from], to: options[:to], &block)
|
79
77
|
end
|
80
78
|
|
81
|
-
def after_transition(options = {
|
82
|
-
after_commit: false }, &block)
|
79
|
+
def after_transition(options = { after_commit: false }, &block)
|
83
80
|
callback_type = options[:after_commit] ? :after_commit : :after
|
84
81
|
|
85
|
-
add_callback(
|
86
|
-
|
87
|
-
&block)
|
82
|
+
add_callback(callback_type: callback_type, callback_class: Callback,
|
83
|
+
from: options[:from], to: options[:to], &block)
|
88
84
|
end
|
89
85
|
|
90
86
|
def validate_callback_condition(options = { from: nil, to: nil })
|
@@ -128,15 +124,26 @@ module Statesman
|
|
128
124
|
|
129
125
|
private
|
130
126
|
|
131
|
-
def add_callback(
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
127
|
+
def add_callback(callback_type: nil, callback_class: nil,
|
128
|
+
from: nil, to: nil, &block)
|
129
|
+
validate_callback_type_and_class(callback_type, callback_class)
|
130
|
+
|
131
|
+
from = to_s_or_nil(from)
|
132
|
+
to = array_to_s_or_nil(to)
|
136
133
|
|
137
134
|
validate_callback_condition(from: from, to: to)
|
135
|
+
|
138
136
|
callbacks[callback_type] <<
|
139
|
-
|
137
|
+
callback_class.new(from: from, to: to, callback: block)
|
138
|
+
end
|
139
|
+
|
140
|
+
def validate_callback_type_and_class(callback_type, callback_class)
|
141
|
+
if callback_type.nil?
|
142
|
+
raise ArgumentError.new("missing keyword: callback_type")
|
143
|
+
end
|
144
|
+
if callback_class.nil?
|
145
|
+
raise ArgumentError.new("missing keyword: callback_class")
|
146
|
+
end
|
140
147
|
end
|
141
148
|
|
142
149
|
def validate_state(state)
|
data/lib/statesman/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -2,7 +2,6 @@ require "statesman"
|
|
2
2
|
require "sqlite3"
|
3
3
|
require "mysql2"
|
4
4
|
require "pg"
|
5
|
-
require "mongoid"
|
6
5
|
require "active_record"
|
7
6
|
# We have to include all of Rails to make rspec-rails work
|
8
7
|
require "rails"
|
@@ -27,23 +26,29 @@ RSpec.configure do |config|
|
|
27
26
|
end
|
28
27
|
end
|
29
28
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
29
|
+
if config.exclusion_filter[:mongo]
|
30
|
+
puts "Skipping Mongo tests"
|
31
|
+
else
|
32
|
+
require "mongoid"
|
33
|
+
|
34
|
+
# Try a mongo connection at the start of the suite and raise if it fails
|
35
|
+
begin
|
36
|
+
Mongoid.configure do |mongo_config|
|
37
|
+
if defined?(Moped)
|
38
|
+
mongo_config.connect_to("statesman_test")
|
39
|
+
mongo_config.sessions["default"]["options"]["max_retries"] = 2
|
40
|
+
else
|
41
|
+
mongo_config.connect_to("statesman_test", server_selection_timeout: 2)
|
42
|
+
end
|
38
43
|
end
|
44
|
+
# Attempting a mongo operation will trigger 2 retries then throw an
|
45
|
+
# exception if mongo is not running.
|
46
|
+
Mongoid.purge!
|
47
|
+
rescue connection_failure => error
|
48
|
+
puts "The spec suite requires MongoDB to be installed and running locally"
|
49
|
+
puts "Mongo dependent specs can be filtered with rspec --tag '~mongo'"
|
50
|
+
raise(error)
|
39
51
|
end
|
40
|
-
# Attempting a mongo operation will trigger 2 retries then throw an
|
41
|
-
# exception if mongo is not running.
|
42
|
-
Mongoid.purge! unless config.exclusion_filter[:mongo]
|
43
|
-
rescue connection_failure => error
|
44
|
-
puts "The spec suite requires MongoDB to be installed and running locally"
|
45
|
-
puts "Mongo dependent specs can be filtered with rspec --tag '~mongo'"
|
46
|
-
raise(error)
|
47
52
|
end
|
48
53
|
|
49
54
|
if config.exclusion_filter[:active_record]
|
@@ -56,6 +61,9 @@ RSpec.configure do |config|
|
|
56
61
|
|
57
62
|
db_adapter = ActiveRecord::Base.connection.adapter_name
|
58
63
|
puts "Running with database adapter '#{db_adapter}'"
|
64
|
+
|
65
|
+
# Silence migration output
|
66
|
+
ActiveRecord::Migration.verbose = false
|
59
67
|
end
|
60
68
|
|
61
69
|
config.before(:each, active_record: true) do
|
@@ -73,29 +81,21 @@ RSpec.configure do |config|
|
|
73
81
|
end
|
74
82
|
|
75
83
|
def prepare_model_table
|
76
|
-
|
77
|
-
CreateMyActiveRecordModelMigration.migrate(:up)
|
78
|
-
end
|
84
|
+
CreateMyActiveRecordModelMigration.migrate(:up)
|
79
85
|
end
|
80
86
|
|
81
87
|
def prepare_transitions_table
|
82
|
-
|
83
|
-
|
84
|
-
MyActiveRecordModelTransition.reset_column_information
|
85
|
-
end
|
88
|
+
CreateMyActiveRecordModelTransitionMigration.migrate(:up)
|
89
|
+
MyActiveRecordModelTransition.reset_column_information
|
86
90
|
end
|
87
91
|
|
88
92
|
def prepare_other_model_table
|
89
|
-
|
90
|
-
CreateOtherActiveRecordModelMigration.migrate(:up)
|
91
|
-
end
|
93
|
+
CreateOtherActiveRecordModelMigration.migrate(:up)
|
92
94
|
end
|
93
95
|
|
94
96
|
def prepare_other_transitions_table
|
95
|
-
|
96
|
-
|
97
|
-
OtherActiveRecordModelTransition.reset_column_information
|
98
|
-
end
|
97
|
+
CreateOtherActiveRecordModelTransitionMigration.migrate(:up)
|
98
|
+
OtherActiveRecordModelTransition.reset_column_information
|
99
99
|
end
|
100
100
|
|
101
101
|
MyNamespace::MyActiveRecordModelTransition.serialize(:metadata, JSON)
|
@@ -22,9 +22,11 @@ describe Statesman::Adapters::ActiveRecord, active_record: true do
|
|
22
22
|
{ 'metadata' => metadata_column })
|
23
23
|
if ::ActiveRecord.respond_to?(:gem_version) &&
|
24
24
|
::ActiveRecord.gem_version >= Gem::Version.new('4.2.0.a')
|
25
|
-
|
25
|
+
expect(MyActiveRecordModelTransition).
|
26
|
+
to receive(:type_for_attribute).with("metadata").
|
27
|
+
and_return(ActiveRecord::Type::Value.new)
|
26
28
|
else
|
27
|
-
|
29
|
+
expect(MyActiveRecordModelTransition).
|
28
30
|
to receive_messages(serialized_attributes: {})
|
29
31
|
end
|
30
32
|
end
|
@@ -48,8 +50,8 @@ describe Statesman::Adapters::ActiveRecord, active_record: true do
|
|
48
50
|
serialized_type = ::ActiveRecord::Type::Serialized.new(
|
49
51
|
'', ::ActiveRecord::Coders::JSON
|
50
52
|
)
|
51
|
-
expect(
|
52
|
-
to receive(:
|
53
|
+
expect(MyActiveRecordModelTransition).
|
54
|
+
to receive(:type_for_attribute).with("metadata").
|
53
55
|
and_return(serialized_type)
|
54
56
|
else
|
55
57
|
expect(MyActiveRecordModelTransition).
|
@@ -76,8 +78,8 @@ describe Statesman::Adapters::ActiveRecord, active_record: true do
|
|
76
78
|
serialized_type = ::ActiveRecord::Type::Serialized.new(
|
77
79
|
'', ::ActiveRecord::Coders::JSON
|
78
80
|
)
|
79
|
-
expect(
|
80
|
-
to receive(:
|
81
|
+
expect(MyActiveRecordModelTransition).
|
82
|
+
to receive(:type_for_attribute).with("metadata").
|
81
83
|
and_return(serialized_type)
|
82
84
|
else
|
83
85
|
expect(MyActiveRecordModelTransition).
|
@@ -248,10 +250,8 @@ describe Statesman::Adapters::ActiveRecord, active_record: true do
|
|
248
250
|
|
249
251
|
context "with a namespaced model" do
|
250
252
|
before do
|
251
|
-
|
252
|
-
|
253
|
-
CreateNamespacedARModelTransitionMigration.migrate(:up)
|
254
|
-
end
|
253
|
+
CreateNamespacedARModelMigration.migrate(:up)
|
254
|
+
CreateNamespacedARModelTransitionMigration.migrate(:up)
|
255
255
|
end
|
256
256
|
|
257
257
|
before do
|
data/statesman.gemspec
CHANGED
@@ -27,7 +27,6 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.add_development_dependency "rubocop", "~> 0.30.0"
|
28
28
|
spec.add_development_dependency "guard-rubocop", "~> 1.2"
|
29
29
|
spec.add_development_dependency "sqlite3", "~> 1.3"
|
30
|
-
spec.add_development_dependency "mongoid", ">= 3.1"
|
31
30
|
spec.add_development_dependency "rails", ">= 3.2"
|
32
31
|
spec.add_development_dependency "pg", "~> 0.18"
|
33
32
|
spec.add_development_dependency "mysql2", "~> 0.4"
|
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: 2.0.
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Harry Marr
|
@@ -9,202 +9,188 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-03-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- -
|
18
|
+
- - ~>
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: '1.3'
|
21
21
|
type: :development
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - ~>
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '1.3'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: rake
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - '>='
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: '0'
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - '>='
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: rspec
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- -
|
46
|
+
- - ~>
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: '3.1'
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- -
|
53
|
+
- - ~>
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '3.1'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: rspec-rails
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- -
|
60
|
+
- - ~>
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '3.1'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - ~>
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '3.1'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: rspec-its
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- -
|
74
|
+
- - ~>
|
75
75
|
- !ruby/object:Gem::Version
|
76
76
|
version: '1.1'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
|
-
- -
|
81
|
+
- - ~>
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '1.1'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: guard-rspec
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- -
|
88
|
+
- - ~>
|
89
89
|
- !ruby/object:Gem::Version
|
90
90
|
version: '4.3'
|
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
97
|
version: '4.3'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: rubocop
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
|
-
- -
|
102
|
+
- - ~>
|
103
103
|
- !ruby/object:Gem::Version
|
104
104
|
version: 0.30.0
|
105
105
|
type: :development
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
|
-
- -
|
109
|
+
- - ~>
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: 0.30.0
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
113
|
name: guard-rubocop
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
|
-
- -
|
116
|
+
- - ~>
|
117
117
|
- !ruby/object:Gem::Version
|
118
118
|
version: '1.2'
|
119
119
|
type: :development
|
120
120
|
prerelease: false
|
121
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
122
|
requirements:
|
123
|
-
- -
|
123
|
+
- - ~>
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: '1.2'
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
127
|
name: sqlite3
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
|
-
- -
|
130
|
+
- - ~>
|
131
131
|
- !ruby/object:Gem::Version
|
132
132
|
version: '1.3'
|
133
133
|
type: :development
|
134
134
|
prerelease: false
|
135
135
|
version_requirements: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
|
-
- -
|
137
|
+
- - ~>
|
138
138
|
- !ruby/object:Gem::Version
|
139
139
|
version: '1.3'
|
140
|
-
- !ruby/object:Gem::Dependency
|
141
|
-
name: mongoid
|
142
|
-
requirement: !ruby/object:Gem::Requirement
|
143
|
-
requirements:
|
144
|
-
- - ">="
|
145
|
-
- !ruby/object:Gem::Version
|
146
|
-
version: '3.1'
|
147
|
-
type: :development
|
148
|
-
prerelease: false
|
149
|
-
version_requirements: !ruby/object:Gem::Requirement
|
150
|
-
requirements:
|
151
|
-
- - ">="
|
152
|
-
- !ruby/object:Gem::Version
|
153
|
-
version: '3.1'
|
154
140
|
- !ruby/object:Gem::Dependency
|
155
141
|
name: rails
|
156
142
|
requirement: !ruby/object:Gem::Requirement
|
157
143
|
requirements:
|
158
|
-
- -
|
144
|
+
- - '>='
|
159
145
|
- !ruby/object:Gem::Version
|
160
146
|
version: '3.2'
|
161
147
|
type: :development
|
162
148
|
prerelease: false
|
163
149
|
version_requirements: !ruby/object:Gem::Requirement
|
164
150
|
requirements:
|
165
|
-
- -
|
151
|
+
- - '>='
|
166
152
|
- !ruby/object:Gem::Version
|
167
153
|
version: '3.2'
|
168
154
|
- !ruby/object:Gem::Dependency
|
169
155
|
name: pg
|
170
156
|
requirement: !ruby/object:Gem::Requirement
|
171
157
|
requirements:
|
172
|
-
- -
|
158
|
+
- - ~>
|
173
159
|
- !ruby/object:Gem::Version
|
174
160
|
version: '0.18'
|
175
161
|
type: :development
|
176
162
|
prerelease: false
|
177
163
|
version_requirements: !ruby/object:Gem::Requirement
|
178
164
|
requirements:
|
179
|
-
- -
|
165
|
+
- - ~>
|
180
166
|
- !ruby/object:Gem::Version
|
181
167
|
version: '0.18'
|
182
168
|
- !ruby/object:Gem::Dependency
|
183
169
|
name: mysql2
|
184
170
|
requirement: !ruby/object:Gem::Requirement
|
185
171
|
requirements:
|
186
|
-
- -
|
172
|
+
- - ~>
|
187
173
|
- !ruby/object:Gem::Version
|
188
174
|
version: '0.4'
|
189
175
|
type: :development
|
190
176
|
prerelease: false
|
191
177
|
version_requirements: !ruby/object:Gem::Requirement
|
192
178
|
requirements:
|
193
|
-
- -
|
179
|
+
- - ~>
|
194
180
|
- !ruby/object:Gem::Version
|
195
181
|
version: '0.4'
|
196
182
|
- !ruby/object:Gem::Dependency
|
197
183
|
name: ammeter
|
198
184
|
requirement: !ruby/object:Gem::Requirement
|
199
185
|
requirements:
|
200
|
-
- -
|
186
|
+
- - ~>
|
201
187
|
- !ruby/object:Gem::Version
|
202
188
|
version: '1.1'
|
203
189
|
type: :development
|
204
190
|
prerelease: false
|
205
191
|
version_requirements: !ruby/object:Gem::Requirement
|
206
192
|
requirements:
|
207
|
-
- -
|
193
|
+
- - ~>
|
208
194
|
- !ruby/object:Gem::Version
|
209
195
|
version: '1.1'
|
210
196
|
description: A statesmanlike state machine library
|
@@ -214,9 +200,9 @@ executables: []
|
|
214
200
|
extensions: []
|
215
201
|
extra_rdoc_files: []
|
216
202
|
files:
|
217
|
-
-
|
218
|
-
-
|
219
|
-
-
|
203
|
+
- .gitignore
|
204
|
+
- .rubocop.yml
|
205
|
+
- .travis.yml
|
220
206
|
- CHANGELOG.md
|
221
207
|
- CONTRIBUTING.md
|
222
208
|
- Gemfile
|
@@ -280,17 +266,17 @@ require_paths:
|
|
280
266
|
- lib
|
281
267
|
required_ruby_version: !ruby/object:Gem::Requirement
|
282
268
|
requirements:
|
283
|
-
- -
|
269
|
+
- - '>='
|
284
270
|
- !ruby/object:Gem::Version
|
285
271
|
version: '0'
|
286
272
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
287
273
|
requirements:
|
288
|
-
- -
|
274
|
+
- - '>='
|
289
275
|
- !ruby/object:Gem::Version
|
290
276
|
version: '0'
|
291
277
|
requirements: []
|
292
278
|
rubyforge_project:
|
293
|
-
rubygems_version: 2.
|
279
|
+
rubygems_version: 2.2.2
|
294
280
|
signing_key:
|
295
281
|
specification_version: 4
|
296
282
|
summary: A statesmanlike state machine library
|