state_machines-rspec 0.4.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 +7 -0
- data/.gitignore +22 -0
- data/.rspec +2 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +27 -0
- data/Gemfile +8 -0
- data/Guardfile +6 -0
- data/LICENSE.txt +22 -0
- data/README.md +76 -0
- data/Rakefile +6 -0
- data/lib/matchers/events/handle_event.rb +35 -0
- data/lib/matchers/events/matcher.rb +71 -0
- data/lib/matchers/events/reject_event.rb +35 -0
- data/lib/matchers/states/have_state.rb +46 -0
- data/lib/matchers/states/matcher.rb +56 -0
- data/lib/matchers/states/reject_state.rb +34 -0
- data/lib/matchers/transitions/transition_from.rb +83 -0
- data/lib/state_machines_rspec.rb +12 -0
- data/lib/state_machines_rspec/state_machines_introspector.rb +74 -0
- data/lib/state_machines_rspec/version.rb +3 -0
- data/spec/integration/integration_spec.rb +332 -0
- data/spec/integration/models/vehicle.rb +119 -0
- data/spec/matchers/events/handle_event_spec.rb +133 -0
- data/spec/matchers/events/reject_event_spec.rb +133 -0
- data/spec/matchers/states/have_state_spec.rb +136 -0
- data/spec/matchers/states/reject_state_spec.rb +97 -0
- data/spec/matchers/transitions/transition_from_spec.rb +177 -0
- data/spec/spec_helper.rb +12 -0
- data/state_machines-rspec.gemspec +32 -0
- metadata +237 -0
@@ -0,0 +1,97 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe StateMachinesRspec::Matchers::RejectStateMatcher do
|
4
|
+
describe '#matches?' do
|
5
|
+
context 'when :on state machines attribute is specified' do
|
6
|
+
before { @matcher = described_class.new([:supportive, on: :environment]) }
|
7
|
+
context 'but that state machines doesn\'t exist' do
|
8
|
+
before { @class = Class.new }
|
9
|
+
it 'raises' do
|
10
|
+
expect { @matcher.matches? @class.new }.to raise_error
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
context 'and that state machines exists' do
|
15
|
+
context 'but it defines states which match one of the specified states' do
|
16
|
+
before do
|
17
|
+
@class = Class.new do
|
18
|
+
state_machine :environment, initial: :supportive
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'sets a failure message' do
|
23
|
+
@matcher.matches? @class.new
|
24
|
+
expect(@matcher.failure_message).to eq('Did not expect environment to allow states: supportive')
|
25
|
+
end
|
26
|
+
it 'returns false' do
|
27
|
+
expect(@matcher.matches?(@class.new)).to be_falsey
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
context 'and it does not define any of the states specified' do
|
32
|
+
before do
|
33
|
+
@class = Class.new do
|
34
|
+
state_machine :environment, initial: :conducive
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'does not set a failure message' do
|
39
|
+
@matcher.matches? @class.new
|
40
|
+
expect(@matcher.failure_message).to be_nil
|
41
|
+
end
|
42
|
+
it 'returns true' do
|
43
|
+
expect(@matcher.matches?(@class.new)).to be_truthy
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
context 'when :on state machines is not specified' do
|
50
|
+
before { @matcher = described_class.new([:ever_changing]) }
|
51
|
+
context 'but the default state machines defines states which match one of the specified states' do
|
52
|
+
before do
|
53
|
+
@class = Class.new do
|
54
|
+
state_machine initial: :ever_changing
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
it 'sets a failure message' do
|
59
|
+
@matcher.matches? @class.new
|
60
|
+
expect(@matcher.failure_message).to eq('Did not expect state to allow states: ever_changing')
|
61
|
+
end
|
62
|
+
it 'returns false' do
|
63
|
+
expect(@matcher.matches?(@class.new)).to be_falsey
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
context 'and the default state machines does not define any of the states specified' do
|
68
|
+
before { @class = Class.new }
|
69
|
+
it 'does not set a failure message' do
|
70
|
+
@matcher.matches? @class.new
|
71
|
+
expect(@matcher.failure_message).to be_nil
|
72
|
+
end
|
73
|
+
it 'returns true' do
|
74
|
+
expect(@matcher.matches?(@class.new)).to be_truthy
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
describe '#description' do
|
81
|
+
context 'with no options' do
|
82
|
+
let(:matcher) { described_class.new([:mustard, :tomatoes]) }
|
83
|
+
|
84
|
+
it 'returns a string description' do
|
85
|
+
expect(matcher.description).to eq('not have :mustard, :tomatoes')
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
context 'when :on state machines is specified' do
|
90
|
+
let(:matcher) { described_class.new([:peanut_butter, on: :toast]) }
|
91
|
+
|
92
|
+
it 'mentions the state machines variable' do
|
93
|
+
expect(matcher.description).to eq('not have :peanut_butter on :toast')
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
@@ -0,0 +1,177 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe StateMachinesRspec::Matchers::HandleTransitionFromMatcher do
|
4
|
+
describe '#matches?' do
|
5
|
+
context 'when :from states and :on_event is specified but the :to_state doesn\'t exist' do
|
6
|
+
before do
|
7
|
+
matcher_class = Class.new do
|
8
|
+
state_machine :state, initial: :mathy do
|
9
|
+
event(:mathematize) { transition any => same }
|
10
|
+
end
|
11
|
+
end
|
12
|
+
@matcher_subject = matcher_class.new
|
13
|
+
@matcher = described_class.new(:mathy, on_event: :mathematize)
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'raises' do
|
17
|
+
expect { @matcher.matches? @matcher_subject }
|
18
|
+
.to raise_error StateMachinesIntrospectorError, 'Option :to_state cannot be nil'
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context 'when :from states and :to_state is specified but the :on_event doesn\'t exist' do
|
23
|
+
before do
|
24
|
+
matcher_class = Class.new do
|
25
|
+
state_machine :state, initial: :mathy do
|
26
|
+
state :polynomial
|
27
|
+
|
28
|
+
event(:mathematize) { transition any => same }
|
29
|
+
end
|
30
|
+
end
|
31
|
+
@matcher_subject = matcher_class.new
|
32
|
+
@matcher = described_class.new(:mathy, to_state: :polynomial)
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'raises' do
|
36
|
+
expect { @matcher.matches? @matcher_subject }
|
37
|
+
.to raise_error StateMachinesIntrospectorError, 'Option :on_event cannot be nil'
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
context 'when :from states, :to_state and :on_event is specified' do
|
42
|
+
context 'and :to_state doesn\'t defined' do
|
43
|
+
before do
|
44
|
+
matcher_class = Class.new do
|
45
|
+
state_machine :state, initial: :mathy do
|
46
|
+
state :artsy
|
47
|
+
|
48
|
+
event(:mathematize) { transition any => same }
|
49
|
+
end
|
50
|
+
end
|
51
|
+
@matcher_subject = matcher_class.new
|
52
|
+
@matcher = described_class.new(:mathy, to_state: :polynomial, on_event: :mathematize)
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'raise' do
|
56
|
+
expect { @matcher.matches? @matcher_subject }
|
57
|
+
.to raise_error StateMachinesIntrospectorError, "#{@matcher_subject.class} does not define state: polynomial"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
context 'and :on_event doesn\'t defined' do
|
62
|
+
before do
|
63
|
+
matcher_class = Class.new do
|
64
|
+
state_machine :state, initial: :mathy do
|
65
|
+
state :artsy
|
66
|
+
|
67
|
+
event(:mathematize) { transition any => same }
|
68
|
+
end
|
69
|
+
end
|
70
|
+
@matcher_subject = matcher_class.new
|
71
|
+
@matcher = described_class.new(:mathy, to_state: :arsty, on_event: :algebraify)
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'raise' do
|
75
|
+
expect { @matcher.matches? @matcher_subject }
|
76
|
+
.to raise_error StateMachinesIntrospectorError, "#{@matcher_subject.class} does not define event :algebraify"
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
context 'and from state doesn\'t defined' do
|
81
|
+
before do
|
82
|
+
matcher_class = Class.new do
|
83
|
+
state_machine :state, initial: :mathy do
|
84
|
+
state :artsy
|
85
|
+
|
86
|
+
event(:mathematize) { transition any => same }
|
87
|
+
end
|
88
|
+
end
|
89
|
+
@matcher_subject = matcher_class.new
|
90
|
+
@matcher = described_class.new(:polynomial, to_state: :arsty, on_event: :mathematize)
|
91
|
+
end
|
92
|
+
|
93
|
+
it 'raise' do
|
94
|
+
expect { @matcher.matches? @matcher_subject }
|
95
|
+
.to raise_error StateMachinesIntrospectorError, "#{@matcher_subject.class} does not define state: polynomial"
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
context 'when subject can perform transition' do
|
101
|
+
before do
|
102
|
+
matcher_class = Class.new do
|
103
|
+
state_machine :mathiness, initial: :mathy do
|
104
|
+
state :polynomial
|
105
|
+
|
106
|
+
event(:algebraify) { transition polynomial: :mathy }
|
107
|
+
end
|
108
|
+
end
|
109
|
+
@matcher_subject = matcher_class.new
|
110
|
+
@matcher = described_class.new(:polynomial, to_state: :mathy, on_event: :algebraify, on: :mathiness)
|
111
|
+
end
|
112
|
+
|
113
|
+
it 'does not set a failure message' do
|
114
|
+
@matcher.matches? @matcher_subject
|
115
|
+
expect(@matcher.failure_message).to be_nil
|
116
|
+
end
|
117
|
+
it 'returns true' do
|
118
|
+
expect(@matcher.matches?(@matcher_subject)).to be_truthy
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
context 'when subject cannot perform events' do
|
123
|
+
before do
|
124
|
+
matcher_class = Class.new do
|
125
|
+
state_machine :state, initial: :mathy do
|
126
|
+
state :polynomial
|
127
|
+
|
128
|
+
event(:algebraify) { transition polynomial: same }
|
129
|
+
event(:trigonomalize) { transition trigonomalize: same }
|
130
|
+
end
|
131
|
+
end
|
132
|
+
@matcher_subject = matcher_class.new
|
133
|
+
end
|
134
|
+
|
135
|
+
context 'because it cannot perform the event' do
|
136
|
+
before do
|
137
|
+
@matcher = described_class.new(:mathy, to_state: :polynomial, on_event: :algebraify)
|
138
|
+
end
|
139
|
+
|
140
|
+
it 'sets a failure message' do
|
141
|
+
@matcher.matches? @matcher_subject
|
142
|
+
expect(@matcher.failure_message).to eq('Expected to be able to transition state from: ' \
|
143
|
+
'mathy to: polynomial, on_event: algebraify')
|
144
|
+
end
|
145
|
+
it 'returns false' do
|
146
|
+
expect(@matcher.matches?(@matcher_subject)).to be_falsey
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
describe '#description' do
|
152
|
+
context 'with one from state' do
|
153
|
+
let(:matcher) { described_class.new(:mathy, to_state: :polynomial, on_event: :trigonomalize) }
|
154
|
+
|
155
|
+
it 'returns a string description' do
|
156
|
+
expect(matcher.description).to eq('transition state to :polynomial from :mathy on event :trigonomalize')
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
context 'when multiple from states' do
|
161
|
+
let(:matcher) { described_class.new(:mathy, :arsty, to_state: :polynomial, on_event: :trigonomalize) }
|
162
|
+
|
163
|
+
it 'mentions the requisite state' do
|
164
|
+
expect(matcher.description).to eq('transition state to :polynomial from :mathy, :arsty on event :trigonomalize')
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
context 'when :on is specified' do
|
169
|
+
let(:matcher) { described_class.new(:mathy, to_state: :polynomial, on_event: :trigonomalize, on: :mathiness) }
|
170
|
+
|
171
|
+
it 'mentions the state machines variable' do
|
172
|
+
expect(matcher.description).to eq('transition state to :polynomial from :mathy on event :trigonomalize on :mathiness')
|
173
|
+
end
|
174
|
+
end
|
175
|
+
end
|
176
|
+
end
|
177
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'state_machines'
|
2
|
+
require 'state_machines_rspec'
|
3
|
+
require 'timecop'
|
4
|
+
require 'rspec/its'
|
5
|
+
|
6
|
+
RSpec.configure do |config|
|
7
|
+
config.run_all_when_everything_filtered = true
|
8
|
+
config.filter_run :focus
|
9
|
+
config.order = 'random'
|
10
|
+
|
11
|
+
config.include StateMachinesRspec::Matchers
|
12
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'state_machines_rspec/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'state_machines-rspec'
|
8
|
+
spec.version = StateMachinesRspec::VERSION
|
9
|
+
spec.authors = ['JohnSmall', 'modocache']
|
10
|
+
spec.email = ['jds340@gmail.com', 'modocache@gmail.com']
|
11
|
+
spec.description = %q{ RSpec matchers for state_machines. Forked from modocache/state_machine_rspec to work with state-machines/state_machines (https://github.com/state-machines/state_machines)}
|
12
|
+
spec.summary = %q{ RSpec matchers for state-machines/state_machines. }
|
13
|
+
spec.homepage = 'http://github.com/state-machines/state_machines-rspec'
|
14
|
+
spec.license = 'MIT'
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
spec.test_files = spec.files.grep(%r{^(spec)/})
|
18
|
+
spec.require_paths = ['lib']
|
19
|
+
|
20
|
+
spec.add_dependency 'rspec', '~>3.3'
|
21
|
+
spec.add_dependency 'state_machines'
|
22
|
+
spec.add_dependency 'activesupport'
|
23
|
+
|
24
|
+
spec.add_development_dependency 'bundler'
|
25
|
+
spec.add_development_dependency 'rake'
|
26
|
+
spec.add_development_dependency 'timecop'
|
27
|
+
spec.add_development_dependency 'guard-rspec'
|
28
|
+
spec.add_development_dependency 'rb-fsevent'
|
29
|
+
spec.add_development_dependency 'terminal-notifier-guard'
|
30
|
+
spec.add_development_dependency 'rspec-its'
|
31
|
+
spec.add_development_dependency 'awesome_print'
|
32
|
+
end
|
metadata
ADDED
@@ -0,0 +1,237 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: state_machines-rspec
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.4.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- JohnSmall
|
8
|
+
- modocache
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2017-06-17 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rspec
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '3.3'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '3.3'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: state_machines
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: activesupport
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: bundler
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rake
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: timecop
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: guard-rspec
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: rb-fsevent
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: terminal-notifier-guard
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '0'
|
133
|
+
type: :development
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - ">="
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0'
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
name: rspec-its
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - ">="
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '0'
|
147
|
+
type: :development
|
148
|
+
prerelease: false
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - ">="
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0'
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: awesome_print
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - ">="
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '0'
|
161
|
+
type: :development
|
162
|
+
prerelease: false
|
163
|
+
version_requirements: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - ">="
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '0'
|
168
|
+
description: " RSpec matchers for state_machines. Forked from modocache/state_machine_rspec
|
169
|
+
to work with state-machines/state_machines (https://github.com/state-machines/state_machines)"
|
170
|
+
email:
|
171
|
+
- jds340@gmail.com
|
172
|
+
- modocache@gmail.com
|
173
|
+
executables: []
|
174
|
+
extensions: []
|
175
|
+
extra_rdoc_files: []
|
176
|
+
files:
|
177
|
+
- ".gitignore"
|
178
|
+
- ".rspec"
|
179
|
+
- ".ruby-version"
|
180
|
+
- CHANGELOG.md
|
181
|
+
- Gemfile
|
182
|
+
- Guardfile
|
183
|
+
- LICENSE.txt
|
184
|
+
- README.md
|
185
|
+
- Rakefile
|
186
|
+
- lib/matchers/events/handle_event.rb
|
187
|
+
- lib/matchers/events/matcher.rb
|
188
|
+
- lib/matchers/events/reject_event.rb
|
189
|
+
- lib/matchers/states/have_state.rb
|
190
|
+
- lib/matchers/states/matcher.rb
|
191
|
+
- lib/matchers/states/reject_state.rb
|
192
|
+
- lib/matchers/transitions/transition_from.rb
|
193
|
+
- lib/state_machines_rspec.rb
|
194
|
+
- lib/state_machines_rspec/state_machines_introspector.rb
|
195
|
+
- lib/state_machines_rspec/version.rb
|
196
|
+
- spec/integration/integration_spec.rb
|
197
|
+
- spec/integration/models/vehicle.rb
|
198
|
+
- spec/matchers/events/handle_event_spec.rb
|
199
|
+
- spec/matchers/events/reject_event_spec.rb
|
200
|
+
- spec/matchers/states/have_state_spec.rb
|
201
|
+
- spec/matchers/states/reject_state_spec.rb
|
202
|
+
- spec/matchers/transitions/transition_from_spec.rb
|
203
|
+
- spec/spec_helper.rb
|
204
|
+
- state_machines-rspec.gemspec
|
205
|
+
homepage: http://github.com/state-machines/state_machines-rspec
|
206
|
+
licenses:
|
207
|
+
- MIT
|
208
|
+
metadata: {}
|
209
|
+
post_install_message:
|
210
|
+
rdoc_options: []
|
211
|
+
require_paths:
|
212
|
+
- lib
|
213
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
214
|
+
requirements:
|
215
|
+
- - ">="
|
216
|
+
- !ruby/object:Gem::Version
|
217
|
+
version: '0'
|
218
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - ">="
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0'
|
223
|
+
requirements: []
|
224
|
+
rubyforge_project:
|
225
|
+
rubygems_version: 2.6.11
|
226
|
+
signing_key:
|
227
|
+
specification_version: 4
|
228
|
+
summary: RSpec matchers for state-machines/state_machines.
|
229
|
+
test_files:
|
230
|
+
- spec/integration/integration_spec.rb
|
231
|
+
- spec/integration/models/vehicle.rb
|
232
|
+
- spec/matchers/events/handle_event_spec.rb
|
233
|
+
- spec/matchers/events/reject_event_spec.rb
|
234
|
+
- spec/matchers/states/have_state_spec.rb
|
235
|
+
- spec/matchers/states/reject_state_spec.rb
|
236
|
+
- spec/matchers/transitions/transition_from_spec.rb
|
237
|
+
- spec/spec_helper.rb
|