statesman 2.0.0 → 2.0.1

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: 61f598e4190a05d2e32ef11247ede6d8e4688aa4
4
- data.tar.gz: c15948c3ca18fc6b5ccf5aee6780cddff80c8893
3
+ metadata.gz: e4180ca332c6a592c0e0816d6b4f718aaf4fa423
4
+ data.tar.gz: a61d0a4cd39ed4712092855d61a8ec06bf2e0cbb
5
5
  SHA512:
6
- metadata.gz: 8720300f61e6dc672a0c8f96c650f08d387975402f12c10fd7c05deba610a1b9624084bf127a5729a32f98bd188aecf448e341bb4b281debfdda77b2e5cc8462
7
- data.tar.gz: 6d51847d3d1a3a85cec09e3c7a23ff98c432e4acd7d670bb35d56d5051997aad2c8014474ce98f1848151b0c4a281a19b6af9d1c78d79b73170009d17ebec7c3
6
+ metadata.gz: 2105f8a7709db6abdb666ea0a8f3ba8778170fa59bf8f6f2f845d2f8456896ee4088f2a44e1be83e90b758bd4b0f49b1eee78048a8230b6581011dae10b7ca3b
7
+ data.tar.gz: f8395d6ce314a2ff1411ede761211029f95f9c32cc0c54948f534f334f98df64bea193472464ab1187099f1b9064551c4d05add078619fdec653099ad5470cd8
@@ -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.10"
25
- - "RAILS_VERSION=4.2.2"
26
- - "RAILS_VERSION=4.2.2 DATABASE_URL=mysql2://root@localhost/statesman_test"
27
- - "RAILS_VERSION=4.2.2 DATABASE_URL=postgres://postgres@localhost/statesman_test"
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"
@@ -1,3 +1,8 @@
1
+ ## v2.0.1, 29 March 2016
2
+
3
+ - Add support for Rails 5 (excluding Mongoid adapter)
4
+
5
+
1
6
  ## v2.0.0, 5 January 2016
2
7
 
3
8
  - No changes from v2.0.0.rc1
data/Gemfile CHANGED
@@ -4,7 +4,11 @@ gemspec
4
4
 
5
5
  gem "rails", "~> #{ENV["RAILS_VERSION"]}" if ENV["RAILS_VERSION"]
6
6
 
7
- # test/unit is no longer bundled with Ruby 2.2, but required by Rails
8
- if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.2.0")
9
- gem "test-unit", "~> 3.0"
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 indicies are used to offer database-level transaction duplication
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.columns_hash["metadata"].
112
- cast_type.is_a?(::ActiveRecord::Type::Serialized)
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
@@ -66,25 +66,21 @@ module Statesman
66
66
  successors[from] += to
67
67
  end
68
68
 
69
- def before_transition(options = { from: nil, to: nil }, &block)
70
- add_callback(
71
- options.merge(callback_class: Callback, callback_type: :before),
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 = { from: nil, to: nil }, &block)
76
- add_callback(
77
- options.merge(callback_class: Guard, callback_type: :guards),
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 = { from: nil, to: nil,
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
- options.merge(callback_class: Callback, callback_type: callback_type),
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(options, &block)
132
- from = to_s_or_nil(options[:from])
133
- to = array_to_s_or_nil(options[:to])
134
- callback_klass = options.fetch(:callback_class)
135
- callback_type = options.fetch(:callback_type)
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
- callback_klass.new(from: from, to: to, callback: block)
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)
@@ -1,3 +1,3 @@
1
1
  module Statesman
2
- VERSION = "2.0.0"
2
+ VERSION = "2.0.1"
3
3
  end
@@ -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
- # Try a mongo connection at the start of the suite and raise if it fails
31
- begin
32
- Mongoid.configure do |mongo_config|
33
- if defined?(Moped)
34
- mongo_config.connect_to("statesman_test")
35
- mongo_config.sessions["default"]["options"]["max_retries"] = 2
36
- else
37
- mongo_config.connect_to("statesman_test", server_selection_timeout: 2)
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
- silence_stream(STDOUT) do
77
- CreateMyActiveRecordModelMigration.migrate(:up)
78
- end
84
+ CreateMyActiveRecordModelMigration.migrate(:up)
79
85
  end
80
86
 
81
87
  def prepare_transitions_table
82
- silence_stream(STDOUT) do
83
- CreateMyActiveRecordModelTransitionMigration.migrate(:up)
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
- silence_stream(STDOUT) do
90
- CreateOtherActiveRecordModelMigration.migrate(:up)
91
- end
93
+ CreateOtherActiveRecordModelMigration.migrate(:up)
92
94
  end
93
95
 
94
96
  def prepare_other_transitions_table
95
- silence_stream(STDOUT) do
96
- CreateOtherActiveRecordModelTransitionMigration.migrate(:up)
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
- allow(metadata_column).to receive_messages(cast_type: '')
25
+ expect(MyActiveRecordModelTransition).
26
+ to receive(:type_for_attribute).with("metadata").
27
+ and_return(ActiveRecord::Type::Value.new)
26
28
  else
27
- allow(MyActiveRecordModelTransition).
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(metadata_column).
52
- to receive(:cast_type).
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(metadata_column).
80
- to receive(:cast_type).
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
- silence_stream(STDOUT) do
252
- CreateNamespacedARModelMigration.migrate(:up)
253
- CreateNamespacedARModelTransitionMigration.migrate(:up)
254
- end
253
+ CreateNamespacedARModelMigration.migrate(:up)
254
+ CreateNamespacedARModelTransitionMigration.migrate(:up)
255
255
  end
256
256
 
257
257
  before do
@@ -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.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-01-06 00:00:00.000000000 Z
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
- - ".gitignore"
218
- - ".rubocop.yml"
219
- - ".travis.yml"
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.4.5
279
+ rubygems_version: 2.2.2
294
280
  signing_key:
295
281
  specification_version: 4
296
282
  summary: A statesmanlike state machine library