hotwire-livereload 0.1.2 → 0.1.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5bcabf2d518f67b06afa47b3b462f6d190b35ee3cfe2690148b599a0c28ba94e
4
- data.tar.gz: 87d3401bddb1a879fb40b73aaef596ff0f17ba019e421411e9a0a3ce4b6562a2
3
+ metadata.gz: 5df2481e44b656c233a0088024d87bc11fcc54ba3fd469bc5c5ef6b5ff69225f
4
+ data.tar.gz: 6550a575e2cb6d601e2b516106a155fd7805fdecb4b25a89137c56fadd78a291
5
5
  SHA512:
6
- metadata.gz: a517e60ba65450c6346e6c574ff047f12a8dd09c1b8ebaed16cb393ddaba254490869c829f022c7cc929b6d00c4c32bf0f86c3d2b0e986ac608fcad471107995
7
- data.tar.gz: 544f51ca80f96bd73d30ee582acaecf1e734e44d4132d5a1a415bb11b1f87dbc969e0885663c961554e3635a2c72080e03a6952b6abdf4f6f4e435e075f472e5
6
+ metadata.gz: 40269aa33f0c249354eb64f688461bcfde1956b0727e183c80c7c70d277040195e235110eeef12ec81a47f1261317a2a2096f4e605aa04e68c76d9ae140ca290
7
+ data.tar.gz: e792c0b4fcc371ef4c9fbb87bb7766516a4b93e54a69574c1e9fc320cbb594c06e09cf731afc2cdbdb12bebbaca7bcb8dc84ecb2c129ad41f71e79d8e8ef0aa0
@@ -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 endpoint = "/hotwire-livereload/cable";
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 files changed");
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 websocket connected");
611
+ console.log("[Hotwire::Livereload] Websocket connected");
614
612
  },
615
613
  disconnected() {
616
- console.log("Hotwire::Livereload websocket disconnected");
614
+ console.log("[Hotwire::Livereload] Websocket disconnected");
617
615
  }
618
616
  });
619
617
  })();
@@ -1,5 +1,5 @@
1
1
  class Hotwire::Livereload::ReloadChannel < ActionCable::Channel::Base
2
2
  def subscribed
3
- stream_from "reload"
3
+ stream_from "hotwire-reload"
4
4
  end
5
5
  end
@@ -1,20 +1,20 @@
1
1
  import { createConsumer } from "@rails/actioncable"
2
2
  import debounce from "debounce"
3
3
 
4
- const endpoint = "/hotwire-livereload/cable"
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 files changed")
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 websocket connected")
14
+ console.log("[Hotwire::Livereload] Websocket connected")
16
15
  },
16
+
17
17
  disconnected() {
18
- console.log("Hotwire::Livereload websocket disconnected")
18
+ console.log("[Hotwire::Livereload] Websocket disconnected")
19
19
  },
20
20
  })
@@ -28,29 +28,15 @@ 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", "views")
32
- end
33
-
34
- initializer "hotwire_livereload.cable.config" do |app|
35
- config_path = Hotwire::Livereload::Engine.root.join("config", "livereload_cable.yml")
36
- cable = Hotwire::Livereload::Engine.cable
37
-
38
- if Rails.env.development?
39
- cable.cable = app.config_for(config_path).with_indifferent_access
40
- cable.mount_path = "/cable"
41
- cable.connection_class = -> { Hotwire::Livereload::Connection }
42
- cable.logger ||= Rails.logger
43
- end
31
+ options.listen_paths << Rails.root.join("app/views")
44
32
  end
45
33
 
46
34
  config.after_initialize do |app|
47
35
  if Rails.env.development?
48
36
  @listener = Listen.to(*app.config.hotwire_livereload.listen_paths) do |modified, added, removed|
49
37
  if modified.any? || removed.any? || added.any?
50
- Hotwire::Livereload::Engine.websocket.broadcast(
51
- "reload",
52
- { modified: modified, removed: removed, added: added }
53
- )
38
+ content = { modified: modified, removed: removed, added: added }
39
+ ActionCable.server.broadcast("hotwire-reload", content)
54
40
  end
55
41
  end
56
42
  @listener.start
@@ -62,16 +48,6 @@ module Hotwire
62
48
  @listener&.stop
63
49
  end
64
50
  end
65
-
66
- class << self
67
- def websocket
68
- @websocket ||= ActionCable::Server::Base.new(config: Hotwire::Livereload::Engine.cable)
69
- end
70
-
71
- def cable
72
- @cable ||= ActionCable::Server::Configuration.new
73
- end
74
- end
75
51
  end
76
52
  end
77
53
  end
@@ -1,5 +1,5 @@
1
1
  module Hotwire
2
2
  module Livereload
3
- VERSION = "0.1.2"
3
+ VERSION = "0.1.3"
4
4
  end
5
5
  end
@@ -1,12 +1,23 @@
1
- route("mount Hotwire::Livereload::Engine, at: '/hotwire-livereload'")
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 (app_layout_path = Rails.root.join("app/views/layouts/application.html.erb")).exist?
4
- say "Add Hotwire::Livereload tag in application layout"
5
- insert_into_file app_layout_path.to_s, before: /\s*<\/head>/ do <<-HTML
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 %( Add <%= hotwire_livereload_tags %> within the <head> tag in your custom layout.)
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,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hotwire-livereload
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kirill Platonov
@@ -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
@@ -1,9 +0,0 @@
1
- class Hotwire::Livereload::Connection < ActionCable::Connection::Base
2
- identified_by :uid
3
-
4
- def connect
5
- self.uid = request.params[:uid]
6
- logger.add_tags(uid)
7
- logger.info "connected to Hotwire::Livereload"
8
- end
9
- end
@@ -1,2 +0,0 @@
1
- development:
2
- adapter: async
data/config/routes.rb DELETED
@@ -1,5 +0,0 @@
1
- Hotwire::Livereload::Engine.routes.draw do
2
- if Rails.env.development?
3
- mount Hotwire::Livereload::Engine.websocket => Hotwire::Livereload::Engine.cable.mount_path
4
- end
5
- end