module Constantinopolis::RailsReloader

Public Instance Methods

active_reloader() click to toggle source
# File lib/constantinopolis/rails_reloader.rb, line 28
def active_reloader
  case Rails.version[0]
  when '4' then ActionDispatch::Reloader
  when '5' then ActiveSupport::Reloader
  when '6' then ActiveSupport::Reloader
  when '7' then ActiveSupport::Reloader
  else raise 'Unsupported rails version!'
  end
end
file_update_checker() click to toggle source
# File lib/constantinopolis/rails_reloader.rb, line 18
def file_update_checker
  case Rails.version[0]
  when '4' then ActiveSupport::FileUpdateChecker
  when '5' then Rails.application.config.file_watcher || ActiveSupport::FileUpdateChecker
  when '6' then Rails.application.config.file_watcher || ActiveSupport::FileUpdateChecker
  when '7' then Rails.application.config.file_watcher || ActiveSupport::FileUpdateChecker
  else raise 'Unsupported rails version!'
  end
end
register(klass, yml) click to toggle source
# File lib/constantinopolis/rails_reloader.rb, line 5
def register(klass, yml)
  unless Rails.env.production?
    reloader = file_update_checker.new([yml]) do
      klass.reload!
    end
    Rails.application.reloaders << reloader

    active_reloader.to_prepare do
      reloader.execute_if_updated
    end
  end
end