Method: Mud::Context#reload

Defined in:
lib/mud/context.rb

#reloadObject



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/mud/context.rb', line 24

def reload
  dirs = dirs(@dir)
  removed = @available_modules.dup

  dirs.each do |dir|
    Dir.glob(File.join(dir, '*.js')) do |mod_path|
      name = Mud::Module.parse_name(mod_path)
      mod = @available_modules[name]
      removed.delete(name)

      unless mod and mod.modified == File.mtime(mod_path) and mod.path == mod_path
        @available_modules[name] = Mud::InstalledModule.new(mod_path, self)
      end
    end
  end

  @available_modules.delete_if { |key, _| removed.key?(key) }
end