cable_ready 5.0.0.pre10 → 5.0.0.rc2
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 +2 -2
- data/README.md +12 -12
- data/app/assets/javascripts/cable_ready.js +15 -11
- data/app/assets/javascripts/cable_ready.umd.js +15 -11
- data/app/jobs/{cable_ready_broadcast_job.rb → cable_ready/broadcast_job.rb} +1 -1
- data/app/models/concerns/cable_ready/updatable/collections_registry.rb +29 -5
- data/app/models/concerns/cable_ready/updatable/model_updatable_callbacks.rb +6 -4
- data/app/models/concerns/cable_ready/updatable.rb +49 -29
- data/lib/cable_ready/channel.rb +2 -2
- data/lib/cable_ready/config.rb +2 -1
- data/lib/cable_ready/engine.rb +20 -11
- data/lib/cable_ready/importmap.rb +1 -1
- data/lib/cable_ready/updatable/memory_cache_debounce_adapter.rb +22 -0
- data/lib/cable_ready/version.rb +1 -1
- data/lib/cable_ready.rb +2 -0
- data/lib/generators/cable_ready/templates/config/initializers/cable_ready.rb +5 -0
- data/lib/install/importmap.rb +1 -1
- data/lib/install/shakapacker.rb +4 -0
- data/lib/install/vite.rb +4 -0
- data/lib/install/webpacker.rb +12 -0
- data/lib/tasks/cable_ready/cable_ready.rake +6 -8
- data/package.json +13 -9
- data/rollup.config.mjs +0 -19
- data/yarn.lock +976 -122
- metadata +4 -8
- data/IMPLEMENTATION.md +0 -93
- data/app/assets/javascripts/cable_ready.min.js +0 -2
- data/app/assets/javascripts/cable_ready.min.js.map +0 -1
- data/app/assets/javascripts/cable_ready.umd.min.js +0 -2
- data/app/assets/javascripts/cable_ready.umd.min.js.map +0 -1
data/lib/install/importmap.rb
CHANGED
@@ -42,7 +42,7 @@ backup(importmap_path) do
|
|
42
42
|
|
43
43
|
if !importmap.include?("pin \"cable_ready\"")
|
44
44
|
append_file(importmap_path, <<~RUBY, verbose: false)
|
45
|
-
pin "cable_ready", to: "cable_ready.
|
45
|
+
pin "cable_ready", to: "cable_ready.js", preload: true
|
46
46
|
RUBY
|
47
47
|
say "✅ pin CableReady"
|
48
48
|
end
|
data/lib/install/shakapacker.rb
CHANGED
@@ -8,10 +8,14 @@ return if pack_path_missing?
|
|
8
8
|
lines = package_json.readlines
|
9
9
|
if !lines.index { |line| line =~ /^\s*["']@hotwired\/stimulus["']:/ }
|
10
10
|
add_package "@hotwired/stimulus@^3.2"
|
11
|
+
else
|
12
|
+
say "⏩ @hotwired/stimulus npm package is already present. Skipping."
|
11
13
|
end
|
12
14
|
|
13
15
|
if !lines.index { |line| line =~ /^\s*["']@hotwired\/stimulus-webpack-helpers["']: ["']\^1.0.1["']/ }
|
14
16
|
add_package "@hotwired/stimulus-webpack-helpers@^1.0.1"
|
17
|
+
else
|
18
|
+
say "⏩ @hotwired/stimulus-webpack-helpers npm package is already present. Skipping."
|
15
19
|
end
|
16
20
|
|
17
21
|
step_path = "/app/javascript/controllers/"
|
data/lib/install/vite.rb
CHANGED
@@ -8,10 +8,14 @@ return if pack_path_missing?
|
|
8
8
|
lines = package_json.readlines
|
9
9
|
if !lines.index { |line| line =~ /^\s*["']@hotwired\/stimulus["']:/ }
|
10
10
|
add_package "@hotwired/stimulus@^3.2"
|
11
|
+
else
|
12
|
+
say "⏩ @hotwired/stimulus npm package is already present. Skipping."
|
11
13
|
end
|
12
14
|
|
13
15
|
if !lines.index { |line| line =~ /^\s*["']stimulus-vite-helpers["']: ["']\^3["']/ }
|
14
16
|
add_package "stimulus-vite-helpers@^3"
|
17
|
+
else
|
18
|
+
say "⏩ @stimulus-vite-helpers npm package is already present. Skipping."
|
15
19
|
end
|
16
20
|
|
17
21
|
step_path = "/app/javascript/controllers/"
|
data/lib/install/webpacker.rb
CHANGED
@@ -8,26 +8,38 @@ return if pack_path_missing?
|
|
8
8
|
lines = package_json.readlines
|
9
9
|
if !lines.index { |line| line =~ /^\s*["']webpack["']: ["']\^4.46.0["']/ }
|
10
10
|
add_package "webpack@^4.46.0"
|
11
|
+
else
|
12
|
+
say "⏩ webpack npm package is already present. Skipping."
|
11
13
|
end
|
12
14
|
|
13
15
|
if !lines.index { |line| line =~ /^\s*["']webpack-cli["']: ["']\^3.3.12["']/ }
|
14
16
|
add_package "webpack-cli@^3.3.12"
|
17
|
+
else
|
18
|
+
say "⏩ webpack-cli npm package is already present. Skipping."
|
15
19
|
end
|
16
20
|
|
17
21
|
if !lines.index { |line| line =~ /^\s*["']@rails\/webpacker["']: ["']\^5.4.3["']/ }
|
18
22
|
add_package "@rails/webpacker@^5.4.3"
|
23
|
+
else
|
24
|
+
say "⏩ @rails/webpacker npm package is already present. Skipping."
|
19
25
|
end
|
20
26
|
|
21
27
|
if !lines.index { |line| line =~ /^\s*["']@hotwired\/stimulus["']:/ }
|
22
28
|
add_package "@hotwired/stimulus@^3.2"
|
29
|
+
else
|
30
|
+
say "⏩ @hotwired/stimulus npm package is already present. Skipping."
|
23
31
|
end
|
24
32
|
|
25
33
|
if !lines.index { |line| line =~ /^\s*["']@hotwired\/stimulus-webpack-helpers["']: ["']\^1.0.1["']/ }
|
26
34
|
add_package "@hotwired/stimulus-webpack-helpers@^1.0.1"
|
35
|
+
else
|
36
|
+
say "⏩ @hotwired/stimulus-webpack-helpers npm package is already present. Skipping."
|
27
37
|
end
|
28
38
|
|
29
39
|
if !lines.index { |line| line =~ /^\s*["']webpack-dev-server["']: ["']\^3.11.3["']/ }
|
30
40
|
add_dev_package "webpack-dev-server@^3.11.3"
|
41
|
+
else
|
42
|
+
say "⏩ @webpack-dev-server is already present. Skipping."
|
31
43
|
end
|
32
44
|
|
33
45
|
step_path = "/app/javascript/controllers/"
|
@@ -1,11 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
include Rails.application.routes.url_helpers
|
4
|
-
|
5
3
|
CR_STEPS = {
|
6
4
|
"action_cable" => "Action Cable",
|
7
|
-
"webpacker" => "CableReady using Webpacker",
|
8
|
-
"shakapacker" => "CableReady using Shakapacker",
|
5
|
+
"webpacker" => "Install CableReady using Webpacker",
|
6
|
+
"shakapacker" => "Install CableReady using Shakapacker",
|
9
7
|
"npm_packages" => "Install CableReady npm package",
|
10
8
|
"importmap" => "Install CableReady using importmaps",
|
11
9
|
"esbuild" => "Install CableReady using esbuild",
|
@@ -13,11 +11,11 @@ CR_STEPS = {
|
|
13
11
|
"initializers" => "Generate and configure initializer",
|
14
12
|
"development" => "development environment configuration",
|
15
13
|
"spring" => "Disable spring gem. Spring has been removed from Rails 7",
|
16
|
-
"mrujs" => "Swap out UJS for mrujs",
|
14
|
+
"mrujs" => "Swap out Rails UJS for mrujs",
|
17
15
|
"broadcaster" => "Make CableReady::Broadcaster available to channels, controllers, jobs and models",
|
18
16
|
"updatable" => "Include CableReady::Updatable in Active Record model classes",
|
19
|
-
"vite" => "CableReady using Vite",
|
20
|
-
"compression" => "Compress
|
17
|
+
"vite" => "Install CableReady using Vite",
|
18
|
+
"compression" => "Compress WebSocket traffic with gzip"
|
21
19
|
}
|
22
20
|
|
23
21
|
CR_BUNDLERS = {
|
@@ -219,7 +217,7 @@ namespace :cable_ready do
|
|
219
217
|
end
|
220
218
|
|
221
219
|
desc <<~DESC
|
222
|
-
|
220
|
+
Run specific CableReady install steps
|
223
221
|
|
224
222
|
#{CR_STEPS.sort.map { |step, description| "#{step.ljust(20)} #{description}" }.join("\n")}
|
225
223
|
DESC
|
data/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "cable_ready",
|
3
|
-
"version": "5.0.0-
|
3
|
+
"version": "5.0.0-rc2",
|
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",
|
@@ -35,13 +35,14 @@
|
|
35
35
|
"javascript/*"
|
36
36
|
],
|
37
37
|
"scripts": {
|
38
|
-
"lint": "yarn run
|
39
|
-
"format": "yarn run prettier-standard
|
40
|
-
"prettier-standard:check": "yarn run prettier-standard --check ./javascript/**/*.js rollup.config.js",
|
41
|
-
"prettier-standard:format": "yarn run prettier-standard ./javascript/**/*.js rollup.config.js",
|
38
|
+
"lint": "yarn run format --check",
|
39
|
+
"format": "yarn run prettier-standard ./javascript/**/*.js rollup.config.mjs",
|
42
40
|
"build": "yarn rollup -c",
|
43
41
|
"watch": "yarn rollup -wc",
|
44
|
-
"test": "web-test-runner javascript/test/**/*.test.js"
|
42
|
+
"test": "web-test-runner javascript/test/**/*.test.js",
|
43
|
+
"docs:dev": "vitepress dev docs",
|
44
|
+
"docs:build": "vitepress build docs && cp ./docs/_redirects ./docs/.vitepress/dist",
|
45
|
+
"docs:preview": "vitepress preview docs"
|
45
46
|
},
|
46
47
|
"dependencies": {
|
47
48
|
"morphdom": "2.6.1"
|
@@ -53,9 +54,12 @@
|
|
53
54
|
"@rollup/plugin-terser": "^0.4.0",
|
54
55
|
"@web/dev-server-esbuild": "^0.3.3",
|
55
56
|
"@web/dev-server-rollup": "^0.3.21",
|
56
|
-
"@web/test-runner": "^0.15.
|
57
|
+
"@web/test-runner": "^0.15.1",
|
57
58
|
"prettier-standard": "^16.4.1",
|
58
|
-
"rollup": "^3.
|
59
|
-
"sinon": "^15.0.
|
59
|
+
"rollup": "^3.19.1",
|
60
|
+
"sinon": "^15.0.2",
|
61
|
+
"vite": "^4.1.4",
|
62
|
+
"vitepress": "^1.0.0-alpha.56",
|
63
|
+
"vitepress-plugin-search": "^1.0.4-alpha.19"
|
60
64
|
}
|
61
65
|
}
|
data/rollup.config.mjs
CHANGED
@@ -14,13 +14,6 @@ const pretty = () => {
|
|
14
14
|
})
|
15
15
|
}
|
16
16
|
|
17
|
-
const minify = () => {
|
18
|
-
return terser({
|
19
|
-
mangle: true,
|
20
|
-
compress: true
|
21
|
-
})
|
22
|
-
}
|
23
|
-
|
24
17
|
const esConfig = {
|
25
18
|
format: 'es',
|
26
19
|
inlineDynamicImports: true
|
@@ -43,22 +36,10 @@ const output = distFolders
|
|
43
36
|
file: `${distFolder}/${baseName}.js`,
|
44
37
|
plugins: [pretty()]
|
45
38
|
},
|
46
|
-
{
|
47
|
-
...esConfig,
|
48
|
-
file: `${distFolder}/${baseName}.min.js`,
|
49
|
-
sourcemap: true,
|
50
|
-
plugins: [minify()]
|
51
|
-
},
|
52
39
|
{
|
53
40
|
...umdConfig,
|
54
41
|
file: `${distFolder}/${baseName}.umd.js`,
|
55
42
|
plugins: [pretty()]
|
56
|
-
},
|
57
|
-
{
|
58
|
-
...umdConfig,
|
59
|
-
file: `${distFolder}/${baseName}.umd.min.js`,
|
60
|
-
sourcemap: true,
|
61
|
-
plugins: [minify()]
|
62
43
|
}
|
63
44
|
])
|
64
45
|
.flat()
|