stimulus_reflex 3.3.0.pre6 → 3.4.0.pre3

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 (30) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +85 -4
  3. data/Gemfile.lock +69 -68
  4. data/README.md +6 -3
  5. data/{lib → app/channels}/stimulus_reflex/channel.rb +24 -18
  6. data/lib/generators/stimulus_reflex/config_generator.rb +14 -0
  7. data/lib/generators/{stimulus_reflex_generator.rb → stimulus_reflex/stimulus_reflex_generator.rb} +0 -0
  8. data/lib/generators/{templates → stimulus_reflex/templates}/app/javascript/controllers/%file_name%_controller.js.tt +0 -0
  9. data/lib/generators/{templates → stimulus_reflex/templates}/app/javascript/controllers/application_controller.js.tt +0 -0
  10. data/lib/generators/{templates → stimulus_reflex/templates}/app/reflexes/%file_name%_reflex.rb.tt +0 -0
  11. data/lib/generators/{templates → stimulus_reflex/templates}/app/reflexes/application_reflex.rb.tt +0 -0
  12. data/lib/generators/stimulus_reflex/templates/config/initializers/stimulus_reflex.rb +10 -0
  13. data/lib/stimulus_reflex.rb +1 -2
  14. data/lib/stimulus_reflex/broadcasters/broadcaster.rb +3 -7
  15. data/lib/stimulus_reflex/broadcasters/page_broadcaster.rb +2 -2
  16. data/lib/stimulus_reflex/broadcasters/selector_broadcaster.rb +2 -2
  17. data/lib/stimulus_reflex/configuration.rb +24 -0
  18. data/lib/stimulus_reflex/element.rb +8 -0
  19. data/lib/stimulus_reflex/reflex.rb +24 -20
  20. data/lib/stimulus_reflex/sanity_checker.rb +69 -18
  21. data/lib/stimulus_reflex/version.rb +1 -1
  22. data/lib/tasks/stimulus_reflex/install.rake +12 -8
  23. data/package.json +63 -0
  24. data/stimulus_reflex.gemspec +40 -0
  25. data/tags +98 -0
  26. data/test/generators/stimulus_reflex_generator_test.rb +1 -0
  27. data/test/tmp/app/reflexes/application_reflex.rb +12 -0
  28. data/test/tmp/app/reflexes/user_reflex.rb +33 -0
  29. data/yarn.lock +6256 -0
  30. metadata +38 -27
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7c8542f86c6a95d6528f7c9838c8ca9084c7ebb938e0d1271837e3dfd1d34219
4
- data.tar.gz: 2881c8a442b7854dda4c6ac1625d9b8466997c5175bcc4ee319aa0bfb5a95153
3
+ metadata.gz: 344e0b60c7f18f467821263a5758cc37843cfae000430754ed89d34214363ff3
4
+ data.tar.gz: a49f8d18df8d0e2f4d664a70690fd562fd7d4fcc9db3f22d7821f96f67dee03d
5
5
  SHA512:
6
- metadata.gz: 9efb56d48030a6b2264f9db47330baee93d47407b90e021c49a77ff6339d382a767089ec02b6c2adad40ce965332fe1457e8e30dadfdf8f38e9a9c15d8f16d58
7
- data.tar.gz: 52d7ee2200946cfec45758f224acbb354e2aee5eab4ad4a7cddcdcbc3d4ba34afba461876c63bfe8dffaabde2f9527f5093ad9560b789158510b8acf74b7242a
6
+ metadata.gz: cd85f6455c20f2cad48a8e4c7bda0fe6e46e50fa6bb39d2c67c128a899edd96d815798b913b928ae08c75fb8f55421483249f6acec34e26428a7114fa7e3eb67
7
+ data.tar.gz: 3fbb2e6be0b867db5c05997aa0727642e0298d0c13ad14e31c3f811ca4e6b4188db5154ea0c7ada5aeca8a3fb456c6998e35d0f4616e3fa03c636fc710b33056
@@ -2,7 +2,88 @@
2
2
 
3
3
  ## [Unreleased](https://github.com/hopsoft/stimulus_reflex/tree/HEAD)
4
4
 
5
- [Full Changelog](https://github.com/hopsoft/stimulus_reflex/compare/v3.3.0.pre5...HEAD)
5
+ [Full Changelog](https://github.com/hopsoft/stimulus_reflex/compare/v3.4.0.pre2...HEAD)
6
+
7
+ **Merged pull requests:**
8
+
9
+ - Allow to supress warnings for sanity checks [\#359](https://github.com/hopsoft/stimulus_reflex/pull/359) ([RolandStuder](https://github.com/RolandStuder))
10
+ - serializeForm: only append given input if element is submit button [\#357](https://github.com/hopsoft/stimulus_reflex/pull/357) ([marcoroth](https://github.com/marcoroth))
11
+ - Update package.json to 3.4.0-pre2 [\#356](https://github.com/hopsoft/stimulus_reflex/pull/356) ([marcoroth](https://github.com/marcoroth))
12
+ - Fix elementToXPath import [\#355](https://github.com/hopsoft/stimulus_reflex/pull/355) ([julianrubisch](https://github.com/julianrubisch))
13
+ - Add guard clause to return valid empty form data [\#354](https://github.com/hopsoft/stimulus_reflex/pull/354) ([julianrubisch](https://github.com/julianrubisch))
14
+ - simplify xpath functions [\#353](https://github.com/hopsoft/stimulus_reflex/pull/353) ([leastbad](https://github.com/leastbad))
15
+ - pass reflex id to reflex [\#352](https://github.com/hopsoft/stimulus_reflex/pull/352) ([joshleblanc](https://github.com/joshleblanc))
16
+
17
+ ## [v3.4.0.pre2](https://github.com/hopsoft/stimulus_reflex/tree/v3.4.0.pre2) (2020-11-06)
18
+
19
+ [Full Changelog](https://github.com/hopsoft/stimulus_reflex/compare/v3.4.0.pre1...v3.4.0.pre2)
20
+
21
+ **Closed issues:**
22
+
23
+ - Regression in version 3.4.0-pre1: Cannot find module `cable\_ready` [\#350](https://github.com/hopsoft/stimulus_reflex/issues/350)
24
+
25
+ **Merged pull requests:**
26
+
27
+ - move `cable\_ready` to development dependencies [\#351](https://github.com/hopsoft/stimulus_reflex/pull/351) ([marcoroth](https://github.com/marcoroth))
28
+ - Fix serializeForm initialization [\#349](https://github.com/hopsoft/stimulus_reflex/pull/349) ([marcoroth](https://github.com/marcoroth))
29
+
30
+ ## [v3.4.0.pre1](https://github.com/hopsoft/stimulus_reflex/tree/v3.4.0.pre1) (2020-11-03)
31
+
32
+ [Full Changelog](https://github.com/hopsoft/stimulus_reflex/compare/v3.4.0.pre0...v3.4.0.pre1)
33
+
34
+ ## [v3.4.0.pre0](https://github.com/hopsoft/stimulus_reflex/tree/v3.4.0.pre0) (2020-11-02)
35
+
36
+ [Full Changelog](https://github.com/hopsoft/stimulus_reflex/compare/v3.3.0...v3.4.0.pre0)
37
+
38
+ **Implemented enhancements:**
39
+
40
+ - Move StimulusReflex::Channel to app/ and allow for a configurable parent channel [\#346](https://github.com/hopsoft/stimulus_reflex/pull/346) ([leastbad](https://github.com/leastbad))
41
+ - tab isolation mode v2 [\#335](https://github.com/hopsoft/stimulus_reflex/pull/335) ([leastbad](https://github.com/leastbad))
42
+ - Delegate flash to the request [\#334](https://github.com/hopsoft/stimulus_reflex/pull/334) ([hopsoft](https://github.com/hopsoft))
43
+ - Opt-in form serialization & params overriding [\#325](https://github.com/hopsoft/stimulus_reflex/pull/325) ([s-s](https://github.com/s-s))
44
+ - Exit on failed sanity check, provide config to skip exit [\#318](https://github.com/hopsoft/stimulus_reflex/pull/318) ([RolandStuder](https://github.com/RolandStuder))
45
+
46
+ **Fixed bugs:**
47
+
48
+ - Console exception when reflex updates a page that didn't trigger the update [\#336](https://github.com/hopsoft/stimulus_reflex/issues/336)
49
+ - AlpineJS components not reinitalised after reflex [\#329](https://github.com/hopsoft/stimulus_reflex/issues/329)
50
+ - Encoding changes from UTF-8 to ASCII-8BIT [\#202](https://github.com/hopsoft/stimulus_reflex/issues/202)
51
+
52
+ **Closed issues:**
53
+
54
+ - ActionController::RoutingError with Rails 6 Engines [\#342](https://github.com/hopsoft/stimulus_reflex/issues/342)
55
+ - Wrong input name parsing [\#321](https://github.com/hopsoft/stimulus_reflex/issues/321)
56
+ - Stimulus' controllers are not reconnecting after reflex, why? [\#314](https://github.com/hopsoft/stimulus_reflex/issues/314)
57
+ - Rendering issue [\#289](https://github.com/hopsoft/stimulus_reflex/issues/289)
58
+ - Documentation Request for a Rails 6.x app with 5.2 defaults [\#265](https://github.com/hopsoft/stimulus_reflex/issues/265)
59
+
60
+ **Merged pull requests:**
61
+
62
+ - \[docs\] StimulusReflex.debug= on left hand side [\#348](https://github.com/hopsoft/stimulus_reflex/pull/348) ([drnic](https://github.com/drnic))
63
+ - Fix page morphs inside Rails engines [\#344](https://github.com/hopsoft/stimulus_reflex/pull/344) ([leastbad](https://github.com/leastbad))
64
+ - Use Webpacker folder if available [\#343](https://github.com/hopsoft/stimulus_reflex/pull/343) ([coorasse](https://github.com/coorasse))
65
+ - feat: create a more robust package.json [\#340](https://github.com/hopsoft/stimulus_reflex/pull/340) ([ParamagicDev](https://github.com/ParamagicDev))
66
+ - Make StimulusReflex configurable and add an initializer [\#339](https://github.com/hopsoft/stimulus_reflex/pull/339) ([RolandStuder](https://github.com/RolandStuder))
67
+ - Aliases method\_name to action\_name [\#338](https://github.com/hopsoft/stimulus_reflex/pull/338) ([obie](https://github.com/obie))
68
+ - remove isolate concept and make behavior default [\#332](https://github.com/hopsoft/stimulus_reflex/pull/332) ([leastbad](https://github.com/leastbad))
69
+ - add signed/unsigned accessors to element [\#330](https://github.com/hopsoft/stimulus_reflex/pull/330) ([joshleblanc](https://github.com/joshleblanc))
70
+ - merge environment into ApplicationController and descendants [\#328](https://github.com/hopsoft/stimulus_reflex/pull/328) ([leastbad](https://github.com/leastbad))
71
+ - Move form-data merge logic to the server-side [\#327](https://github.com/hopsoft/stimulus_reflex/pull/327) ([marcoroth](https://github.com/marcoroth))
72
+ - fix for PR\#317 which was preventing server messages [\#326](https://github.com/hopsoft/stimulus_reflex/pull/326) ([leastbad](https://github.com/leastbad))
73
+ - introduce tab isolation mode [\#324](https://github.com/hopsoft/stimulus_reflex/pull/324) ([leastbad](https://github.com/leastbad))
74
+ - Force request encodings to be UTF-8 instead of ASCII-8BIT after a reflex [\#320](https://github.com/hopsoft/stimulus_reflex/pull/320) ([marcoroth](https://github.com/marcoroth))
75
+ - Append short section about resetting a form [\#319](https://github.com/hopsoft/stimulus_reflex/pull/319) ([julianrubisch](https://github.com/julianrubisch))
76
+ - lifecycle refactor: introduce new finalize stage, global reflexes dictionary [\#317](https://github.com/hopsoft/stimulus_reflex/pull/317) ([leastbad](https://github.com/leastbad))
77
+ - Update events.md [\#316](https://github.com/hopsoft/stimulus_reflex/pull/316) ([gahia](https://github.com/gahia))
78
+ - Proposal: Reduce bundle size and add a bundler for Stimulus Reflex javascript [\#315](https://github.com/hopsoft/stimulus_reflex/pull/315) ([ParamagicDev](https://github.com/ParamagicDev))
79
+
80
+ ## [v3.3.0](https://github.com/hopsoft/stimulus_reflex/tree/v3.3.0) (2020-09-22)
81
+
82
+ [Full Changelog](https://github.com/hopsoft/stimulus_reflex/compare/v3.3.0.pre6...v3.3.0)
83
+
84
+ ## [v3.3.0.pre6](https://github.com/hopsoft/stimulus_reflex/tree/v3.3.0.pre6) (2020-09-20)
85
+
86
+ [Full Changelog](https://github.com/hopsoft/stimulus_reflex/compare/v3.3.0.pre5...v3.3.0.pre6)
6
87
 
7
88
  **Implemented enhancements:**
8
89
 
@@ -241,7 +322,7 @@
241
322
  - Loosen Rails requirement to 5.2 with instructions [\#205](https://github.com/hopsoft/stimulus_reflex/pull/205) ([jasoncharnes](https://github.com/jasoncharnes))
242
323
  - Fix undefined is not an object for Object.keys in log.js [\#201](https://github.com/hopsoft/stimulus_reflex/pull/201) ([marcoroth](https://github.com/marcoroth))
243
324
  - Small typo/grammar fix in quickstart doc. [\#198](https://github.com/hopsoft/stimulus_reflex/pull/198) ([acoffman](https://github.com/acoffman))
244
- - Add halted lifecycle event [\#193](https://github.com/hopsoft/stimulus_reflex/pull/193) ([seb1441](https://github.com/seb1441))
325
+ - Add halted lifecycle event [\#193](https://github.com/hopsoft/stimulus_reflex/pull/193) ([websebdev](https://github.com/websebdev))
245
326
  - 147 extract multiple checkbox values [\#175](https://github.com/hopsoft/stimulus_reflex/pull/175) ([julianrubisch](https://github.com/julianrubisch))
246
327
 
247
328
  ## [v3.2.1](https://github.com/hopsoft/stimulus_reflex/tree/v3.2.1) (2020-05-09)
@@ -280,11 +361,11 @@
280
361
  - Replace uuid4 dependency with function in repo [\#181](https://github.com/hopsoft/stimulus_reflex/pull/181) ([jonathan-s](https://github.com/jonathan-s))
281
362
  - Allow channel exceptions to be rescuable [\#180](https://github.com/hopsoft/stimulus_reflex/pull/180) ([dark-panda](https://github.com/dark-panda))
282
363
  - add console log messages for every reflex call [\#163](https://github.com/hopsoft/stimulus_reflex/pull/163) ([marcoroth](https://github.com/marcoroth))
283
- - add reflex callbacks [\#160](https://github.com/hopsoft/stimulus_reflex/pull/160) ([seb1441](https://github.com/seb1441))
364
+ - add reflex callbacks [\#160](https://github.com/hopsoft/stimulus_reflex/pull/160) ([websebdev](https://github.com/websebdev))
284
365
 
285
366
  **Fixed bugs:**
286
367
 
287
- - Pluralize the generated class name, so that will match with the file name [\#178](https://github.com/hopsoft/stimulus_reflex/pull/178) ([darkrubyist](https://github.com/darkrubyist))
368
+ - Pluralize the generated class name, so that will match with the file name [\#178](https://github.com/hopsoft/stimulus_reflex/pull/178) ([dark88888](https://github.com/dark88888))
288
369
 
289
370
  **Closed issues:**
290
371
 
@@ -1,8 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- stimulus_reflex (3.3.0.pre5)
5
- cable_ready (>= 4.1.2)
4
+ stimulus_reflex (3.4.0.pre3)
6
5
  nokogiri
7
6
  rack
8
7
  rails (>= 5.2)
@@ -11,56 +10,56 @@ PATH
11
10
  GEM
12
11
  remote: https://rubygems.org/
13
12
  specs:
14
- actioncable (6.0.3.3)
15
- actionpack (= 6.0.3.3)
13
+ actioncable (6.0.3.4)
14
+ actionpack (= 6.0.3.4)
16
15
  nio4r (~> 2.0)
17
16
  websocket-driver (>= 0.6.1)
18
- actionmailbox (6.0.3.3)
19
- actionpack (= 6.0.3.3)
20
- activejob (= 6.0.3.3)
21
- activerecord (= 6.0.3.3)
22
- activestorage (= 6.0.3.3)
23
- activesupport (= 6.0.3.3)
17
+ actionmailbox (6.0.3.4)
18
+ actionpack (= 6.0.3.4)
19
+ activejob (= 6.0.3.4)
20
+ activerecord (= 6.0.3.4)
21
+ activestorage (= 6.0.3.4)
22
+ activesupport (= 6.0.3.4)
24
23
  mail (>= 2.7.1)
25
- actionmailer (6.0.3.3)
26
- actionpack (= 6.0.3.3)
27
- actionview (= 6.0.3.3)
28
- activejob (= 6.0.3.3)
24
+ actionmailer (6.0.3.4)
25
+ actionpack (= 6.0.3.4)
26
+ actionview (= 6.0.3.4)
27
+ activejob (= 6.0.3.4)
29
28
  mail (~> 2.5, >= 2.5.4)
30
29
  rails-dom-testing (~> 2.0)
31
- actionpack (6.0.3.3)
32
- actionview (= 6.0.3.3)
33
- activesupport (= 6.0.3.3)
30
+ actionpack (6.0.3.4)
31
+ actionview (= 6.0.3.4)
32
+ activesupport (= 6.0.3.4)
34
33
  rack (~> 2.0, >= 2.0.8)
35
34
  rack-test (>= 0.6.3)
36
35
  rails-dom-testing (~> 2.0)
37
36
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
38
- actiontext (6.0.3.3)
39
- actionpack (= 6.0.3.3)
40
- activerecord (= 6.0.3.3)
41
- activestorage (= 6.0.3.3)
42
- activesupport (= 6.0.3.3)
37
+ actiontext (6.0.3.4)
38
+ actionpack (= 6.0.3.4)
39
+ activerecord (= 6.0.3.4)
40
+ activestorage (= 6.0.3.4)
41
+ activesupport (= 6.0.3.4)
43
42
  nokogiri (>= 1.8.5)
44
- actionview (6.0.3.3)
45
- activesupport (= 6.0.3.3)
43
+ actionview (6.0.3.4)
44
+ activesupport (= 6.0.3.4)
46
45
  builder (~> 3.1)
47
46
  erubi (~> 1.4)
48
47
  rails-dom-testing (~> 2.0)
49
48
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
50
- activejob (6.0.3.3)
51
- activesupport (= 6.0.3.3)
49
+ activejob (6.0.3.4)
50
+ activesupport (= 6.0.3.4)
52
51
  globalid (>= 0.3.6)
53
- activemodel (6.0.3.3)
54
- activesupport (= 6.0.3.3)
55
- activerecord (6.0.3.3)
56
- activemodel (= 6.0.3.3)
57
- activesupport (= 6.0.3.3)
58
- activestorage (6.0.3.3)
59
- actionpack (= 6.0.3.3)
60
- activejob (= 6.0.3.3)
61
- activerecord (= 6.0.3.3)
52
+ activemodel (6.0.3.4)
53
+ activesupport (= 6.0.3.4)
54
+ activerecord (6.0.3.4)
55
+ activemodel (= 6.0.3.4)
56
+ activesupport (= 6.0.3.4)
57
+ activestorage (6.0.3.4)
58
+ actionpack (= 6.0.3.4)
59
+ activejob (= 6.0.3.4)
60
+ activerecord (= 6.0.3.4)
62
61
  marcel (~> 0.3.1)
63
- activesupport (6.0.3.3)
62
+ activesupport (6.0.3.4)
64
63
  concurrent-ruby (~> 1.0, >= 1.0.2)
65
64
  i18n (>= 0.7, < 2)
66
65
  minitest (~> 5.1)
@@ -93,8 +92,8 @@ GEM
93
92
  nio4r (2.5.4)
94
93
  nokogiri (1.10.10)
95
94
  mini_portile2 (~> 2.4.0)
96
- parallel (1.19.2)
97
- parser (2.7.1.4)
95
+ parallel (1.20.0)
96
+ parser (2.7.2.0)
98
97
  ast (~> 2.4.1)
99
98
  pry (0.12.2)
100
99
  coderay (~> 1.1.0)
@@ -104,50 +103,51 @@ GEM
104
103
  rack (2.2.3)
105
104
  rack-test (1.1.0)
106
105
  rack (>= 1.0, < 3)
107
- rails (6.0.3.3)
108
- actioncable (= 6.0.3.3)
109
- actionmailbox (= 6.0.3.3)
110
- actionmailer (= 6.0.3.3)
111
- actionpack (= 6.0.3.3)
112
- actiontext (= 6.0.3.3)
113
- actionview (= 6.0.3.3)
114
- activejob (= 6.0.3.3)
115
- activemodel (= 6.0.3.3)
116
- activerecord (= 6.0.3.3)
117
- activestorage (= 6.0.3.3)
118
- activesupport (= 6.0.3.3)
106
+ rails (6.0.3.4)
107
+ actioncable (= 6.0.3.4)
108
+ actionmailbox (= 6.0.3.4)
109
+ actionmailer (= 6.0.3.4)
110
+ actionpack (= 6.0.3.4)
111
+ actiontext (= 6.0.3.4)
112
+ actionview (= 6.0.3.4)
113
+ activejob (= 6.0.3.4)
114
+ activemodel (= 6.0.3.4)
115
+ activerecord (= 6.0.3.4)
116
+ activestorage (= 6.0.3.4)
117
+ activesupport (= 6.0.3.4)
119
118
  bundler (>= 1.3.0)
120
- railties (= 6.0.3.3)
119
+ railties (= 6.0.3.4)
121
120
  sprockets-rails (>= 2.0.0)
122
121
  rails-dom-testing (2.0.3)
123
122
  activesupport (>= 4.2.0)
124
123
  nokogiri (>= 1.6)
125
124
  rails-html-sanitizer (1.3.0)
126
125
  loofah (~> 2.3)
127
- railties (6.0.3.3)
128
- actionpack (= 6.0.3.3)
129
- activesupport (= 6.0.3.3)
126
+ railties (6.0.3.4)
127
+ actionpack (= 6.0.3.4)
128
+ activesupport (= 6.0.3.4)
130
129
  method_source
131
130
  rake (>= 0.8.7)
132
131
  thor (>= 0.20.3, < 2.0)
133
132
  rainbow (3.0.0)
134
133
  rake (13.0.1)
135
134
  redis (4.2.2)
136
- regexp_parser (1.7.1)
135
+ regexp_parser (1.8.2)
137
136
  rexml (3.2.4)
138
- rubocop (0.89.1)
137
+ rubocop (1.2.0)
139
138
  parallel (~> 1.10)
140
- parser (>= 2.7.1.1)
139
+ parser (>= 2.7.1.5)
141
140
  rainbow (>= 2.2.2, < 4.0)
142
- regexp_parser (>= 1.7)
141
+ regexp_parser (>= 1.8)
143
142
  rexml
144
- rubocop-ast (>= 0.3.0, < 1.0)
143
+ rubocop-ast (>= 1.0.1)
145
144
  ruby-progressbar (~> 1.7)
146
145
  unicode-display_width (>= 1.4.0, < 2.0)
147
- rubocop-ast (0.3.0)
148
- parser (>= 2.7.1.4)
149
- rubocop-performance (1.7.1)
150
- rubocop (>= 0.82.0)
146
+ rubocop-ast (1.1.1)
147
+ parser (>= 2.7.1.5)
148
+ rubocop-performance (1.8.1)
149
+ rubocop (>= 0.87.0)
150
+ rubocop-ast (>= 0.4.0)
151
151
  ruby-progressbar (1.10.1)
152
152
  sprockets (4.0.2)
153
153
  concurrent-ruby (~> 1.0)
@@ -156,26 +156,27 @@ GEM
156
156
  actionpack (>= 4.0)
157
157
  activesupport (>= 4.0)
158
158
  sprockets (>= 3.0.0)
159
- standard (0.5.2)
160
- rubocop (~> 0.89.1)
161
- rubocop-performance (~> 1.7.1)
159
+ standard (0.9.0)
160
+ rubocop (= 1.2.0)
161
+ rubocop-performance (= 1.8.1)
162
162
  standardrb (1.0.0)
163
163
  standard
164
164
  thor (1.0.1)
165
165
  thread_safe (0.3.6)
166
- tzinfo (1.2.7)
166
+ tzinfo (1.2.8)
167
167
  thread_safe (~> 0.1)
168
168
  unicode-display_width (1.7.0)
169
169
  websocket-driver (0.7.3)
170
170
  websocket-extensions (>= 0.1.0)
171
171
  websocket-extensions (0.1.5)
172
- zeitwerk (2.4.0)
172
+ zeitwerk (2.4.1)
173
173
 
174
174
  PLATFORMS
175
175
  ruby
176
176
 
177
177
  DEPENDENCIES
178
178
  bundler (~> 2.0)
179
+ cable_ready (>= 4.3.0)
179
180
  pry
180
181
  pry-nav
181
182
  rake
data/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
  <img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-brightgreen.svg" target="_blank" />
12
12
  </a>
13
13
  <a href="http://blog.codinghorror.com/the-best-code-is-no-code-at-all/" target="_blank">
14
- <img alt="Lines of Code" src="https://img.shields.io/badge/lines_of_code-1098-brightgreen.svg?style=flat" />
14
+ <img alt="Lines of Code" src="https://img.shields.io/badge/lines_of_code-1322-brightgreen.svg?style=flat" />
15
15
  </a>
16
16
  <a href="https://docs.stimulusreflex.com/" target="_blank">
17
17
  <img alt="Documentation" src="https://img.shields.io/badge/documentation-yes-brightgreen.svg" />
@@ -27,6 +27,9 @@
27
27
  <img alt="JavaScript Code Style" src="https://img.shields.io/badge/JavaScript_Code_Style-prettier_standard-ff69b4.svg" />
28
28
  </a>
29
29
  <br />
30
+ <a href="https://www.codacy.com/manual/hopsoft/stimulus_reflex/dashboard?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=hopsoft/stimulus_reflex&amp;utm_campaign=Badge_Grade" target="_blank">
31
+ <img alt="Code Quality" src="https://app.codacy.com/project/badge/Grade/d1d72a7060f5467b8696884351cf477f"/>
32
+ </a>
30
33
  <a href="https://codeclimate.com/github/hopsoft/stimulus_reflex/maintainability" target="_blank">
31
34
  <img alt="Maintainability" src="https://api.codeclimate.com/v1/badges/2b24fdbd1ae37a24bedb/maintainability" />
32
35
  </a>
@@ -51,7 +54,7 @@ And, it's fast.
51
54
 
52
55
  It works seamlessly with the Rails tooling you already know and love.
53
56
 
54
- - Server-rendered HTML, delivered in miliseconds over the wire via Websockets
57
+ - Server-rendered HTML, delivered in milliseconds over the wire via Websockets
55
58
  - ERB templates and partials, with first-class [ViewComponent](https://github.com/github/view_component) support
56
59
  - [Russian doll caching](https://edgeguides.rubyonrails.org/caching_with_rails.html#russian-doll-caching) and [ActiveJob](https://guides.rubyonrails.org/active_job_basics.html)
57
60
  - [StimulusJS](https://stimulusjs.org/) and [Turbolinks](https://www.youtube.com/watch?v=SWEts0rlezA)
@@ -74,7 +77,7 @@ This project strives to live up to the vision outlined in [The Rails Doctrine](h
74
77
 
75
78
  ## 👩‍👩‍👧 Discord Community
76
79
 
77
- Please join over 500 of us on [Discord](https://discord.gg/XveN625) for support getting started, as well as active discussions around Rails, StimulusJS and CableReady.
80
+ Please join over 700 of us on [Discord](https://discord.gg/XveN625) for support getting started, as well as active discussions around Rails, StimulusJS and CableReady.
78
81
 
79
82
  ![](https://img.shields.io/discord/629472241427415060)
80
83
 
@@ -1,16 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module ApplicationCable
4
- class Channel < ActionCable::Channel::Base
5
- def initialize(connection, identifier, params = {})
6
- super
7
- application_channel = Rails.root.join("app", "channels", "application_cable", "channel.rb")
8
- require application_channel if File.exist?(application_channel)
9
- end
10
- end
11
- end
12
-
13
- class StimulusReflex::Channel < ApplicationCable::Channel
3
+ class StimulusReflex::Channel < StimulusReflex.configuration.parent_channel.constantize
14
4
  def stream_name
15
5
  ids = connection.identifiers.map { |identifier| send(identifier).try(:id) || send(identifier) }
16
6
  [
@@ -21,6 +11,7 @@ class StimulusReflex::Channel < ApplicationCable::Channel
21
11
 
22
12
  def subscribed
23
13
  super
14
+ fix_environment!
24
15
  stream_from stream_name
25
16
  end
26
17
 
@@ -34,20 +25,28 @@ class StimulusReflex::Channel < ApplicationCable::Channel
34
25
  reflex_name = reflex_name.end_with?("Reflex") ? reflex_name : "#{reflex_name}Reflex"
35
26
  arguments = (data["args"] || []).map { |arg| object_with_indifferent_access arg }
36
27
  element = StimulusReflex::Element.new(data)
37
- permanent_attribute_name = data["permanent_attribute_name"]
38
- params = data["params"] || {}
28
+ permanent_attribute_name = data["permanentAttributeName"]
29
+ form_data = Rack::Utils.parse_nested_query(data["formData"])
30
+ params = form_data.deep_merge(data["params"] || {})
39
31
 
40
32
  begin
41
33
  begin
42
34
  reflex_class = reflex_name.constantize.tap { |klass| raise ArgumentError.new("#{reflex_name} is not a StimulusReflex::Reflex") unless is_reflex?(klass) }
43
- reflex = reflex_class.new(self, url: url, element: element, selectors: selectors, method_name: method_name, permanent_attribute_name: permanent_attribute_name, params: params)
35
+ reflex = reflex_class.new(self,
36
+ url: url,
37
+ element: element,
38
+ selectors: selectors,
39
+ method_name: method_name,
40
+ permanent_attribute_name: permanent_attribute_name,
41
+ params: params,
42
+ reflex_id: data["reflexId"])
44
43
  delegate_call_to_reflex reflex, method_name, arguments
45
44
  rescue => invoke_error
46
45
  message = exception_message_with_backtrace(invoke_error)
47
- body = "StimulusReflex::Channel Failed to invoke #{target}! #{url} #{message}"
46
+ body = "Reflex #{target} failed: #{message} [#{url}]"
48
47
  if reflex
49
48
  reflex.rescue_with_handler(invoke_error)
50
- reflex.broadcast_message subject: "error", body: body, data: data
49
+ reflex.broadcast_message subject: "error", body: body, data: data, error: invoke_error
51
50
  else
52
51
  logger.error "\e[31m#{body}\e[0m"
53
52
  end
@@ -62,7 +61,8 @@ class StimulusReflex::Channel < ApplicationCable::Channel
62
61
  rescue => render_error
63
62
  reflex.rescue_with_handler(render_error)
64
63
  message = exception_message_with_backtrace(render_error)
65
- reflex.broadcast_message subject: "error", body: "StimulusReflex::Channel Failed to re-render #{url} #{message}", data: data
64
+ body = "Reflex failed to re-render: #{message} [#{url}]"
65
+ reflex.broadcast_message subject: "error", body: body, data: data, error: render_error
66
66
  end
67
67
  end
68
68
  ensure
@@ -105,6 +105,12 @@ class StimulusReflex::Channel < ApplicationCable::Channel
105
105
  end
106
106
 
107
107
  def exception_message_with_backtrace(exception)
108
- "#{exception} #{exception.backtrace.first}"
108
+ "#{exception}\n#{exception.backtrace.first}"
109
+ end
110
+
111
+ def fix_environment!
112
+ ([ApplicationController] + ApplicationController.descendants).each do |controller|
113
+ controller.renderer.instance_variable_set(:@env, connection.env.merge(controller.renderer.instance_variable_get(:@env)))
114
+ end
109
115
  end
110
116
  end