stimulus_reflex 3.4.2 → 3.5.0.pre0
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.
Potentially problematic release.
This version of stimulus_reflex might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +587 -495
- data/Gemfile.lock +120 -172
- data/LATEST +1 -0
- data/README.md +10 -10
- data/app/channels/stimulus_reflex/channel.rb +40 -62
- data/lib/generators/USAGE +1 -1
- data/lib/generators/stimulus_reflex/{config_generator.rb → initializer_generator.rb} +3 -3
- data/lib/generators/stimulus_reflex/templates/app/reflexes/%file_name%_reflex.rb.tt +3 -2
- data/lib/generators/stimulus_reflex/templates/app/reflexes/application_reflex.rb.tt +1 -1
- data/lib/generators/stimulus_reflex/templates/config/initializers/stimulus_reflex.rb +6 -1
- data/lib/stimulus_reflex/broadcasters/broadcaster.rb +7 -4
- data/lib/stimulus_reflex/broadcasters/page_broadcaster.rb +2 -2
- data/lib/stimulus_reflex/broadcasters/selector_broadcaster.rb +12 -5
- data/lib/stimulus_reflex/cable_ready_channels.rb +6 -2
- data/lib/stimulus_reflex/callbacks.rb +55 -5
- data/lib/stimulus_reflex/concern_enhancer.rb +37 -0
- data/lib/stimulus_reflex/configuration.rb +2 -1
- data/lib/stimulus_reflex/element.rb +31 -7
- data/lib/stimulus_reflex/policies/reflex_invocation_policy.rb +28 -0
- data/lib/stimulus_reflex/reflex.rb +35 -20
- data/lib/stimulus_reflex/reflex_data.rb +79 -0
- data/lib/stimulus_reflex/reflex_factory.rb +23 -54
- data/lib/stimulus_reflex/request_parameters.rb +19 -0
- data/lib/stimulus_reflex/{logger.rb → utils/logger.rb} +0 -2
- data/lib/stimulus_reflex/{sanity_checker.rb → utils/sanity_checker.rb} +58 -10
- data/lib/stimulus_reflex/version.rb +1 -1
- data/lib/stimulus_reflex.rb +8 -2
- data/lib/tasks/stimulus_reflex/install.rake +6 -4
- data/package.json +6 -5
- data/stimulus_reflex.gemspec +5 -5
- data/test/broadcasters/broadcaster_test_case.rb +1 -1
- data/test/broadcasters/nothing_broadcaster_test.rb +5 -3
- data/test/broadcasters/page_broadcaster_test.rb +8 -4
- data/test/broadcasters/selector_broadcaster_test.rb +171 -55
- data/test/callbacks_test.rb +652 -0
- data/test/concern_enhancer_test.rb +54 -0
- data/test/element_test.rb +181 -0
- data/test/reflex_test.rb +1 -1
- data/test/test_helper.rb +4 -34
- data/test/tmp/app/reflexes/application_reflex.rb +12 -0
- data/test/tmp/app/reflexes/user_reflex.rb +44 -0
- data/yarn.lock +1138 -919
- metadata +36 -23
- data/test/reflex_factory_test.rb +0 -79
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stimulus_reflex
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.5.0.pre0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Hopkins
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-05-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -70,16 +70,16 @@ dependencies:
|
|
70
70
|
name: cable_ready
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - '='
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 5.0.0.pre0
|
76
76
|
type: :runtime
|
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: 5.0.0.pre0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: bundler
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -140,16 +140,16 @@ dependencies:
|
|
140
140
|
name: standardrb
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- - "
|
143
|
+
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: '0'
|
145
|
+
version: '1.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: '0'
|
152
|
+
version: '1.0'
|
153
153
|
description:
|
154
154
|
email:
|
155
155
|
- natehop@gmail.com
|
@@ -161,6 +161,7 @@ files:
|
|
161
161
|
- CODE_OF_CONDUCT.md
|
162
162
|
- Gemfile
|
163
163
|
- Gemfile.lock
|
164
|
+
- LATEST
|
164
165
|
- LICENSE.txt
|
165
166
|
- README.md
|
166
167
|
- Rakefile
|
@@ -171,7 +172,7 @@ files:
|
|
171
172
|
- bin/setup
|
172
173
|
- bin/standardize
|
173
174
|
- lib/generators/USAGE
|
174
|
-
- lib/generators/stimulus_reflex/
|
175
|
+
- lib/generators/stimulus_reflex/initializer_generator.rb
|
175
176
|
- lib/generators/stimulus_reflex/stimulus_reflex_generator.rb
|
176
177
|
- lib/generators/stimulus_reflex/templates/app/javascript/controllers/%file_name%_controller.js.tt
|
177
178
|
- lib/generators/stimulus_reflex/templates/app/javascript/controllers/application_controller.js.tt
|
@@ -185,13 +186,17 @@ files:
|
|
185
186
|
- lib/stimulus_reflex/broadcasters/selector_broadcaster.rb
|
186
187
|
- lib/stimulus_reflex/cable_ready_channels.rb
|
187
188
|
- lib/stimulus_reflex/callbacks.rb
|
189
|
+
- lib/stimulus_reflex/concern_enhancer.rb
|
188
190
|
- lib/stimulus_reflex/configuration.rb
|
189
191
|
- lib/stimulus_reflex/element.rb
|
190
|
-
- lib/stimulus_reflex/
|
192
|
+
- lib/stimulus_reflex/policies/reflex_invocation_policy.rb
|
191
193
|
- lib/stimulus_reflex/reflex.rb
|
194
|
+
- lib/stimulus_reflex/reflex_data.rb
|
192
195
|
- lib/stimulus_reflex/reflex_factory.rb
|
193
|
-
- lib/stimulus_reflex/
|
196
|
+
- lib/stimulus_reflex/request_parameters.rb
|
194
197
|
- lib/stimulus_reflex/utils/colorize.rb
|
198
|
+
- lib/stimulus_reflex/utils/logger.rb
|
199
|
+
- lib/stimulus_reflex/utils/sanity_checker.rb
|
195
200
|
- lib/stimulus_reflex/version.rb
|
196
201
|
- lib/tasks/stimulus_reflex/install.rake
|
197
202
|
- package.json
|
@@ -201,20 +206,24 @@ files:
|
|
201
206
|
- test/broadcasters/nothing_broadcaster_test.rb
|
202
207
|
- test/broadcasters/page_broadcaster_test.rb
|
203
208
|
- test/broadcasters/selector_broadcaster_test.rb
|
209
|
+
- test/callbacks_test.rb
|
210
|
+
- test/concern_enhancer_test.rb
|
211
|
+
- test/element_test.rb
|
204
212
|
- test/generators/stimulus_reflex_generator_test.rb
|
205
|
-
- test/reflex_factory_test.rb
|
206
213
|
- test/reflex_test.rb
|
207
214
|
- test/test_helper.rb
|
215
|
+
- test/tmp/app/reflexes/application_reflex.rb
|
216
|
+
- test/tmp/app/reflexes/user_reflex.rb
|
208
217
|
- yarn.lock
|
209
|
-
homepage: https://github.com/
|
218
|
+
homepage: https://github.com/stimulusreflex/stimulus_reflex
|
210
219
|
licenses:
|
211
220
|
- MIT
|
212
221
|
metadata:
|
213
|
-
bug_tracker_uri: https://github.com/
|
214
|
-
changelog_uri: https://github.com/
|
222
|
+
bug_tracker_uri: https://github.com/stimulusreflex/stimulus_reflex/issues
|
223
|
+
changelog_uri: https://github.com/stimulusreflex/stimulus_reflex/CHANGELOG.md
|
215
224
|
documentation_uri: https://docs.stimulusreflex.com
|
216
|
-
homepage_uri: https://github.com/
|
217
|
-
source_code_uri: https://github.com/
|
225
|
+
homepage_uri: https://github.com/stimulusreflex/stimulus_reflex
|
226
|
+
source_code_uri: https://github.com/stimulusreflex/stimulus_reflex
|
218
227
|
post_install_message: |
|
219
228
|
Friendly reminder: When updating the stimulus_reflex gem,
|
220
229
|
don't forget to update your npm package as well.
|
@@ -230,11 +239,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
230
239
|
version: '0'
|
231
240
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
232
241
|
requirements:
|
233
|
-
- - "
|
242
|
+
- - ">"
|
234
243
|
- !ruby/object:Gem::Version
|
235
|
-
version:
|
244
|
+
version: 1.3.1
|
236
245
|
requirements: []
|
237
|
-
rubygems_version: 3.2.
|
246
|
+
rubygems_version: 3.2.3
|
238
247
|
signing_key:
|
239
248
|
specification_version: 4
|
240
249
|
summary: Build reactive applications with the Rails tooling you already know and love.
|
@@ -244,7 +253,11 @@ test_files:
|
|
244
253
|
- test/broadcasters/nothing_broadcaster_test.rb
|
245
254
|
- test/broadcasters/page_broadcaster_test.rb
|
246
255
|
- test/broadcasters/selector_broadcaster_test.rb
|
256
|
+
- test/callbacks_test.rb
|
257
|
+
- test/concern_enhancer_test.rb
|
258
|
+
- test/element_test.rb
|
247
259
|
- test/generators/stimulus_reflex_generator_test.rb
|
248
|
-
- test/reflex_factory_test.rb
|
249
260
|
- test/reflex_test.rb
|
250
261
|
- test/test_helper.rb
|
262
|
+
- test/tmp/app/reflexes/application_reflex.rb
|
263
|
+
- test/tmp/app/reflexes/user_reflex.rb
|
data/test/reflex_factory_test.rb
DELETED
@@ -1,79 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "test_helper"
|
4
|
-
|
5
|
-
class StimulusReflex::ReflexFactoryTest < ActionCable::Channel::TestCase
|
6
|
-
tests StimulusReflex::Channel
|
7
|
-
|
8
|
-
test "reflex class needs to be an ancestor of StimulusReflex::Reflex" do
|
9
|
-
exception = assert_raises(NameError) { StimulusReflex::ReflexFactory.new("Object#inspect").call }
|
10
|
-
assert_equal "uninitialized constant ObjectReflex Did you mean? ObjectSpace", exception.message.squish
|
11
|
-
|
12
|
-
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("NoReflex#no_reflex").call }
|
13
|
-
assert_equal "NoReflex is not a StimulusReflex::Reflex", exception.message
|
14
|
-
|
15
|
-
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("No#no_reflex").call }
|
16
|
-
assert_equal "NoReflex is not a StimulusReflex::Reflex", exception.message
|
17
|
-
end
|
18
|
-
|
19
|
-
test "doesn't raise if owner of method is ancestor of reflex class and descendant of StimulusReflex::Reflex" do
|
20
|
-
assert_nothing_raised { StimulusReflex::ReflexFactory.new("ApplicationReflex#default_reflex").call }
|
21
|
-
assert_nothing_raised { StimulusReflex::ReflexFactory.new("ApplicationReflex#application_reflex").call }
|
22
|
-
|
23
|
-
assert_nothing_raised { StimulusReflex::ReflexFactory.new("PostReflex#default_reflex").call }
|
24
|
-
assert_nothing_raised { StimulusReflex::ReflexFactory.new("PostReflex#application_reflex").call }
|
25
|
-
assert_nothing_raised { StimulusReflex::ReflexFactory.new("PostReflex#post_reflex").call }
|
26
|
-
|
27
|
-
assert_nothing_raised { StimulusReflex::ReflexFactory.new("CounterReflex#default_reflex").call }
|
28
|
-
assert_nothing_raised { StimulusReflex::ReflexFactory.new("CounterReflex#application_reflex").call }
|
29
|
-
assert_nothing_raised { StimulusReflex::ReflexFactory.new("CounterReflex#increment").call }
|
30
|
-
end
|
31
|
-
|
32
|
-
test "raises if method is not owned by a descendant of StimulusReflex::Reflex" do
|
33
|
-
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("ApplicationReflex#itself").call }
|
34
|
-
assert_equal "Reflex method 'itself' is not defined on class 'ApplicationReflex' or on any of its ancestors", exception.message
|
35
|
-
|
36
|
-
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("ApplicationReflex#itself").call }
|
37
|
-
assert_equal "Reflex method 'itself' is not defined on class 'ApplicationReflex' or on any of its ancestors", exception.message
|
38
|
-
|
39
|
-
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("PostReflex#itself").call }
|
40
|
-
assert_equal "Reflex method 'itself' is not defined on class 'PostReflex' or on any of its ancestors", exception.message
|
41
|
-
|
42
|
-
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("PostReflex#binding").call }
|
43
|
-
assert_equal "Reflex method 'binding' is not defined on class 'PostReflex' or on any of its ancestors", exception.message
|
44
|
-
|
45
|
-
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("PostReflex#byebug").call }
|
46
|
-
assert_equal "Reflex method 'byebug' is not defined on class 'PostReflex' or on any of its ancestors", exception.message
|
47
|
-
|
48
|
-
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("PostReflex#debug").call }
|
49
|
-
assert_equal "Reflex method 'debug' is not defined on class 'PostReflex' or on any of its ancestors", exception.message
|
50
|
-
|
51
|
-
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("ApplicationReflex#post_reflex").call }
|
52
|
-
assert_equal "Reflex method 'post_reflex' is not defined on class 'ApplicationReflex' or on any of its ancestors", exception.message
|
53
|
-
end
|
54
|
-
|
55
|
-
test "raises if method is a private method" do
|
56
|
-
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("ApplicationReflex#private_application_reflex").call }
|
57
|
-
assert_equal "Reflex method 'private_application_reflex' is not defined on class 'ApplicationReflex' or on any of its ancestors", exception.message
|
58
|
-
|
59
|
-
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("PostReflex#private_application_reflex").call }
|
60
|
-
assert_equal "Reflex method 'private_application_reflex' is not defined on class 'PostReflex' or on any of its ancestors", exception.message
|
61
|
-
|
62
|
-
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("PostReflex#private_post_reflex").call }
|
63
|
-
assert_equal "Reflex method 'private_post_reflex' is not defined on class 'PostReflex' or on any of its ancestors", exception.message
|
64
|
-
|
65
|
-
exception = assert_raises(ArgumentError) { StimulusReflex::ReflexFactory.new("CounterReflex#private_post_reflex").call }
|
66
|
-
assert_equal "Reflex method 'private_post_reflex' is not defined on class 'CounterReflex' or on any of its ancestors", exception.message
|
67
|
-
end
|
68
|
-
|
69
|
-
test "safe_ancestors" do
|
70
|
-
reflex_factory = StimulusReflex::ReflexFactory.new("ApplicationReflex#default_reflex")
|
71
|
-
assert_equal [ApplicationReflex], reflex_factory.send(:safe_ancestors)
|
72
|
-
|
73
|
-
reflex_factory = StimulusReflex::ReflexFactory.new("PostReflex#default_reflex")
|
74
|
-
assert_equal [PostReflex, ApplicationReflex], reflex_factory.send(:safe_ancestors)
|
75
|
-
|
76
|
-
reflex_factory = StimulusReflex::ReflexFactory.new("CounterReflex#increment")
|
77
|
-
assert_equal [CounterReflex, CounterConcern, ApplicationReflex], reflex_factory.send(:safe_ancestors)
|
78
|
-
end
|
79
|
-
end
|