stimulus_reflex 3.3.0.pre6 → 3.4.0.pre3

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 (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