statesman 3.1.0 → 3.2.0
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 -35
- data/CHANGELOG.md +5 -0
- data/Gemfile +1 -0
- data/README.md +1 -0
- data/docs/COMPATIBILITY.md +1 -1
- data/lib/statesman/adapters/active_record.rb +1 -1
- data/lib/statesman/machine.rb +4 -4
- data/lib/statesman/version.rb +1 -1
- data/lib/tasks/statesman.rake +6 -6
- data/spec/generators/statesman/migration_generator_spec.rb +1 -1
- data/spec/statesman/adapters/active_record_spec.rb +6 -6
- data/spec/statesman/machine_spec.rb +44 -2
- data/spec/support/active_record.rb +2 -2
- data/statesman.gemspec +8 -10
- metadata +42 -42
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 32bb973d8f35e81d00d5f6424d26dfb7af6f101b
|
4
|
+
data.tar.gz: 2cfacba286b5a45f15f784cf94a91cd2abc34cc7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d2cd17ce3c5cb346912126ff09bb0048647347495bbd21ddb5fd4beaa36225189daae1cd6ca5c6df69bd78f247240e6d03b9c16cb8625b49713b4e4a3b4319f8
|
7
|
+
data.tar.gz: b8e32db8300886d2db38d7a6e8ef00666f7d7ad018b1a04e89c4bd40a8a0cabb415eed02019b3c7745a4bcc5572d6876f7d932990632bb4c50e21bcfdcfd7599
|
data/.rubocop.yml
CHANGED
@@ -1,13 +1,9 @@
|
|
1
|
-
# For all options see https://github.com/bbatsov/rubocop/tree/master/config
|
2
|
-
|
3
1
|
inherit_from: .rubocop_todo.yml
|
2
|
+
inherit_gem:
|
3
|
+
ruboconfig: rubocop.yml
|
4
4
|
|
5
5
|
AllCops:
|
6
6
|
DisplayCopNames: true
|
7
|
-
Include:
|
8
|
-
- Rakefile
|
9
|
-
- statesman.gemfile
|
10
|
-
- lib/tasks/*.rake
|
11
7
|
Exclude:
|
12
8
|
- vendor/**/*
|
13
9
|
- .*/**
|
@@ -16,45 +12,19 @@ AllCops:
|
|
16
12
|
StringLiterals:
|
17
13
|
Enabled: false
|
18
14
|
|
19
|
-
Documentation:
|
20
|
-
Enabled: false
|
21
|
-
|
22
|
-
SignalException:
|
23
|
-
EnforcedStyle: only_raise
|
24
|
-
|
25
|
-
# Avoid methods longer than 15 lines of code
|
26
15
|
MethodLength:
|
27
16
|
CountComments: false
|
28
17
|
Max: 15
|
29
18
|
|
30
19
|
AbcSize:
|
31
|
-
Max:
|
32
|
-
|
33
|
-
# Don't require utf-8 encoding comment
|
34
|
-
Encoding:
|
35
|
-
Enabled: false
|
20
|
+
Max: 18
|
36
21
|
|
37
22
|
LineLength:
|
38
23
|
Max: 80
|
39
24
|
|
40
|
-
GuardClause:
|
41
|
-
Enabled: false
|
42
|
-
|
43
|
-
Layout/SpaceBeforeFirstArg:
|
44
|
-
Enabled: false
|
45
|
-
|
46
|
-
DotPosition:
|
47
|
-
EnforcedStyle: trailing
|
48
|
-
|
49
25
|
# Allow class and message or instance raises
|
50
26
|
Style/RaiseArgs:
|
51
27
|
Enabled: false
|
52
28
|
|
53
|
-
|
54
|
-
|
55
|
-
- spec/**/*
|
56
|
-
|
57
|
-
Style/FileName:
|
58
|
-
Exclude:
|
59
|
-
- Gemfile
|
60
|
-
- Guardfile
|
29
|
+
Lint/RescueWithoutErrorClass:
|
30
|
+
Enabled: false
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
|
2
|
+
## v3.2.0, 27 November 2017
|
3
|
+
|
4
|
+
- Allow specifying metadata with `Machine#allowed_transitions` (patch by [@vvondra](https://github.com/vvondra))
|
5
|
+
|
1
6
|
## v3.1.0, 1 September 2017
|
2
7
|
|
3
8
|
- Add support for Rails 5.0.x and 5.1.x (patch by [@kenchan0130](https://github.com/kenchan0130) and [@timrogers](https://github.com/timrogers))
|
data/Gemfile
CHANGED
@@ -3,6 +3,7 @@ source 'https://rubygems.org'
|
|
3
3
|
gemspec
|
4
4
|
|
5
5
|
gem "rails", "~> #{ENV['RAILS_VERSION']}" if ENV["RAILS_VERSION"]
|
6
|
+
gem "ruboconfig", git: "https://github.com/gocardless/ruboconfig", tag: "v1.0.1"
|
6
7
|
|
7
8
|
group :development do
|
8
9
|
gem "mongoid", ">= 3.1" unless ENV["EXCLUDE_MONGOID"]
|
data/README.md
CHANGED
data/docs/COMPATIBILITY.md
CHANGED
@@ -4,7 +4,7 @@ Our goal as Statesman maintainers is for the library to be compatible with all s
|
|
4
4
|
|
5
5
|
Specifically, any CRuby/MRI version that has not received an End of Life notice ([e.g. this notice for Ruby 2.1](https://www.ruby-lang.org/en/news/2017/04/01/support-of-ruby-2-1-has-ended/)) is supported. Similarly, any version of Rails listed as currently supported on [this page](http://guides.rubyonrails.org/maintenance_policy.html) is one we aim to support in Statesman.
|
6
6
|
|
7
|
-
To that end, [our build matrix](../.
|
7
|
+
To that end, [our build matrix](../.circleci/config.yml) includes all these versions.
|
8
8
|
|
9
9
|
Any time Statesman doesn't work on a supported combination of Ruby and Rails, it's a bug, and can be reported [here](https://github.com/gocardless/statesman/issues).
|
10
10
|
|
@@ -107,7 +107,7 @@ module Statesman
|
|
107
107
|
|
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
111
|
transition_class.type_for_attribute("metadata").
|
112
112
|
is_a?(::ActiveRecord::Type::Serialized)
|
113
113
|
else
|
data/lib/statesman/machine.rb
CHANGED
@@ -49,7 +49,7 @@ module Statesman
|
|
49
49
|
before: [],
|
50
50
|
after: [],
|
51
51
|
after_commit: [],
|
52
|
-
guards: []
|
52
|
+
guards: [],
|
53
53
|
}
|
54
54
|
end
|
55
55
|
|
@@ -170,7 +170,7 @@ module Statesman
|
|
170
170
|
|
171
171
|
def initialize(object,
|
172
172
|
options = {
|
173
|
-
transition_class: Statesman::Adapters::MemoryTransition
|
173
|
+
transition_class: Statesman::Adapters::MemoryTransition,
|
174
174
|
})
|
175
175
|
@object = object
|
176
176
|
@transition_class = options[:transition_class]
|
@@ -189,9 +189,9 @@ module Statesman
|
|
189
189
|
states.flatten.any? { |state| current_state == state.to_s }
|
190
190
|
end
|
191
191
|
|
192
|
-
def allowed_transitions
|
192
|
+
def allowed_transitions(metadata = {})
|
193
193
|
successors_for(current_state).select do |state|
|
194
|
-
can_transition_to?(state)
|
194
|
+
can_transition_to?(state, metadata)
|
195
195
|
end
|
196
196
|
end
|
197
197
|
|
data/lib/statesman/version.rb
CHANGED
data/lib/tasks/statesman.rake
CHANGED
@@ -29,20 +29,20 @@ namespace :statesman do
|
|
29
29
|
subsequent_t = initial_t.alias
|
30
30
|
|
31
31
|
later_row_for_same_parent = initial_t[parent_fk].
|
32
|
-
|
33
|
-
|
32
|
+
eq(subsequent_t[parent_fk]).
|
33
|
+
and(initial_t[:sort_key].
|
34
34
|
lt(subsequent_t[:sort_key]))
|
35
35
|
|
36
36
|
no_later_row = subsequent_t[:id].eq(nil)
|
37
37
|
in_current_parent_batch = initial_t[parent_fk].in(models.map(&:id))
|
38
38
|
|
39
39
|
latest_ids_query = initial_t.join(subsequent_t, Arel::Nodes::OuterJoin).
|
40
|
-
|
41
|
-
|
42
|
-
|
40
|
+
on(later_row_for_same_parent).
|
41
|
+
where(no_later_row.and(in_current_parent_batch)).
|
42
|
+
project(initial_t[:id]).to_sql
|
43
43
|
|
44
44
|
latest_ids = transition_class.find_by_sql(latest_ids_query).
|
45
|
-
|
45
|
+
to_a.collect(&:id)
|
46
46
|
|
47
47
|
transition_class.where(id: latest_ids).update_all(most_recent: true)
|
48
48
|
end
|
@@ -21,7 +21,7 @@ describe Statesman::Adapters::ActiveRecord, active_record: true do
|
|
21
21
|
allow(MyActiveRecordModelTransition).to receive_messages(columns_hash:
|
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
26
|
to receive(:type_for_attribute).with("metadata").
|
27
27
|
and_return(ActiveRecord::Type::Value.new)
|
@@ -46,7 +46,7 @@ describe Statesman::Adapters::ActiveRecord, active_record: true do
|
|
46
46
|
allow(MyActiveRecordModelTransition).to receive_messages(columns_hash:
|
47
47
|
{ 'metadata' => metadata_column })
|
48
48
|
if ::ActiveRecord.respond_to?(:gem_version) &&
|
49
|
-
|
49
|
+
::ActiveRecord.gem_version >= Gem::Version.new('4.2.0.a')
|
50
50
|
serialized_type = ::ActiveRecord::Type::Serialized.new(
|
51
51
|
'', ::ActiveRecord::Coders::JSON
|
52
52
|
)
|
@@ -74,7 +74,7 @@ describe Statesman::Adapters::ActiveRecord, active_record: true do
|
|
74
74
|
allow(MyActiveRecordModelTransition).to receive_messages(columns_hash:
|
75
75
|
{ 'metadata' => metadata_column })
|
76
76
|
if ::ActiveRecord.respond_to?(:gem_version) &&
|
77
|
-
|
77
|
+
::ActiveRecord.gem_version >= Gem::Version.new('4.2.0.a')
|
78
78
|
serialized_type = ::ActiveRecord::Type::Serialized.new(
|
79
79
|
'', ::ActiveRecord::Coders::JSON
|
80
80
|
)
|
@@ -125,7 +125,7 @@ describe Statesman::Adapters::ActiveRecord, active_record: true do
|
|
125
125
|
context "ActiveRecord::RecordNotUnique unrelated to this transition" do
|
126
126
|
let(:error) do
|
127
127
|
if ::ActiveRecord.respond_to?(:gem_version) &&
|
128
|
-
|
128
|
+
::ActiveRecord.gem_version >= Gem::Version.new('4.0.0')
|
129
129
|
ActiveRecord::RecordNotUnique.new("unrelated")
|
130
130
|
else
|
131
131
|
ActiveRecord::RecordNotUnique.new("unrelated", nil)
|
@@ -163,7 +163,7 @@ describe Statesman::Adapters::ActiveRecord, active_record: true do
|
|
163
163
|
allow(observer).to receive(:execute) do |phase|
|
164
164
|
next unless phase == :before
|
165
165
|
expect(
|
166
|
-
model.transitions.where(most_recent: true).first.to_state
|
166
|
+
model.transitions.where(most_recent: true).first.to_state,
|
167
167
|
).to eq("y")
|
168
168
|
end
|
169
169
|
|
@@ -176,7 +176,7 @@ describe Statesman::Adapters::ActiveRecord, active_record: true do
|
|
176
176
|
allow(observer).to receive(:execute) do |phase|
|
177
177
|
next unless phase == :after
|
178
178
|
expect(
|
179
|
-
model.transitions.where(most_recent: true).first.to_state
|
179
|
+
model.transitions.where(most_recent: true).first.to_state,
|
180
180
|
).to eq("z")
|
181
181
|
end
|
182
182
|
|
@@ -441,7 +441,8 @@ describe Statesman::Machine do
|
|
441
441
|
end
|
442
442
|
|
443
443
|
let(:instance) { machine.new(my_model) }
|
444
|
-
|
444
|
+
let(:metadata) { { some: :metadata } }
|
445
|
+
subject { instance.allowed_transitions(metadata) }
|
445
446
|
|
446
447
|
context "with multiple possible states" do
|
447
448
|
it { is_expected.to eq(%w[y z]) }
|
@@ -450,6 +451,26 @@ describe Statesman::Machine do
|
|
450
451
|
context "with one possible state" do
|
451
452
|
before { instance.transition_to!(:y) }
|
452
453
|
it { is_expected.to eq(['z']) }
|
454
|
+
|
455
|
+
context "guarded using metadata" do
|
456
|
+
before do
|
457
|
+
machine.guard_transition(to: :z) do |_, _, metadata|
|
458
|
+
metadata[:some] == :metadata
|
459
|
+
end
|
460
|
+
end
|
461
|
+
|
462
|
+
it { is_expected.to eq(['z']) }
|
463
|
+
end
|
464
|
+
|
465
|
+
context "excluded by guard using metadata" do
|
466
|
+
before do
|
467
|
+
machine.guard_transition(to: :z) do |_, _, metadata|
|
468
|
+
metadata[:some] != :metadata
|
469
|
+
end
|
470
|
+
end
|
471
|
+
|
472
|
+
it { is_expected.to eq([]) }
|
473
|
+
end
|
453
474
|
end
|
454
475
|
|
455
476
|
context "with no possible transitions" do
|
@@ -481,7 +502,8 @@ describe Statesman::Machine do
|
|
481
502
|
end
|
482
503
|
|
483
504
|
let(:instance) { machine.new(my_model) }
|
484
|
-
|
505
|
+
let(:metadata) { { some: :metadata } }
|
506
|
+
subject { instance.can_transition_to?(new_state, metadata) }
|
485
507
|
|
486
508
|
context "when the transition is invalid" do
|
487
509
|
context "with an initial to state" do
|
@@ -515,6 +537,26 @@ describe Statesman::Machine do
|
|
515
537
|
before { machine.guard_transition(to: :y) { false } }
|
516
538
|
it { is_expected.to be_falsey }
|
517
539
|
end
|
540
|
+
|
541
|
+
context "but it has a failing guard based on metadata" do
|
542
|
+
before do
|
543
|
+
machine.guard_transition(to: :y) do |_, _, metadata|
|
544
|
+
metadata[:some] != :metadata
|
545
|
+
end
|
546
|
+
end
|
547
|
+
|
548
|
+
it { is_expected.to be_falsey }
|
549
|
+
end
|
550
|
+
|
551
|
+
context "and has a passing guard based on metadata" do
|
552
|
+
before do
|
553
|
+
machine.guard_transition(to: :y) do |_, _, metadata|
|
554
|
+
metadata[:some] == :metadata
|
555
|
+
end
|
556
|
+
end
|
557
|
+
|
558
|
+
it { is_expected.to be_truthy }
|
559
|
+
end
|
518
560
|
end
|
519
561
|
end
|
520
562
|
|
@@ -20,7 +20,7 @@ end
|
|
20
20
|
|
21
21
|
class MyActiveRecordModel < ActiveRecord::Base
|
22
22
|
has_many :my_active_record_model_transitions, autosave: false
|
23
|
-
|
23
|
+
alias_method :transitions, :my_active_record_model_transitions
|
24
24
|
|
25
25
|
def state_machine
|
26
26
|
@state_machine ||= MyStateMachine.new(
|
@@ -98,7 +98,7 @@ end
|
|
98
98
|
|
99
99
|
class OtherActiveRecordModel < ActiveRecord::Base
|
100
100
|
has_many :other_active_record_model_transitions, autosave: false
|
101
|
-
|
101
|
+
alias_method :transitions, :other_active_record_model_transitions
|
102
102
|
|
103
103
|
def state_machine
|
104
104
|
@state_machine ||= MyStateMachine.new(
|
data/statesman.gemspec
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
1
|
lib = File.expand_path('../lib', __FILE__)
|
4
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
3
|
require 'statesman/version'
|
@@ -21,16 +19,16 @@ Gem::Specification.new do |spec|
|
|
21
19
|
|
22
20
|
spec.required_ruby_version = '>= 2.2'
|
23
21
|
|
22
|
+
spec.add_development_dependency "ammeter", "~> 1.1"
|
24
23
|
spec.add_development_dependency "bundler", "~> 1.3"
|
25
|
-
spec.add_development_dependency "
|
24
|
+
spec.add_development_dependency "mysql2", "~> 0.4"
|
25
|
+
spec.add_development_dependency "pg", "~> 0.18"
|
26
|
+
spec.add_development_dependency "rails", ">= 3.2"
|
27
|
+
spec.add_development_dependency "rake", "~> 12.3.0"
|
26
28
|
spec.add_development_dependency "rspec", "~> 3.1"
|
27
|
-
spec.add_development_dependency "rspec-rails", "~> 3.1"
|
28
29
|
spec.add_development_dependency "rspec-its", "~> 1.1"
|
29
|
-
spec.add_development_dependency "
|
30
|
-
spec.add_development_dependency "sqlite3", "~> 1.3"
|
31
|
-
spec.add_development_dependency "rails", ">= 3.2"
|
32
|
-
spec.add_development_dependency "pg", "~> 0.18"
|
33
|
-
spec.add_development_dependency "mysql2", "~> 0.4"
|
34
|
-
spec.add_development_dependency "ammeter", "~> 1.1"
|
30
|
+
spec.add_development_dependency "rspec-rails", "~> 3.1"
|
35
31
|
spec.add_development_dependency "rspec_junit_formatter", "~> 0.3.0"
|
32
|
+
spec.add_development_dependency "rubocop", "~> 0.51.0"
|
33
|
+
spec.add_development_dependency "sqlite3", "~> 1.3"
|
36
34
|
end
|
metadata
CHANGED
@@ -1,183 +1,183 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: statesman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GoCardless
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-11-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: ammeter
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.1'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
26
|
+
version: '1.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: '1.3'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: '1.3'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: mysql2
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0.4'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0.4'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: pg
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '0.18'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '0.18'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: rails
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '3.2'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '3.2'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: rake
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: 12.3.0
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: 12.3.0
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: rspec
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '1
|
103
|
+
version: '3.1'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: '1
|
110
|
+
version: '3.1'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: rspec-its
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- - "
|
115
|
+
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
117
|
+
version: '1.1'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- - "
|
122
|
+
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
124
|
+
version: '1.1'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
126
|
+
name: rspec-rails
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
131
|
+
version: '3.1'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
138
|
+
version: '3.1'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
140
|
+
name: rspec_junit_formatter
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
143
|
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
145
|
+
version: 0.3.0
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
152
|
+
version: 0.3.0
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
154
|
+
name: rubocop
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
157
|
- - "~>"
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version:
|
159
|
+
version: 0.51.0
|
160
160
|
type: :development
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
164
|
- - "~>"
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version:
|
166
|
+
version: 0.51.0
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
|
-
name:
|
168
|
+
name: sqlite3
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
171
|
- - "~>"
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
173
|
+
version: '1.3'
|
174
174
|
type: :development
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
178
|
- - "~>"
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version:
|
180
|
+
version: '1.3'
|
181
181
|
description: A statesman-like state machine library
|
182
182
|
email:
|
183
183
|
- developers@gocardless.com
|