Class: Nyth::Reloader
- Inherits:
-
Object
- Object
- Nyth::Reloader
- Defined in:
- lib/nyth/reloader.rb
Constant Summary collapse
- RELOAD_MODES =
[true, false, :always, :changed].freeze
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(root:, lib_path: "lib", app_path: "app", reload: :changed, reload_check_interval: 5.0) ⇒ Reloader
constructor
A new instance of Reloader.
Constructor Details
#initialize(root:, lib_path: "lib", app_path: "app", reload: :changed, reload_check_interval: 5.0) ⇒ Reloader
Returns a new instance of Reloader.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/nyth/reloader.rb', line 7 def initialize(root:, lib_path: "lib", app_path: "app", reload: :changed, reload_check_interval: 5.0) validate_reload!(reload) validate_reload_check_interval!(reload_check_interval) @root = Pathname(root). @lib_root = @root.join(lib_path) @app_path = app_path @reload = reload @reload_check_interval = reload_check_interval.to_f @next_reload_check_at = monotonic_now @mutex = Mutex.new @loader = Zeitwerk::Loader.new @loader.push_dir(@lib_root) @loader.enable_reloading @loader.setup @loader.eager_load @lib_snapshot = lib_snapshot end |
Instance Method Details
#call(env) ⇒ Object
26 27 28 29 30 |
# File 'lib/nyth/reloader.rb', line 26 def call(env) reload_if_needed Application.new(root: @root, app_path: @app_path).call(env) end |