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