Class: Merb::BootLoader::ReloadClasses
- Inherits:
-
Merb::BootLoader
- Object
- Merb::BootLoader
- Merb::BootLoader::ReloadClasses
- Defined in:
- lib/merb-core/bootloader.rb
Defined Under Namespace
Classes: TimedExecutor
Class Method Summary collapse
-
.reload(paths) ⇒ Object
Reloads all files which have been modified since they were last loaded.
-
.run ⇒ Object
Set up the class reloader if class reloading is enabled.
Methods inherited from Merb::BootLoader
after, after_app_loads, before, before_app_loads, before_master_shutdown, before_worker_shutdown, default_framework, finished?, inherited, move_klass
Class Method Details
.reload(paths) ⇒ Object
Reloads all files which have been modified since they were last loaded.
Returns
nil
:api: private
1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 |
# File 'lib/merb-core/bootloader.rb', line 1387 def self.reload(paths) paths.each do |file| next if LoadClasses::MTIMES[file] && LoadClasses::MTIMES[file] == File.mtime(file) LoadClasses.reload(file) end nil end |
.run ⇒ Object
Set up the class reloader if class reloading is enabled. This checks periodically for modifications to files loaded by the LoadClasses BootLoader and reloads them when they are modified.
Returns
nil
:api: plugin
1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 |
# File 'lib/merb-core/bootloader.rb', line 1357 def self.run return unless Merb::Config[:reload_classes] paths = [] Merb.load_paths.each do |path_name, file_info| path, glob = file_info next unless glob paths << Dir[path / glob] end if Merb.dir_for(:application) && File.file?(Merb.dir_for(:application)) paths << Merb.dir_for(:application) end paths.flatten! TimedExecutor.every(Merb::Config[:reload_time] || 0.5) do GC.start reload(paths) end nil end |