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
1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 |
# File 'lib/merb-core/bootloader.rb', line 1369 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
1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 |
# File 'lib/merb-core/bootloader.rb', line 1339 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 |