From a260358b9604db6dcd8d50faf879aa1ff26aa236 Mon Sep 17 00:00:00 2001 From: Rhet Date: Wed, 23 Jun 2021 23:52:29 -0600 Subject: [PATCH 1/3] Switch to use Rails built in reloader --- Gemfile.lock | 4 ---- coprl.gemspec | 1 - lib/coprl/presenters/rails/railtie.rb | 22 ++++++---------------- lib/coprl/presenters/rails/reloader.rb | 16 ++++++++++++++++ 4 files changed, 22 insertions(+), 21 deletions(-) create mode 100644 lib/coprl/presenters/rails/reloader.rb diff --git a/Gemfile.lock b/Gemfile.lock index 65d939ff..4b8ba2f9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -84,7 +84,6 @@ PATH dry-configurable (> 0.1, <= 7.0) dry-container (~> 0.6) dry-inflector (~> 0.1) - filewatcher (~> 1.1.1) ice_nine (~> 0.11) redcarpet (~> 3.4) sinatra (>= 1.4, < 3.0) @@ -111,8 +110,6 @@ GEM dry-core (0.6.0) concurrent-ruby (~> 1.0) dry-inflector (0.2.0) - filewatcher (1.1.1) - optimist (~> 3.0) ice_nine (0.11.2) json (2.3.1) method_source (0.9.0) @@ -125,7 +122,6 @@ GEM racc (~> 1.4) nokogiri (1.11.7-x86_64-darwin) racc (~> 1.4) - optimist (3.0.1) pry (0.11.3) coderay (~> 1.1.0) method_source (~> 0.9.0) diff --git a/coprl.gemspec b/coprl.gemspec index 2bd865d3..2fcb6a31 100644 --- a/coprl.gemspec +++ b/coprl.gemspec @@ -28,7 +28,6 @@ Gem::Specification.new do |spec| spec.add_runtime_dependency 'tzinfo', '>=1.1', '< 3.0' spec.add_runtime_dependency 'tzinfo-data', '~>1.2018' spec.add_runtime_dependency 'redcarpet', '~>3.4' - spec.add_runtime_dependency 'filewatcher', '~> 1.1.1' spec.add_runtime_dependency 'zeitwerk', '~> 2.1' spec.add_development_dependency 'thor', '~> 1.1.0' diff --git a/lib/coprl/presenters/rails/railtie.rb b/lib/coprl/presenters/rails/railtie.rb index d457a629..9c4521d8 100644 --- a/lib/coprl/presenters/rails/railtie.rb +++ b/lib/coprl/presenters/rails/railtie.rb @@ -1,5 +1,3 @@ -require 'filewatcher' - module Coprl module Presenters module Rails @@ -14,21 +12,13 @@ class Railtie < ::Rails::Railtie } unless defined?(BOOT) WATCH = -> { - return unless ::Rails.env.development? - path = ::Rails.root.join('app', '**', '*.pom') - puts "Watching #{path} for changes..." - filewatcher = Filewatcher.new(path) - Thread.new(filewatcher) do |fw| - fw.watch do |f| - puts "Detected updated POM file: #{f}" - begin - BOOT.call - rescue Exception => exc - puts exc.backtrace - puts exc.message - end - end + paths = ::Rails.root.join('app', '**', '*.pom') + file_watcher = ActiveSupport::FileUpdateChecker.new(Dir[paths]) do + BOOT.call end + + ::Rails.application.reloaders << Reloader.new(file_watcher) + } unless defined?(WATCH) config.after_initialize do diff --git a/lib/coprl/presenters/rails/reloader.rb b/lib/coprl/presenters/rails/reloader.rb new file mode 100644 index 00000000..2bbeb7ff --- /dev/null +++ b/lib/coprl/presenters/rails/reloader.rb @@ -0,0 +1,16 @@ +module Coprl + module Presenters + module Rails + class Reloader + def initialize(file_watcher) + @file_watcher = file_watcher + end + + def updated? + puts "yep, changedd" + @file_watcher.execute_if_updated + end + end + end + end +end From 675f042016fc94cf1384cce66857dbc903a769b3 Mon Sep 17 00:00:00 2001 From: Rhet Date: Thu, 24 Jun 2021 08:19:01 -0600 Subject: [PATCH 2/3] remove unnecessary puts --- lib/coprl/presenters/rails/reloader.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/coprl/presenters/rails/reloader.rb b/lib/coprl/presenters/rails/reloader.rb index 2bbeb7ff..fc62a4e8 100644 --- a/lib/coprl/presenters/rails/reloader.rb +++ b/lib/coprl/presenters/rails/reloader.rb @@ -7,7 +7,6 @@ def initialize(file_watcher) end def updated? - puts "yep, changedd" @file_watcher.execute_if_updated end end From 2f873841cde09c49f5a8bfd95d4df36fce13e857 Mon Sep 17 00:00:00 2001 From: Rhet Date: Thu, 24 Jun 2021 08:54:02 -0600 Subject: [PATCH 3/3] ensure we only run this on development mode --- lib/coprl/presenters/rails/railtie.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/coprl/presenters/rails/railtie.rb b/lib/coprl/presenters/rails/railtie.rb index 9c4521d8..845c0659 100644 --- a/lib/coprl/presenters/rails/railtie.rb +++ b/lib/coprl/presenters/rails/railtie.rb @@ -12,8 +12,10 @@ class Railtie < ::Rails::Railtie } unless defined?(BOOT) WATCH = -> { - paths = ::Rails.root.join('app', '**', '*.pom') - file_watcher = ActiveSupport::FileUpdateChecker.new(Dir[paths]) do + return unless ::Rails.env.development? + + path = ::Rails.root.join('app', '**', '*.pom') + file_watcher = ActiveSupport::FileUpdateChecker.new(Dir[path]) do BOOT.call end