rails_state_machine 2.2.0 → 3.0.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/.github/workflows/test.yml +2 -2
- data/.ruby-version +1 -1
- data/CHANGELOG.md +57 -0
- data/Gemfile +1 -1
- data/Gemfile.5.2.pg +2 -2
- data/Gemfile.5.2.pg.lock +123 -103
- data/Gemfile.6.0.pg +2 -2
- data/Gemfile.6.0.pg.lock +140 -120
- data/Gemfile.6.1.pg +4 -4
- data/Gemfile.6.1.pg.lock +131 -119
- data/Gemfile.7.0.pg +6 -5
- data/Gemfile.7.0.pg.lock +112 -93
- data/Gemfile.lock +1 -1
- data/README.md +7 -2
- data/bin/console +1 -1
- data/lib/rails_state_machine/callbacks.rb +11 -0
- data/lib/rails_state_machine/state_machine.rb +5 -11
- data/lib/rails_state_machine/state_manager.rb +25 -7
- data/lib/rails_state_machine/version.rb +1 -1
- data/rails_state_machine.gemspec +0 -1
- metadata +3 -19
- data/Gemfile.5.1.pg +0 -15
- data/Gemfile.5.1.pg.lock +0 -149
data/Gemfile.7.0.pg.lock
CHANGED
@@ -1,75 +1,80 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rails_state_machine (
|
4
|
+
rails_state_machine (3.0.0)
|
5
5
|
activerecord
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
actioncable (7.0.
|
11
|
-
actionpack (= 7.0.
|
12
|
-
activesupport (= 7.0.
|
10
|
+
actioncable (7.0.1)
|
11
|
+
actionpack (= 7.0.1)
|
12
|
+
activesupport (= 7.0.1)
|
13
13
|
nio4r (~> 2.0)
|
14
14
|
websocket-driver (>= 0.6.1)
|
15
|
-
actionmailbox (7.0.
|
16
|
-
actionpack (= 7.0.
|
17
|
-
activejob (= 7.0.
|
18
|
-
activerecord (= 7.0.
|
19
|
-
activestorage (= 7.0.
|
20
|
-
activesupport (= 7.0.
|
15
|
+
actionmailbox (7.0.1)
|
16
|
+
actionpack (= 7.0.1)
|
17
|
+
activejob (= 7.0.1)
|
18
|
+
activerecord (= 7.0.1)
|
19
|
+
activestorage (= 7.0.1)
|
20
|
+
activesupport (= 7.0.1)
|
21
21
|
mail (>= 2.7.1)
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
22
|
+
net-imap
|
23
|
+
net-pop
|
24
|
+
net-smtp
|
25
|
+
actionmailer (7.0.1)
|
26
|
+
actionpack (= 7.0.1)
|
27
|
+
actionview (= 7.0.1)
|
28
|
+
activejob (= 7.0.1)
|
29
|
+
activesupport (= 7.0.1)
|
27
30
|
mail (~> 2.5, >= 2.5.4)
|
31
|
+
net-imap
|
32
|
+
net-pop
|
33
|
+
net-smtp
|
28
34
|
rails-dom-testing (~> 2.0)
|
29
|
-
actionpack (7.0.
|
30
|
-
actionview (= 7.0.
|
31
|
-
activesupport (= 7.0.
|
35
|
+
actionpack (7.0.1)
|
36
|
+
actionview (= 7.0.1)
|
37
|
+
activesupport (= 7.0.1)
|
32
38
|
rack (~> 2.0, >= 2.2.0)
|
33
39
|
rack-test (>= 0.6.3)
|
34
40
|
rails-dom-testing (~> 2.0)
|
35
41
|
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
36
|
-
actiontext (7.0.
|
37
|
-
actionpack (= 7.0.
|
38
|
-
activerecord (= 7.0.
|
39
|
-
activestorage (= 7.0.
|
40
|
-
activesupport (= 7.0.
|
42
|
+
actiontext (7.0.1)
|
43
|
+
actionpack (= 7.0.1)
|
44
|
+
activerecord (= 7.0.1)
|
45
|
+
activestorage (= 7.0.1)
|
46
|
+
activesupport (= 7.0.1)
|
41
47
|
globalid (>= 0.6.0)
|
42
48
|
nokogiri (>= 1.8.5)
|
43
|
-
actionview (7.0.
|
44
|
-
activesupport (= 7.0.
|
49
|
+
actionview (7.0.1)
|
50
|
+
activesupport (= 7.0.1)
|
45
51
|
builder (~> 3.1)
|
46
52
|
erubi (~> 1.4)
|
47
53
|
rails-dom-testing (~> 2.0)
|
48
54
|
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
49
|
-
activejob (7.0.
|
50
|
-
activesupport (= 7.0.
|
55
|
+
activejob (7.0.1)
|
56
|
+
activesupport (= 7.0.1)
|
51
57
|
globalid (>= 0.3.6)
|
52
|
-
activemodel (7.0.
|
53
|
-
activesupport (= 7.0.
|
54
|
-
activerecord (7.0.
|
55
|
-
activemodel (= 7.0.
|
56
|
-
activesupport (= 7.0.
|
57
|
-
activestorage (7.0.
|
58
|
-
actionpack (= 7.0.
|
59
|
-
activejob (= 7.0.
|
60
|
-
activerecord (= 7.0.
|
61
|
-
activesupport (= 7.0.
|
58
|
+
activemodel (7.0.1)
|
59
|
+
activesupport (= 7.0.1)
|
60
|
+
activerecord (7.0.1)
|
61
|
+
activemodel (= 7.0.1)
|
62
|
+
activesupport (= 7.0.1)
|
63
|
+
activestorage (7.0.1)
|
64
|
+
actionpack (= 7.0.1)
|
65
|
+
activejob (= 7.0.1)
|
66
|
+
activerecord (= 7.0.1)
|
67
|
+
activesupport (= 7.0.1)
|
62
68
|
marcel (~> 1.0)
|
63
69
|
mini_mime (>= 1.1.0)
|
64
|
-
activesupport (7.0.
|
70
|
+
activesupport (7.0.1)
|
65
71
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
66
72
|
i18n (>= 1.6, < 2)
|
67
73
|
minitest (>= 5.1)
|
68
74
|
tzinfo (~> 2.0)
|
69
75
|
builder (3.2.4)
|
70
|
-
byebug (11.1.3)
|
71
76
|
coderay (1.1.3)
|
72
|
-
concurrent-ruby (1.
|
77
|
+
concurrent-ruby (1.2.2)
|
73
78
|
crass (1.0.6)
|
74
79
|
database_cleaner (2.0.1)
|
75
80
|
database_cleaner-active_record (~> 2.0.0)
|
@@ -77,62 +82,74 @@ GEM
|
|
77
82
|
activerecord (>= 5.a)
|
78
83
|
database_cleaner-core (~> 2.0.0)
|
79
84
|
database_cleaner-core (2.0.1)
|
85
|
+
date (3.3.4)
|
80
86
|
diff-lcs (1.4.4)
|
81
|
-
erubi (1.
|
82
|
-
gemika (0.
|
83
|
-
globalid (1.
|
84
|
-
activesupport (>=
|
85
|
-
i18n (1.
|
87
|
+
erubi (1.12.0)
|
88
|
+
gemika (0.8.2)
|
89
|
+
globalid (1.2.1)
|
90
|
+
activesupport (>= 6.1)
|
91
|
+
i18n (1.14.1)
|
86
92
|
concurrent-ruby (~> 1.0)
|
87
|
-
loofah (2.
|
93
|
+
loofah (2.22.0)
|
88
94
|
crass (~> 1.0.2)
|
89
|
-
nokogiri (>= 1.
|
90
|
-
mail (2.
|
95
|
+
nokogiri (>= 1.12.0)
|
96
|
+
mail (2.8.1)
|
91
97
|
mini_mime (>= 0.1.1)
|
98
|
+
net-imap
|
99
|
+
net-pop
|
100
|
+
net-smtp
|
92
101
|
marcel (1.0.2)
|
93
102
|
method_source (1.0.0)
|
94
|
-
mini_mime (1.1.
|
95
|
-
mini_portile2 (2.
|
96
|
-
minitest (5.
|
97
|
-
|
98
|
-
|
99
|
-
|
103
|
+
mini_mime (1.1.5)
|
104
|
+
mini_portile2 (2.8.5)
|
105
|
+
minitest (5.20.0)
|
106
|
+
net-imap (0.3.7)
|
107
|
+
date
|
108
|
+
net-protocol
|
109
|
+
net-pop (0.1.2)
|
110
|
+
net-protocol
|
111
|
+
net-protocol (0.2.2)
|
112
|
+
timeout
|
113
|
+
net-smtp (0.4.0)
|
114
|
+
net-protocol
|
115
|
+
nio4r (2.7.0)
|
116
|
+
nokogiri (1.15.5)
|
117
|
+
mini_portile2 (~> 2.8.2)
|
100
118
|
racc (~> 1.4)
|
101
|
-
nokogiri (1.
|
119
|
+
nokogiri (1.15.5-x86_64-linux)
|
102
120
|
racc (~> 1.4)
|
103
|
-
pg (1.
|
104
|
-
pry (0.
|
121
|
+
pg (1.5.4)
|
122
|
+
pry (0.14.2)
|
105
123
|
coderay (~> 1.1)
|
106
124
|
method_source (~> 1.0)
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
activerecord (= 7.0.0)
|
124
|
-
activestorage (= 7.0.0)
|
125
|
-
activesupport (= 7.0.0)
|
125
|
+
racc (1.7.3)
|
126
|
+
rack (2.2.8)
|
127
|
+
rack-test (2.1.0)
|
128
|
+
rack (>= 1.3)
|
129
|
+
rails (7.0.1)
|
130
|
+
actioncable (= 7.0.1)
|
131
|
+
actionmailbox (= 7.0.1)
|
132
|
+
actionmailer (= 7.0.1)
|
133
|
+
actionpack (= 7.0.1)
|
134
|
+
actiontext (= 7.0.1)
|
135
|
+
actionview (= 7.0.1)
|
136
|
+
activejob (= 7.0.1)
|
137
|
+
activemodel (= 7.0.1)
|
138
|
+
activerecord (= 7.0.1)
|
139
|
+
activestorage (= 7.0.1)
|
140
|
+
activesupport (= 7.0.1)
|
126
141
|
bundler (>= 1.15.0)
|
127
|
-
railties (= 7.0.
|
128
|
-
rails-dom-testing (2.0
|
129
|
-
activesupport (>=
|
142
|
+
railties (= 7.0.1)
|
143
|
+
rails-dom-testing (2.2.0)
|
144
|
+
activesupport (>= 5.0.0)
|
145
|
+
minitest
|
130
146
|
nokogiri (>= 1.6)
|
131
|
-
rails-html-sanitizer (1.
|
132
|
-
loofah (~> 2.
|
133
|
-
|
134
|
-
|
135
|
-
|
147
|
+
rails-html-sanitizer (1.6.0)
|
148
|
+
loofah (~> 2.21)
|
149
|
+
nokogiri (~> 1.14)
|
150
|
+
railties (7.0.1)
|
151
|
+
actionpack (= 7.0.1)
|
152
|
+
activesupport (= 7.0.1)
|
136
153
|
method_source
|
137
154
|
rake (>= 12.2)
|
138
155
|
thor (~> 1.0)
|
@@ -151,26 +168,28 @@ GEM
|
|
151
168
|
diff-lcs (>= 1.2.0, < 2.0)
|
152
169
|
rspec-support (~> 3.10.0)
|
153
170
|
rspec-support (3.10.3)
|
154
|
-
thor (1.
|
155
|
-
|
171
|
+
thor (1.3.0)
|
172
|
+
timeout (0.4.1)
|
173
|
+
tzinfo (2.0.6)
|
156
174
|
concurrent-ruby (~> 1.0)
|
157
|
-
websocket-driver (0.7.
|
175
|
+
websocket-driver (0.7.6)
|
158
176
|
websocket-extensions (>= 0.1.0)
|
159
177
|
websocket-extensions (0.1.5)
|
160
|
-
zeitwerk (2.
|
178
|
+
zeitwerk (2.6.12)
|
161
179
|
|
162
180
|
PLATFORMS
|
163
181
|
ruby
|
164
182
|
x86_64-linux
|
165
183
|
|
166
184
|
DEPENDENCIES
|
185
|
+
activerecord (= 7.0.1)
|
167
186
|
database_cleaner
|
168
|
-
gemika
|
169
|
-
pg
|
170
|
-
pry
|
171
|
-
rails (
|
187
|
+
gemika (>= 0.8.1)
|
188
|
+
pg (> 1.2.3)
|
189
|
+
pry
|
190
|
+
rails (= 7.0.1)
|
172
191
|
rails_state_machine!
|
173
|
-
rake
|
192
|
+
rake (> 10.0)
|
174
193
|
rspec (~> 3.5)
|
175
194
|
|
176
195
|
BUNDLED WITH
|
data/Gemfile.lock
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
Gemfile.7.0.pg.lock
|
data/README.md
CHANGED
@@ -56,8 +56,8 @@ A model instance offers these state machine methods:
|
|
56
56
|
- `<event_name>` call an event and transition into a new state. The record will be `save`d, if valid.
|
57
57
|
- `<event_name>!` call an event and transition into a new state. Calls `save!` to save the record.
|
58
58
|
- `may_<event_name>?` to find out if an event transition could be taken. Note that this will not validate if the model is valid afterwards.
|
59
|
-
-
|
60
|
-
- `
|
59
|
+
- `<state_name>_event=` to set the event the record tries to call on save. If the event is invalid, an `:invalid` error on the `<state_name>_event` is set. Commonly used for forms where the controller takes a "<state_name>_event" param and saves.
|
60
|
+
- `<state_name>_event` to get the name of the event that will be called
|
61
61
|
|
62
62
|
Should you ever need to query the state machine for its states or events, it is accessible via `state_machine` class or instance methods on the model. See [`state_machine.rb`](https://github.com/makandra/rails_state_machine/blob/master/lib/rails_state_machine/state_machine.rb) for a list of available methods. This is mostly helpful in tests.
|
63
63
|
|
@@ -127,6 +127,11 @@ state_machine :review_state, prefix: 'some_prefix' do
|
|
127
127
|
end
|
128
128
|
```
|
129
129
|
|
130
|
+
Note: The `prefix` option is designed to apply only to constants and state methods **defined by the gem**.
|
131
|
+
|
132
|
+
**State event names** are manually defined by the developer and thus not altered even if the `prefix`
|
133
|
+
option is used. It's advised to review them regarding potential naming collision and clarity when
|
134
|
+
introducing the `prefix` method.
|
130
135
|
|
131
136
|
## Taking multiple transitions
|
132
137
|
|
data/bin/console
CHANGED
@@ -10,6 +10,7 @@ module RailsStateMachine
|
|
10
10
|
|
11
11
|
def register_callbacks(model)
|
12
12
|
model.class_eval do
|
13
|
+
before_validation :set_state_from_state_event, prepend: true
|
13
14
|
before_validation :run_state_events_before_validation
|
14
15
|
before_save :register_state_events_for_callbacks
|
15
16
|
before_save { flush_state_event_callbacks(:before_save) }
|
@@ -25,6 +26,16 @@ module RailsStateMachine
|
|
25
26
|
end
|
26
27
|
end
|
27
28
|
|
29
|
+
def set_state_from_state_event
|
30
|
+
state_machine_state_managers.each do |state_manager|
|
31
|
+
next if state_manager.state_event.blank?
|
32
|
+
|
33
|
+
unless state_manager.transition_to(state_manager.state_event)
|
34
|
+
errors.add(:"#{state_manager.state_attribute}_event", :invalid)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
28
39
|
def run_state_events_before_validation
|
29
40
|
# Since validations may be skipped, we will not register validation callbacks in @state_event_callbacks,
|
30
41
|
# but call them explicitly when before_validation callbacks are triggered.
|
@@ -26,7 +26,7 @@ module RailsStateMachine
|
|
26
26
|
register_initial_state
|
27
27
|
|
28
28
|
define_event_methods
|
29
|
-
|
29
|
+
define_attributes
|
30
30
|
end
|
31
31
|
|
32
32
|
def states
|
@@ -46,7 +46,7 @@ module RailsStateMachine
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def find_event(name)
|
49
|
-
@events_by_name
|
49
|
+
@events_by_name[name.to_sym]
|
50
50
|
end
|
51
51
|
|
52
52
|
def has_state?(name)
|
@@ -148,17 +148,11 @@ module RailsStateMachine
|
|
148
148
|
end
|
149
149
|
end
|
150
150
|
|
151
|
-
def
|
151
|
+
def define_attributes
|
152
152
|
state_attribute = @state_attribute
|
153
153
|
|
154
|
-
|
155
|
-
|
156
|
-
state_machine_state_manager(state_attribute).transition_to(event_name)
|
157
|
-
end
|
158
|
-
|
159
|
-
define_method :"#{state_attribute}_event" do
|
160
|
-
state_machine_state_manager(state_attribute).next_event&.name
|
161
|
-
end
|
154
|
+
@model.instance_eval do
|
155
|
+
attribute :"#{state_attribute}_event", :string
|
162
156
|
end
|
163
157
|
end
|
164
158
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
module RailsStateMachine
|
2
2
|
class StateManager
|
3
3
|
attr_accessor :next_event, :state_before_state_event
|
4
|
+
attr_reader :state_attribute
|
4
5
|
|
5
6
|
def initialize(record, state_machine, state_attribute)
|
6
7
|
@record = record
|
@@ -21,7 +22,10 @@ module RailsStateMachine
|
|
21
22
|
end
|
22
23
|
|
23
24
|
def revert
|
24
|
-
|
25
|
+
if @next_event
|
26
|
+
self.state = @state_before_state_event
|
27
|
+
self.state_event = @next_event.name
|
28
|
+
end
|
25
29
|
end
|
26
30
|
|
27
31
|
def source_state
|
@@ -32,16 +36,30 @@ module RailsStateMachine
|
|
32
36
|
end
|
33
37
|
end
|
34
38
|
|
35
|
-
def
|
36
|
-
@
|
37
|
-
|
39
|
+
def state_event
|
40
|
+
@record.public_send(:"#{@state_machine.state_attribute}_event")
|
41
|
+
end
|
38
42
|
|
39
|
-
|
40
|
-
|
43
|
+
def state_event=(value)
|
44
|
+
@record.public_send(:"#{@state_machine.state_attribute}_event=", value)
|
41
45
|
end
|
42
46
|
|
43
47
|
def transition_allowed_for?(event_name)
|
44
|
-
|
48
|
+
!!@state_machine.find_event(event_name)&.allowed_from?(state)
|
49
|
+
end
|
50
|
+
|
51
|
+
def transition_to(event_name)
|
52
|
+
if transition_allowed_for?(event_name)
|
53
|
+
self.state_before_state_event = source_state
|
54
|
+
event = @state_machine.find_event(event_name)
|
55
|
+
self.state = event.future_state_name(state).to_s
|
56
|
+
self.state_event = nil
|
57
|
+
@next_event = event
|
58
|
+
|
59
|
+
true
|
60
|
+
else
|
61
|
+
false
|
62
|
+
end
|
45
63
|
end
|
46
64
|
end
|
47
65
|
end
|
data/rails_state_machine.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_state_machine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arne Hartherz
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2024-06-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
@@ -53,20 +53,6 @@ dependencies:
|
|
53
53
|
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '10.0'
|
56
|
-
- !ruby/object:Gem::Dependency
|
57
|
-
name: pry-byebug
|
58
|
-
requirement: !ruby/object:Gem::Requirement
|
59
|
-
requirements:
|
60
|
-
- - "~>"
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: '3.5'
|
63
|
-
type: :development
|
64
|
-
prerelease: false
|
65
|
-
version_requirements: !ruby/object:Gem::Requirement
|
66
|
-
requirements:
|
67
|
-
- - "~>"
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '3.5'
|
70
56
|
description: ActiveRecord-bound state machine
|
71
57
|
email:
|
72
58
|
- arne.hartherz@makandra.de
|
@@ -80,8 +66,6 @@ files:
|
|
80
66
|
- ".ruby-version"
|
81
67
|
- CHANGELOG.md
|
82
68
|
- Gemfile
|
83
|
-
- Gemfile.5.1.pg
|
84
|
-
- Gemfile.5.1.pg.lock
|
85
69
|
- Gemfile.5.2.pg
|
86
70
|
- Gemfile.5.2.pg.lock
|
87
71
|
- Gemfile.6.0.pg
|
@@ -126,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
126
110
|
- !ruby/object:Gem::Version
|
127
111
|
version: '0'
|
128
112
|
requirements: []
|
129
|
-
rubygems_version: 3.
|
113
|
+
rubygems_version: 3.4.14
|
130
114
|
signing_key:
|
131
115
|
specification_version: 4
|
132
116
|
summary: ActiveRecord-bound state machine
|
data/Gemfile.5.1.pg
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
source 'https://rubygems.org'
|
2
|
-
|
3
|
-
# Runtime dependencies
|
4
|
-
gem 'rails', '~>5.1.0'
|
5
|
-
gem 'pg'
|
6
|
-
|
7
|
-
# Development dependencies
|
8
|
-
gem 'rspec', '~>3.5'
|
9
|
-
gem 'rake'
|
10
|
-
gem 'pry-byebug'
|
11
|
-
gem 'gemika'
|
12
|
-
gem 'database_cleaner'
|
13
|
-
|
14
|
-
# Gem under test
|
15
|
-
gem 'rails_state_machine', :path => '.'
|
data/Gemfile.5.1.pg.lock
DELETED
@@ -1,149 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
rails_state_machine (2.2.0)
|
5
|
-
activerecord
|
6
|
-
|
7
|
-
GEM
|
8
|
-
remote: https://rubygems.org/
|
9
|
-
specs:
|
10
|
-
actioncable (5.1.4)
|
11
|
-
actionpack (= 5.1.4)
|
12
|
-
nio4r (~> 2.0)
|
13
|
-
websocket-driver (~> 0.6.1)
|
14
|
-
actionmailer (5.1.4)
|
15
|
-
actionpack (= 5.1.4)
|
16
|
-
actionview (= 5.1.4)
|
17
|
-
activejob (= 5.1.4)
|
18
|
-
mail (~> 2.5, >= 2.5.4)
|
19
|
-
rails-dom-testing (~> 2.0)
|
20
|
-
actionpack (5.1.4)
|
21
|
-
actionview (= 5.1.4)
|
22
|
-
activesupport (= 5.1.4)
|
23
|
-
rack (~> 2.0)
|
24
|
-
rack-test (>= 0.6.3)
|
25
|
-
rails-dom-testing (~> 2.0)
|
26
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
27
|
-
actionview (5.1.4)
|
28
|
-
activesupport (= 5.1.4)
|
29
|
-
builder (~> 3.1)
|
30
|
-
erubi (~> 1.4)
|
31
|
-
rails-dom-testing (~> 2.0)
|
32
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
33
|
-
activejob (5.1.4)
|
34
|
-
activesupport (= 5.1.4)
|
35
|
-
globalid (>= 0.3.6)
|
36
|
-
activemodel (5.1.4)
|
37
|
-
activesupport (= 5.1.4)
|
38
|
-
activerecord (5.1.4)
|
39
|
-
activemodel (= 5.1.4)
|
40
|
-
activesupport (= 5.1.4)
|
41
|
-
arel (~> 8.0)
|
42
|
-
activesupport (5.1.4)
|
43
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
44
|
-
i18n (~> 0.7)
|
45
|
-
minitest (~> 5.1)
|
46
|
-
tzinfo (~> 1.1)
|
47
|
-
arel (8.0.0)
|
48
|
-
builder (3.2.3)
|
49
|
-
byebug (9.1.0)
|
50
|
-
coderay (1.1.2)
|
51
|
-
concurrent-ruby (1.0.5)
|
52
|
-
crass (1.0.3)
|
53
|
-
database_cleaner (1.6.2)
|
54
|
-
diff-lcs (1.3)
|
55
|
-
erubi (1.7.0)
|
56
|
-
gemika (0.5.0)
|
57
|
-
globalid (0.4.1)
|
58
|
-
activesupport (>= 4.2.0)
|
59
|
-
i18n (0.9.1)
|
60
|
-
concurrent-ruby (~> 1.0)
|
61
|
-
loofah (2.1.1)
|
62
|
-
crass (~> 1.0.2)
|
63
|
-
nokogiri (>= 1.5.9)
|
64
|
-
mail (2.7.0)
|
65
|
-
mini_mime (>= 0.1.1)
|
66
|
-
method_source (0.9.0)
|
67
|
-
mini_mime (1.0.0)
|
68
|
-
mini_portile2 (2.3.0)
|
69
|
-
minitest (5.10.3)
|
70
|
-
nio4r (2.1.0)
|
71
|
-
nokogiri (1.8.1)
|
72
|
-
mini_portile2 (~> 2.3.0)
|
73
|
-
pg (0.21.0)
|
74
|
-
pry (0.11.3)
|
75
|
-
coderay (~> 1.1.0)
|
76
|
-
method_source (~> 0.9.0)
|
77
|
-
pry-byebug (3.5.0)
|
78
|
-
byebug (~> 9.1)
|
79
|
-
pry (~> 0.10)
|
80
|
-
rack (2.0.3)
|
81
|
-
rack-test (0.7.0)
|
82
|
-
rack (>= 1.0, < 3)
|
83
|
-
rails (5.1.4)
|
84
|
-
actioncable (= 5.1.4)
|
85
|
-
actionmailer (= 5.1.4)
|
86
|
-
actionpack (= 5.1.4)
|
87
|
-
actionview (= 5.1.4)
|
88
|
-
activejob (= 5.1.4)
|
89
|
-
activemodel (= 5.1.4)
|
90
|
-
activerecord (= 5.1.4)
|
91
|
-
activesupport (= 5.1.4)
|
92
|
-
bundler (>= 1.3.0)
|
93
|
-
railties (= 5.1.4)
|
94
|
-
sprockets-rails (>= 2.0.0)
|
95
|
-
rails-dom-testing (2.0.3)
|
96
|
-
activesupport (>= 4.2.0)
|
97
|
-
nokogiri (>= 1.6)
|
98
|
-
rails-html-sanitizer (1.0.3)
|
99
|
-
loofah (~> 2.0)
|
100
|
-
railties (5.1.4)
|
101
|
-
actionpack (= 5.1.4)
|
102
|
-
activesupport (= 5.1.4)
|
103
|
-
method_source
|
104
|
-
rake (>= 0.8.7)
|
105
|
-
thor (>= 0.18.1, < 2.0)
|
106
|
-
rake (12.2.1)
|
107
|
-
rspec (3.7.0)
|
108
|
-
rspec-core (~> 3.7.0)
|
109
|
-
rspec-expectations (~> 3.7.0)
|
110
|
-
rspec-mocks (~> 3.7.0)
|
111
|
-
rspec-core (3.7.0)
|
112
|
-
rspec-support (~> 3.7.0)
|
113
|
-
rspec-expectations (3.7.0)
|
114
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
115
|
-
rspec-support (~> 3.7.0)
|
116
|
-
rspec-mocks (3.7.0)
|
117
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
118
|
-
rspec-support (~> 3.7.0)
|
119
|
-
rspec-support (3.7.0)
|
120
|
-
sprockets (3.7.1)
|
121
|
-
concurrent-ruby (~> 1.0)
|
122
|
-
rack (> 1, < 3)
|
123
|
-
sprockets-rails (3.2.1)
|
124
|
-
actionpack (>= 4.0)
|
125
|
-
activesupport (>= 4.0)
|
126
|
-
sprockets (>= 3.0.0)
|
127
|
-
thor (0.20.0)
|
128
|
-
thread_safe (0.3.6)
|
129
|
-
tzinfo (1.2.4)
|
130
|
-
thread_safe (~> 0.1)
|
131
|
-
websocket-driver (0.6.5)
|
132
|
-
websocket-extensions (>= 0.1.0)
|
133
|
-
websocket-extensions (0.1.3)
|
134
|
-
|
135
|
-
PLATFORMS
|
136
|
-
ruby
|
137
|
-
|
138
|
-
DEPENDENCIES
|
139
|
-
database_cleaner
|
140
|
-
gemika
|
141
|
-
pg
|
142
|
-
pry-byebug
|
143
|
-
rails (~> 5.1.0)
|
144
|
-
rails_state_machine!
|
145
|
-
rake
|
146
|
-
rspec (~> 3.5)
|
147
|
-
|
148
|
-
BUNDLED WITH
|
149
|
-
2.3.0
|