stimulus_reflex 3.4.2 → 3.5.0.pre0

Sign up to get free protection for your applications and to get access to all the features.

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