diff --git a/Gemfile b/Gemfile index 5434887ba3..7f9d637970 100644 --- a/Gemfile +++ b/Gemfile @@ -57,3 +57,5 @@ if Gem.ruby_version >= Gem::Version.new("3.1.0") end gem "web-console", "~> 4.2", group: :development + +gem "rails_live_reload", "~> 0.3.5" diff --git a/config/initializers/rails_live_reload.rb b/config/initializers/rails_live_reload.rb new file mode 100644 index 0000000000..b198d424ec --- /dev/null +++ b/config/initializers/rails_live_reload.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +if defined?(RailsLiveReload) + RailsLiveReload.configure do |config| + # Default watched folders & files + config.watch %r{app/views/.+\.(erb)$} + config.watch %r{(app|vendor)/(assets|javascript)/\w+/(.+\.(s?css|coffee|js|html|png|jpg)).*}, reload: :always + + # More examples: + config.watch %r{app/(helpers|components|decorators)/.+\.rb}, reload: :always + config.watch %r{config/locales/.+\.yml}, reload: :always + end +end diff --git a/lib/alchemy/dev_support/live_reload_watcher.rb b/lib/alchemy/dev_support/live_reload_watcher.rb new file mode 100644 index 0000000000..8b0af00eea --- /dev/null +++ b/lib/alchemy/dev_support/live_reload_watcher.rb @@ -0,0 +1,5 @@ +module Alchemy + class LiveReloadWatcher < RailsLiveReload::Watcher + def root = Alchemy::Engine.root + end +end diff --git a/lib/alchemy/engine.rb b/lib/alchemy/engine.rb index 26fb0d2ab0..591bff360e 100644 --- a/lib/alchemy/engine.rb +++ b/lib/alchemy/engine.rb @@ -59,6 +59,12 @@ class Engine < Rails::Engine Alchemy.user_class.stampable(stamper_class_name: Alchemy.user_class.name) end end + + if defined?(RailsLiveReload) && Rails.env.development? + require "alchemy/dev_support/live_reload_watcher" + + Alchemy::LiveReloadWatcher.init + end end initializer "alchemy.webp-mime_type" do diff --git a/spec/dummy/config/routes.rb b/spec/dummy/config/routes.rb index 76f4be8158..b2ca0505dc 100644 --- a/spec/dummy/config/routes.rb +++ b/spec/dummy/config/routes.rb @@ -1,10 +1,8 @@ # frozen_string_literal: true Rails.application.routes.draw do + get "/login" => "login#new", :as => "login" - mount JasmineRails::Engine => "/specs" if defined?(JasmineRails) - - get '/login' => 'login#new', as: 'login' namespace :ns do resources :locations, only: :index end