lib/plugin_manager.rb in plugin_manager-1 vs lib/plugin_manager.rb in plugin_manager-1.1

- old
+ new

@@ -4,11 +4,11 @@ require 'plugin_manager/plugin' require 'plugin_manager/plugin_definition' require 'plugin_manager/definition_builder' class PluginManager - attr_reader :unreadable_definitions, :plugins_with_errors, :loaded_plugins + attr_reader :unreadable_definitions, :plugins_with_errors, :loaded_plugins, :unloaded_plugins def initialize @unloaded_plugins = [] @loaded_plugins = [] @unreadable_definitions = [] @@ -26,12 +26,14 @@ definition_files.map do |file| begin definition = instance_eval(File.read(file)) definition.definition_file = File.expand_path(file) definition - rescue Object + rescue Object => e puts "Unreadable plugin definition: #{file}" + puts " " + e.message + puts e.backtrace.map {|l| " " + l } @unreadable_definitions << file nil end end.compact.sort_by {|p| p.name.downcase } @unloaded_plugins += new_definitions @@ -41,17 +43,18 @@ previous_length = @unloaded_plugins.length + 1 while previous_length > @unloaded_plugins.length previous_length = @unloaded_plugins.length if plugin = next_to_load begin + puts "[PluginManager] loading #{plugin.name}" if ENV["PLUGIN_DEBUG"] plugin.load + @loaded_plugins << plugin rescue Object => e - puts "Error loading plugin: #{plugin}" + puts "Error loading plugin: #{plugin.inspect}" puts " " + e.message puts e.backtrace.map {|l| " " + l } @plugins_with_errors << plugin end - @loaded_plugins << plugin @unloaded_plugins.delete(plugin) end end end