hotwire-livereload 0.1.0 → 0.1.4
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/app/assets/javascripts/hotwire-livereload.js +4 -6
- data/app/channels/hotwire/livereload/reload_channel.rb +1 -1
- data/app/javascript/hotwire-livereload.js +6 -6
- data/lib/hotwire/livereload/engine.rb +14 -32
- data/lib/hotwire/livereload/version.rb +1 -1
- data/lib/install/install.rb +16 -5
- metadata +2 -5
- data/app/channels/hotwire/livereload/connection.rb +0 -9
- data/config/livereload_cable.yml +0 -2
- data/config/routes.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3f8001c1b5e1ae699af050da2c601fd29ee3242cdcdd87f1487b38d18a395978
|
4
|
+
data.tar.gz: 0fa2a43353fceb7e14908d1130cb7fcea7c71b59846888c3845e91922b5ac833
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7202fa592b12ab9ef913d0fc62979b998a53357f9d74731df1fe1990ebe1f358a628509ae4a6010ee8dec1fbcadb60281bf9e62def1e829da728af9eeb211684
|
7
|
+
data.tar.gz: 7b3b8dd4a60f103f2f2b9c673ceab137855a9ceaf583a6ed564384d1e1f617a80b06c7e751d09cdf801d583c7bea9ed60801accce6cd0c11203a1f0b9e996922
|
@@ -600,20 +600,18 @@
|
|
600
600
|
// app/javascript/hotwire-livereload.js
|
601
601
|
var import_actioncable = __toModule(require_action_cable());
|
602
602
|
var import_debounce = __toModule(require_debounce());
|
603
|
-
var
|
604
|
-
var uid = (Date.now() + (Math.random() * 100 | 0)).toString();
|
605
|
-
var consumer = (0, import_actioncable.createConsumer)(`${endpoint}?uid=${uid}`);
|
603
|
+
var consumer = (0, import_actioncable.createConsumer)();
|
606
604
|
var received = (0, import_debounce.default)(() => {
|
607
|
-
console.log("Hotwire::Livereload
|
605
|
+
console.log("[Hotwire::Livereload] Files changed");
|
608
606
|
Turbo.visit(window.location.href);
|
609
607
|
}, 300);
|
610
608
|
consumer.subscriptions.create("Hotwire::Livereload::ReloadChannel", {
|
611
609
|
received,
|
612
610
|
connected() {
|
613
|
-
console.log("Hotwire::Livereload
|
611
|
+
console.log("[Hotwire::Livereload] Websocket connected");
|
614
612
|
},
|
615
613
|
disconnected() {
|
616
|
-
console.log("Hotwire::Livereload
|
614
|
+
console.log("[Hotwire::Livereload] Websocket disconnected");
|
617
615
|
}
|
618
616
|
});
|
619
617
|
})();
|
@@ -1,20 +1,20 @@
|
|
1
1
|
import { createConsumer } from "@rails/actioncable"
|
2
2
|
import debounce from "debounce"
|
3
3
|
|
4
|
-
const
|
5
|
-
const uid = (Date.now() + ((Math.random() * 100) | 0)).toString()
|
6
|
-
const consumer = createConsumer(`${endpoint}?uid=${uid}`)
|
4
|
+
const consumer = createConsumer()
|
7
5
|
const received = debounce(() => {
|
8
|
-
console.log("Hotwire::Livereload
|
6
|
+
console.log("[Hotwire::Livereload] Files changed")
|
9
7
|
Turbo.visit(window.location.href)
|
10
8
|
}, 300)
|
11
9
|
|
12
10
|
consumer.subscriptions.create("Hotwire::Livereload::ReloadChannel", {
|
13
11
|
received,
|
12
|
+
|
14
13
|
connected() {
|
15
|
-
console.log("Hotwire::Livereload
|
14
|
+
console.log("[Hotwire::Livereload] Websocket connected")
|
16
15
|
},
|
16
|
+
|
17
17
|
disconnected() {
|
18
|
-
console.log("Hotwire::Livereload
|
18
|
+
console.log("[Hotwire::Livereload] Websocket disconnected")
|
19
19
|
},
|
20
20
|
})
|
@@ -28,46 +28,28 @@ module Hotwire
|
|
28
28
|
initializer "hotwire_livereload.set_configs" do |app|
|
29
29
|
options = app.config.hotwire_livereload
|
30
30
|
options.listen_paths = options.listen_paths.map(&:to_s)
|
31
|
-
options.listen_paths << Rails.root.join("app
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
cable = Hotwire::Livereload::Engine.cable
|
37
|
-
|
38
|
-
cable.cable = app.config_for(config_path).with_indifferent_access
|
39
|
-
cable.mount_path = "/cable"
|
40
|
-
cable.connection_class = -> { Hotwire::Livereload::Connection }
|
41
|
-
cable.logger ||= Rails.logger
|
31
|
+
options.listen_paths << Rails.root.join("app/views")
|
32
|
+
options.listen_paths << Rails.root.join("app/helpers")
|
33
|
+
if Dir.exist?(Rails.root.join("app/javascript"))
|
34
|
+
options.listen_paths << Rails.root.join("app/javascript")
|
35
|
+
end
|
42
36
|
end
|
43
37
|
|
44
38
|
config.after_initialize do |app|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
{ modified: modified, removed: removed, added: added }
|
52
|
-
)
|
39
|
+
if Rails.env.development?
|
40
|
+
@listener = Listen.to(*app.config.hotwire_livereload.listen_paths) do |modified, added, removed|
|
41
|
+
if modified.any? || removed.any? || added.any?
|
42
|
+
content = { modified: modified, removed: removed, added: added }
|
43
|
+
ActionCable.server.broadcast("hotwire-reload", content)
|
44
|
+
end
|
53
45
|
end
|
46
|
+
@listener.start
|
54
47
|
end
|
55
|
-
@listener.start
|
56
48
|
end
|
57
49
|
|
58
50
|
at_exit do
|
59
|
-
|
60
|
-
|
61
|
-
@listener&.stop
|
62
|
-
end
|
63
|
-
|
64
|
-
class << self
|
65
|
-
def websocket
|
66
|
-
@websocket ||= ActionCable::Server::Base.new(config: Hotwire::Livereload::Engine.cable)
|
67
|
-
end
|
68
|
-
|
69
|
-
def cable
|
70
|
-
@cable ||= ActionCable::Server::Configuration.new
|
51
|
+
if Rails.env.development?
|
52
|
+
@listener&.stop
|
71
53
|
end
|
72
54
|
end
|
73
55
|
end
|
data/lib/install/install.rb
CHANGED
@@ -1,12 +1,23 @@
|
|
1
|
-
|
1
|
+
APP_LAYOUT_PATH = Rails.root.join("app/views/layouts/application.html.erb")
|
2
|
+
CABLE_CONFIG_PATH = Rails.root.join("config/cable.yml")
|
2
3
|
|
3
|
-
if
|
4
|
-
say "Add Hotwire
|
5
|
-
insert_into_file
|
4
|
+
if APP_LAYOUT_PATH.exist?
|
5
|
+
say "Add Hotwire Livereload tag in application layout"
|
6
|
+
insert_into_file APP_LAYOUT_PATH, before: /\s*<\/head>/ do <<-HTML
|
6
7
|
\n <%= hotwire_livereload_tags %>
|
7
8
|
HTML
|
8
9
|
end
|
9
10
|
else
|
10
11
|
say "Default application.html.erb is missing!", :red
|
11
|
-
say %(
|
12
|
+
say %( Add <%= hotwire_livereload_tags %> within the <head> tag in your custom layout.)
|
13
|
+
end
|
14
|
+
|
15
|
+
if CABLE_CONFIG_PATH.exist?
|
16
|
+
say "Enable redis in bundle"
|
17
|
+
uncomment_lines "Gemfile", %(gem 'redis')
|
18
|
+
|
19
|
+
say "Switch development cable to use redis"
|
20
|
+
gsub_file CABLE_CONFIG_PATH.to_s, /development:\n\s+adapter: async/, "development:\n adapter: redis\n url: redis://localhost:6379/1"
|
21
|
+
else
|
22
|
+
say 'ActionCable config file (config/cable.yml) is missing. Uncomment "gem \'redis\'" in your Gemfile and create config/cable.yml to use Hotwire Livereload.'
|
12
23
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hotwire-livereload
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kirill Platonov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-09-
|
11
|
+
date: 2021-09-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -48,12 +48,9 @@ files:
|
|
48
48
|
- MIT-LICENSE
|
49
49
|
- README.md
|
50
50
|
- app/assets/javascripts/hotwire-livereload.js
|
51
|
-
- app/channels/hotwire/livereload/connection.rb
|
52
51
|
- app/channels/hotwire/livereload/reload_channel.rb
|
53
52
|
- app/helpers/hotwire/livereload/livereload_tags_helper.rb
|
54
53
|
- app/javascript/hotwire-livereload.js
|
55
|
-
- config/livereload_cable.yml
|
56
|
-
- config/routes.rb
|
57
54
|
- lib/hotwire/livereload.rb
|
58
55
|
- lib/hotwire/livereload/engine.rb
|
59
56
|
- lib/hotwire/livereload/version.rb
|
data/config/livereload_cable.yml
DELETED