cable_ready 5.0.5 → 5.0.6
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +9 -8
- data/app/assets/javascripts/cable_ready.js +18 -17
- data/app/assets/javascripts/cable_ready.umd.js +18 -17
- data/lib/cable_ready/channels.rb +10 -2
- data/lib/cable_ready/version.rb +1 -1
- data/package.json +13 -13
- data/web-test-runner.config.mjs +14 -0
- data/yarn.lock +2391 -1787
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2bfdb61c248f1ee53c44e4075c76c592526577edb8b77c917bd356d43bfbe4da
|
4
|
+
data.tar.gz: 2b8278d08827c1904d96e31c4f3ca5557371cb535fda0d9381a887c24f0a0cc0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0ca0ef3387fbf32a119fec3ea98f7b763c40e8fc45f2f76887e7d8bbff2c7b444cee0e6f3d1d46acace498a934fe797376ab084fb51c41d5d40f8805c4467080
|
7
|
+
data.tar.gz: 179cd66c5df25fcb6dd96cd5f432ff52304c49b0a35817fc589c7c64eb4ace74787fd0f3540b780e63122e52bc1f02cd367e872136248d0d2b4c723bb93a8c6f
|
data/Gemfile.lock
CHANGED
@@ -96,6 +96,7 @@ GEM
|
|
96
96
|
marcel (1.0.2)
|
97
97
|
method_source (1.0.0)
|
98
98
|
mini_mime (1.1.2)
|
99
|
+
mini_portile2 (2.8.8)
|
99
100
|
minitest (5.17.0)
|
100
101
|
mocha (2.0.2)
|
101
102
|
ruby2_keywords (>= 0.0.5)
|
@@ -108,12 +109,12 @@ GEM
|
|
108
109
|
timeout
|
109
110
|
net-smtp (0.3.3)
|
110
111
|
net-protocol
|
111
|
-
nio4r (2.
|
112
|
-
nokogiri (1.
|
112
|
+
nio4r (2.7.4)
|
113
|
+
nokogiri (1.17.2-arm64-darwin)
|
113
114
|
racc (~> 1.4)
|
114
|
-
nokogiri (1.
|
115
|
+
nokogiri (1.17.2-x86_64-darwin)
|
115
116
|
racc (~> 1.4)
|
116
|
-
nokogiri (1.
|
117
|
+
nokogiri (1.17.2-x86_64-linux)
|
117
118
|
racc (~> 1.4)
|
118
119
|
observer (0.1.2)
|
119
120
|
parallel (1.22.1)
|
@@ -124,7 +125,7 @@ GEM
|
|
124
125
|
method_source (~> 1.0)
|
125
126
|
pry-nav (1.0.0)
|
126
127
|
pry (>= 0.9.10, < 0.15)
|
127
|
-
racc (1.
|
128
|
+
racc (1.8.1)
|
128
129
|
rack (2.2.6.4)
|
129
130
|
rack-test (2.0.2)
|
130
131
|
rack (>= 1.3)
|
@@ -182,9 +183,8 @@ GEM
|
|
182
183
|
actionpack (>= 5.2)
|
183
184
|
activesupport (>= 5.2)
|
184
185
|
sprockets (>= 3.0.0)
|
185
|
-
sqlite3 (1.6.0
|
186
|
-
|
187
|
-
sqlite3 (1.6.0-x86_64-linux)
|
186
|
+
sqlite3 (1.6.0)
|
187
|
+
mini_portile2 (~> 2.8.0)
|
188
188
|
standard (1.19.1)
|
189
189
|
language_server-protocol (~> 3.17.0.2)
|
190
190
|
rubocop (= 1.39.0)
|
@@ -206,6 +206,7 @@ PLATFORMS
|
|
206
206
|
arm64-darwin-22
|
207
207
|
x86_64-darwin-19
|
208
208
|
x86_64-darwin-22
|
209
|
+
x86_64-darwin-23
|
209
210
|
x86_64-linux
|
210
211
|
|
211
212
|
DEPENDENCIES
|
@@ -2,7 +2,7 @@ import morphdom from "morphdom";
|
|
2
2
|
|
3
3
|
var name = "cable_ready";
|
4
4
|
|
5
|
-
var version = "5.0.
|
5
|
+
var version = "5.0.6";
|
6
6
|
|
7
7
|
var description = "CableReady helps you create great real-time user experiences by making it simple to trigger client-side DOM changes from server-side Ruby.";
|
8
8
|
|
@@ -48,19 +48,19 @@ var dependencies = {
|
|
48
48
|
};
|
49
49
|
|
50
50
|
var devDependencies = {
|
51
|
-
"@open-wc/testing": "^
|
52
|
-
"@rollup/plugin-json": "^6.
|
53
|
-
"@rollup/plugin-node-resolve": "^15.0
|
54
|
-
"@rollup/plugin-terser": "^0.4.
|
55
|
-
"@web/dev-server-esbuild": "^0.3
|
56
|
-
"@web/dev-server-rollup": "^0.
|
57
|
-
"@web/test-runner": "^0.
|
51
|
+
"@open-wc/testing": "^4.0.0",
|
52
|
+
"@rollup/plugin-json": "^6.1.0",
|
53
|
+
"@rollup/plugin-node-resolve": "^15.3.0",
|
54
|
+
"@rollup/plugin-terser": "^0.4.4",
|
55
|
+
"@web/dev-server-esbuild": "^1.0.3",
|
56
|
+
"@web/dev-server-rollup": "^0.6.4",
|
57
|
+
"@web/test-runner": "^0.19.0",
|
58
58
|
"prettier-standard": "^16.4.1",
|
59
|
-
rollup: "^
|
60
|
-
sinon: "^
|
61
|
-
vite: "^4.
|
62
|
-
vitepress: "^1.
|
63
|
-
"vitepress-plugin-search": "^1.0.4-alpha.
|
59
|
+
rollup: "^4.25.0",
|
60
|
+
sinon: "^19.0.2",
|
61
|
+
vite: "^5.4.10",
|
62
|
+
vitepress: "^1.5.0",
|
63
|
+
"vitepress-plugin-search": "^1.0.4-alpha.22"
|
64
64
|
};
|
65
65
|
|
66
66
|
var packageInfo = {
|
@@ -822,7 +822,7 @@ var OperationStore = {
|
|
822
822
|
|
823
823
|
let missingElement = "warn";
|
824
824
|
|
825
|
-
var MissingElement
|
825
|
+
var MissingElement = {
|
826
826
|
get behavior() {
|
827
827
|
return missingElement;
|
828
828
|
},
|
@@ -832,7 +832,7 @@ var MissingElement$1 = {
|
|
832
832
|
};
|
833
833
|
|
834
834
|
const perform = (operations, options = {
|
835
|
-
onMissingElement: MissingElement
|
835
|
+
onMissingElement: MissingElement.behavior
|
836
836
|
}) => {
|
837
837
|
const batches = {};
|
838
838
|
operations.forEach((operation => {
|
@@ -891,7 +891,7 @@ const perform = (operations, options = {
|
|
891
891
|
};
|
892
892
|
|
893
893
|
const performAsync = (operations, options = {
|
894
|
-
onMissingElement: MissingElement
|
894
|
+
onMissingElement: MissingElement.behavior
|
895
895
|
}) => new Promise(((resolve, reject) => {
|
896
896
|
try {
|
897
897
|
resolve(perform(operations, options));
|
@@ -974,7 +974,7 @@ class StreamFromElement extends SubscribingElement {
|
|
974
974
|
});
|
975
975
|
}
|
976
976
|
get onMissingElement() {
|
977
|
-
const value = this.getAttribute("missing") || MissingElement
|
977
|
+
const value = this.getAttribute("missing") || MissingElement.behavior;
|
978
978
|
// stream_from does not support raising exceptions on missing elements because there's no way to catch them
|
979
979
|
if ([ "warn", "ignore", "event" ].includes(value)) return value; else {
|
980
980
|
console.warn("Invalid 'missing' attribute. Defaulting to 'warn'.");
|
@@ -1143,6 +1143,7 @@ class UpdatesForElement extends SubscribingElement {
|
|
1143
1143
|
}
|
1144
1144
|
}
|
1145
1145
|
disconnectedCallback() {
|
1146
|
+
super.disconnectedCallback();
|
1146
1147
|
if (this.observeAppearance) {
|
1147
1148
|
this.appearanceObserver.stop();
|
1148
1149
|
}
|
@@ -4,7 +4,7 @@
|
|
4
4
|
})(this, (function(exports, morphdom) {
|
5
5
|
"use strict";
|
6
6
|
var name = "cable_ready";
|
7
|
-
var version = "5.0.
|
7
|
+
var version = "5.0.6";
|
8
8
|
var description = "CableReady helps you create great real-time user experiences by making it simple to trigger client-side DOM changes from server-side Ruby.";
|
9
9
|
var keywords = [ "ruby", "rails", "websockets", "actioncable", "cable", "ssr", "stimulus_reflex", "client-side", "dom" ];
|
10
10
|
var homepage = "https://cableready.stimulusreflex.com";
|
@@ -33,19 +33,19 @@
|
|
33
33
|
morphdom: "2.6.1"
|
34
34
|
};
|
35
35
|
var devDependencies = {
|
36
|
-
"@open-wc/testing": "^
|
37
|
-
"@rollup/plugin-json": "^6.
|
38
|
-
"@rollup/plugin-node-resolve": "^15.0
|
39
|
-
"@rollup/plugin-terser": "^0.4.
|
40
|
-
"@web/dev-server-esbuild": "^0.3
|
41
|
-
"@web/dev-server-rollup": "^0.
|
42
|
-
"@web/test-runner": "^0.
|
36
|
+
"@open-wc/testing": "^4.0.0",
|
37
|
+
"@rollup/plugin-json": "^6.1.0",
|
38
|
+
"@rollup/plugin-node-resolve": "^15.3.0",
|
39
|
+
"@rollup/plugin-terser": "^0.4.4",
|
40
|
+
"@web/dev-server-esbuild": "^1.0.3",
|
41
|
+
"@web/dev-server-rollup": "^0.6.4",
|
42
|
+
"@web/test-runner": "^0.19.0",
|
43
43
|
"prettier-standard": "^16.4.1",
|
44
|
-
rollup: "^
|
45
|
-
sinon: "^
|
46
|
-
vite: "^4.
|
47
|
-
vitepress: "^1.
|
48
|
-
"vitepress-plugin-search": "^1.0.4-alpha.
|
44
|
+
rollup: "^4.25.0",
|
45
|
+
sinon: "^19.0.2",
|
46
|
+
vite: "^5.4.10",
|
47
|
+
vitepress: "^1.5.0",
|
48
|
+
"vitepress-plugin-search": "^1.0.4-alpha.22"
|
49
49
|
};
|
50
50
|
var packageInfo = {
|
51
51
|
name: name,
|
@@ -761,7 +761,7 @@
|
|
761
761
|
}
|
762
762
|
};
|
763
763
|
let missingElement = "warn";
|
764
|
-
var MissingElement
|
764
|
+
var MissingElement = {
|
765
765
|
get behavior() {
|
766
766
|
return missingElement;
|
767
767
|
},
|
@@ -770,7 +770,7 @@
|
|
770
770
|
}
|
771
771
|
};
|
772
772
|
const perform = (operations, options = {
|
773
|
-
onMissingElement: MissingElement
|
773
|
+
onMissingElement: MissingElement.behavior
|
774
774
|
}) => {
|
775
775
|
const batches = {};
|
776
776
|
operations.forEach((operation => {
|
@@ -828,7 +828,7 @@
|
|
828
828
|
}));
|
829
829
|
};
|
830
830
|
const performAsync = (operations, options = {
|
831
|
-
onMissingElement: MissingElement
|
831
|
+
onMissingElement: MissingElement.behavior
|
832
832
|
}) => new Promise(((resolve, reject) => {
|
833
833
|
try {
|
834
834
|
resolve(perform(operations, options));
|
@@ -904,7 +904,7 @@
|
|
904
904
|
});
|
905
905
|
}
|
906
906
|
get onMissingElement() {
|
907
|
-
const value = this.getAttribute("missing") || MissingElement
|
907
|
+
const value = this.getAttribute("missing") || MissingElement.behavior;
|
908
908
|
// stream_from does not support raising exceptions on missing elements because there's no way to catch them
|
909
909
|
if ([ "warn", "ignore", "event" ].includes(value)) return value; else {
|
910
910
|
console.warn("Invalid 'missing' attribute. Defaulting to 'warn'.");
|
@@ -1062,6 +1062,7 @@
|
|
1062
1062
|
}
|
1063
1063
|
}
|
1064
1064
|
disconnectedCallback() {
|
1065
|
+
super.disconnectedCallback();
|
1065
1066
|
if (this.observeAppearance) {
|
1066
1067
|
this.appearanceObserver.stop();
|
1067
1068
|
}
|
data/lib/cable_ready/channels.rb
CHANGED
@@ -27,7 +27,7 @@ module CableReady
|
|
27
27
|
.select { |channel| channel.identifier.is_a?(String) }
|
28
28
|
.tap do |channels|
|
29
29
|
channels.each { |channel| @channels[channel.identifier].broadcast(clear: clear) }
|
30
|
-
channels.each { |channel|
|
30
|
+
channels.each { |channel| clear_channel(channel) if clear }
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
@@ -37,8 +37,16 @@ module CableReady
|
|
37
37
|
.reject { |channel| channel.identifier.is_a?(String) }
|
38
38
|
.tap do |channels|
|
39
39
|
channels.each { |channel| @channels[channel.identifier].broadcast_to(model, clear: clear) }
|
40
|
-
channels.each { |channel|
|
40
|
+
channels.each { |channel| clear_channel(channel) if clear }
|
41
41
|
end
|
42
42
|
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def clear_channel(channel)
|
47
|
+
@channels.except!(channel.identifier)
|
48
|
+
observer = CableReady.config.observers.find { |o| o.try(:identifier) == channel.identifier }
|
49
|
+
CableReady.config.delete_observer(observer) if observer
|
50
|
+
end
|
43
51
|
end
|
44
52
|
end
|
data/lib/cable_ready/version.rb
CHANGED
data/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "cable_ready",
|
3
|
-
"version": "5.0.
|
3
|
+
"version": "5.0.6",
|
4
4
|
"description": "CableReady helps you create great real-time user experiences by making it simple to trigger client-side DOM changes from server-side Ruby.",
|
5
5
|
"keywords": [
|
6
6
|
"ruby",
|
@@ -48,18 +48,18 @@
|
|
48
48
|
"morphdom": "2.6.1"
|
49
49
|
},
|
50
50
|
"devDependencies": {
|
51
|
-
"@open-wc/testing": "^
|
52
|
-
"@rollup/plugin-json": "^6.
|
53
|
-
"@rollup/plugin-node-resolve": "^15.0
|
54
|
-
"@rollup/plugin-terser": "^0.4.
|
55
|
-
"@web/dev-server-esbuild": "^0.3
|
56
|
-
"@web/dev-server-rollup": "^0.
|
57
|
-
"@web/test-runner": "^0.
|
51
|
+
"@open-wc/testing": "^4.0.0",
|
52
|
+
"@rollup/plugin-json": "^6.1.0",
|
53
|
+
"@rollup/plugin-node-resolve": "^15.3.0",
|
54
|
+
"@rollup/plugin-terser": "^0.4.4",
|
55
|
+
"@web/dev-server-esbuild": "^1.0.3",
|
56
|
+
"@web/dev-server-rollup": "^0.6.4",
|
57
|
+
"@web/test-runner": "^0.19.0",
|
58
58
|
"prettier-standard": "^16.4.1",
|
59
|
-
"rollup": "^
|
60
|
-
"sinon": "^
|
61
|
-
"vite": "^4.
|
62
|
-
"vitepress": "^1.
|
63
|
-
"vitepress-plugin-search": "^1.0.4-alpha.
|
59
|
+
"rollup": "^4.25.0",
|
60
|
+
"sinon": "^19.0.2",
|
61
|
+
"vite": "^5.4.10",
|
62
|
+
"vitepress": "^1.5.0",
|
63
|
+
"vitepress-plugin-search": "^1.0.4-alpha.22"
|
64
64
|
}
|
65
65
|
}
|
data/web-test-runner.config.mjs
CHANGED
@@ -3,8 +3,22 @@ import { fromRollup } from '@web/dev-server-rollup'
|
|
3
3
|
|
4
4
|
const json = fromRollup(rollupJson)
|
5
5
|
|
6
|
+
const filteredLogs = [
|
7
|
+
'Lit is in dev mode. Not recommended for production! See https://lit.dev/msg/dev-mode for more information.'
|
8
|
+
]
|
9
|
+
|
10
|
+
const filterBrowserLogs = (log) => {
|
11
|
+
for (const arg of log.args) {
|
12
|
+
if (typeof arg === 'string' && filteredLogs.some(l => arg.includes(l))) {
|
13
|
+
return false
|
14
|
+
}
|
15
|
+
}
|
16
|
+
return true
|
17
|
+
}
|
18
|
+
|
6
19
|
export default {
|
7
20
|
nodeResolve: true,
|
21
|
+
filterBrowserLogs,
|
8
22
|
mimeTypes: {
|
9
23
|
'**/*.json': 'js'
|
10
24
|
},
|