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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +85 -4
- data/Gemfile.lock +69 -68
- data/README.md +6 -3
- data/{lib → app/channels}/stimulus_reflex/channel.rb +24 -18
- data/lib/generators/stimulus_reflex/config_generator.rb +14 -0
- data/lib/generators/{stimulus_reflex_generator.rb → stimulus_reflex/stimulus_reflex_generator.rb} +0 -0
- data/lib/generators/{templates → stimulus_reflex/templates}/app/javascript/controllers/%file_name%_controller.js.tt +0 -0
- data/lib/generators/{templates → stimulus_reflex/templates}/app/javascript/controllers/application_controller.js.tt +0 -0
- data/lib/generators/{templates → stimulus_reflex/templates}/app/reflexes/%file_name%_reflex.rb.tt +0 -0
- data/lib/generators/{templates → stimulus_reflex/templates}/app/reflexes/application_reflex.rb.tt +0 -0
- data/lib/generators/stimulus_reflex/templates/config/initializers/stimulus_reflex.rb +10 -0
- data/lib/stimulus_reflex.rb +1 -2
- data/lib/stimulus_reflex/broadcasters/broadcaster.rb +3 -7
- data/lib/stimulus_reflex/broadcasters/page_broadcaster.rb +2 -2
- data/lib/stimulus_reflex/broadcasters/selector_broadcaster.rb +2 -2
- data/lib/stimulus_reflex/configuration.rb +24 -0
- data/lib/stimulus_reflex/element.rb +8 -0
- data/lib/stimulus_reflex/reflex.rb +24 -20
- data/lib/stimulus_reflex/sanity_checker.rb +69 -18
- data/lib/stimulus_reflex/version.rb +1 -1
- data/lib/tasks/stimulus_reflex/install.rake +12 -8
- data/package.json +63 -0
- data/stimulus_reflex.gemspec +40 -0
- data/tags +98 -0
- data/test/generators/stimulus_reflex_generator_test.rb +1 -0
- data/test/tmp/app/reflexes/application_reflex.rb +12 -0
- data/test/tmp/app/reflexes/user_reflex.rb +33 -0
- data/yarn.lock +6256 -0
- metadata +38 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 344e0b60c7f18f467821263a5758cc37843cfae000430754ed89d34214363ff3
|
4
|
+
data.tar.gz: a49f8d18df8d0e2f4d664a70690fd562fd7d4fcc9db3f22d7821f96f67dee03d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd85f6455c20f2cad48a8e4c7bda0fe6e46e50fa6bb39d2c67c128a899edd96d815798b913b928ae08c75fb8f55421483249f6acec34e26428a7114fa7e3eb67
|
7
|
+
data.tar.gz: 3fbb2e6be0b867db5c05997aa0727642e0298d0c13ad14e31c3f811ca4e6b4188db5154ea0c7ada5aeca8a3fb456c6998e35d0f4616e3fa03c636fc710b33056
|
data/CHANGELOG.md
CHANGED
@@ -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.
|
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) ([
|
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) ([
|
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) ([
|
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
|
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
stimulus_reflex (3.
|
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.
|
15
|
-
actionpack (= 6.0.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.
|
19
|
-
actionpack (= 6.0.3.
|
20
|
-
activejob (= 6.0.3.
|
21
|
-
activerecord (= 6.0.3.
|
22
|
-
activestorage (= 6.0.3.
|
23
|
-
activesupport (= 6.0.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.
|
26
|
-
actionpack (= 6.0.3.
|
27
|
-
actionview (= 6.0.3.
|
28
|
-
activejob (= 6.0.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.
|
32
|
-
actionview (= 6.0.3.
|
33
|
-
activesupport (= 6.0.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.
|
39
|
-
actionpack (= 6.0.3.
|
40
|
-
activerecord (= 6.0.3.
|
41
|
-
activestorage (= 6.0.3.
|
42
|
-
activesupport (= 6.0.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.
|
45
|
-
activesupport (= 6.0.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.
|
51
|
-
activesupport (= 6.0.3.
|
49
|
+
activejob (6.0.3.4)
|
50
|
+
activesupport (= 6.0.3.4)
|
52
51
|
globalid (>= 0.3.6)
|
53
|
-
activemodel (6.0.3.
|
54
|
-
activesupport (= 6.0.3.
|
55
|
-
activerecord (6.0.3.
|
56
|
-
activemodel (= 6.0.3.
|
57
|
-
activesupport (= 6.0.3.
|
58
|
-
activestorage (6.0.3.
|
59
|
-
actionpack (= 6.0.3.
|
60
|
-
activejob (= 6.0.3.
|
61
|
-
activerecord (= 6.0.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.
|
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.
|
97
|
-
parser (2.7.
|
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.
|
108
|
-
actioncable (= 6.0.3.
|
109
|
-
actionmailbox (= 6.0.3.
|
110
|
-
actionmailer (= 6.0.3.
|
111
|
-
actionpack (= 6.0.3.
|
112
|
-
actiontext (= 6.0.3.
|
113
|
-
actionview (= 6.0.3.
|
114
|
-
activejob (= 6.0.3.
|
115
|
-
activemodel (= 6.0.3.
|
116
|
-
activerecord (= 6.0.3.
|
117
|
-
activestorage (= 6.0.3.
|
118
|
-
activesupport (= 6.0.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.
|
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.
|
128
|
-
actionpack (= 6.0.3.
|
129
|
-
activesupport (= 6.0.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.
|
135
|
+
regexp_parser (1.8.2)
|
137
136
|
rexml (3.2.4)
|
138
|
-
rubocop (
|
137
|
+
rubocop (1.2.0)
|
139
138
|
parallel (~> 1.10)
|
140
|
-
parser (>= 2.7.1.
|
139
|
+
parser (>= 2.7.1.5)
|
141
140
|
rainbow (>= 2.2.2, < 4.0)
|
142
|
-
regexp_parser (>= 1.
|
141
|
+
regexp_parser (>= 1.8)
|
143
142
|
rexml
|
144
|
-
rubocop-ast (>= 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 (
|
148
|
-
parser (>= 2.7.1.
|
149
|
-
rubocop-performance (1.
|
150
|
-
rubocop (>= 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.
|
160
|
-
rubocop (
|
161
|
-
rubocop-performance (
|
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.
|
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.
|
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-
|
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&utm_medium=referral&utm_content=hopsoft/stimulus_reflex&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
|
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
|
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
|

|
80
83
|
|
@@ -1,16 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
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["
|
38
|
-
|
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,
|
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 = "
|
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
|
-
|
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}
|
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
|