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.

Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +587 -495
  3. data/Gemfile.lock +120 -172
  4. data/LATEST +1 -0
  5. data/README.md +10 -10
  6. data/app/channels/stimulus_reflex/channel.rb +40 -62
  7. data/lib/generators/USAGE +1 -1
  8. data/lib/generators/stimulus_reflex/{config_generator.rb → initializer_generator.rb} +3 -3
  9. data/lib/generators/stimulus_reflex/templates/app/reflexes/%file_name%_reflex.rb.tt +3 -2
  10. data/lib/generators/stimulus_reflex/templates/app/reflexes/application_reflex.rb.tt +1 -1
  11. data/lib/generators/stimulus_reflex/templates/config/initializers/stimulus_reflex.rb +6 -1
  12. data/lib/stimulus_reflex/broadcasters/broadcaster.rb +7 -4
  13. data/lib/stimulus_reflex/broadcasters/page_broadcaster.rb +2 -2
  14. data/lib/stimulus_reflex/broadcasters/selector_broadcaster.rb +12 -5
  15. data/lib/stimulus_reflex/cable_ready_channels.rb +6 -2
  16. data/lib/stimulus_reflex/callbacks.rb +55 -5
  17. data/lib/stimulus_reflex/concern_enhancer.rb +37 -0
  18. data/lib/stimulus_reflex/configuration.rb +2 -1
  19. data/lib/stimulus_reflex/element.rb +31 -7
  20. data/lib/stimulus_reflex/policies/reflex_invocation_policy.rb +28 -0
  21. data/lib/stimulus_reflex/reflex.rb +35 -20
  22. data/lib/stimulus_reflex/reflex_data.rb +79 -0
  23. data/lib/stimulus_reflex/reflex_factory.rb +23 -54
  24. data/lib/stimulus_reflex/request_parameters.rb +19 -0
  25. data/lib/stimulus_reflex/{logger.rb → utils/logger.rb} +0 -2
  26. data/lib/stimulus_reflex/{sanity_checker.rb → utils/sanity_checker.rb} +58 -10
  27. data/lib/stimulus_reflex/version.rb +1 -1
  28. data/lib/stimulus_reflex.rb +8 -2
  29. data/lib/tasks/stimulus_reflex/install.rake +6 -4
  30. data/package.json +6 -5
  31. data/stimulus_reflex.gemspec +5 -5
  32. data/test/broadcasters/broadcaster_test_case.rb +1 -1
  33. data/test/broadcasters/nothing_broadcaster_test.rb +5 -3
  34. data/test/broadcasters/page_broadcaster_test.rb +8 -4
  35. data/test/broadcasters/selector_broadcaster_test.rb +171 -55
  36. data/test/callbacks_test.rb +652 -0
  37. data/test/concern_enhancer_test.rb +54 -0
  38. data/test/element_test.rb +181 -0
  39. data/test/reflex_test.rb +1 -1
  40. data/test/test_helper.rb +4 -34
  41. data/test/tmp/app/reflexes/application_reflex.rb +12 -0
  42. data/test/tmp/app/reflexes/user_reflex.rb +44 -0
  43. data/yarn.lock +1138 -919
  44. metadata +36 -23
  45. 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.2
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: 2024-03-12 00:00:00.000000000 Z
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: '4.5'
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: '4.5'
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/config_generator.rb
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/logger.rb
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/sanity_checker.rb
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/hopsoft/stimulus_reflex
218
+ homepage: https://github.com/stimulusreflex/stimulus_reflex
210
219
  licenses:
211
220
  - MIT
212
221
  metadata:
213
- bug_tracker_uri: https://github.com/hopsoft/stimulus_reflex/issues
214
- changelog_uri: https://github.com/hopsoft/stimulus_reflex/CHANGELOG.md
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/hopsoft/stimulus_reflex
217
- source_code_uri: https://github.com/hopsoft/stimulus_reflex
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: '0'
244
+ version: 1.3.1
236
245
  requirements: []
237
- rubygems_version: 3.2.33
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
@@ -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