@botmodule_triggers = Array.new
@handler = MessageMapper.new(self)
- @registry = Registry::Accessor.new(@bot, self.class.to_s.gsub(/^.*::/, ""))
+ @registry = @bot.registry_factory.create(@bot.path, self.class.to_s.gsub(/^.*::/, ''))
@manager.add_botmodule(self)
if self.respond_to?('set_language')
}
begin
newerr = err.class.new(msg)
- rescue ArgumentError => err_in_err
+ rescue ArgumentError => aerr_in_err
# Somebody should hang the ActiveSupport developers by their balls
# with barbed wire. Their MissingSourceFile extension to LoadError
# _expects_ a second argument, breaking the usual Exception interface
if err.class.respond_to? :from_message
newerr = err.class.from_message(msg)
else
- raise err_in_err
+ raise aerr_in_err
+ end
+ rescue NoMethodError => nmerr_in_err
+ # Another braindead extension to StandardError, OAuth2::Error,
+ # doesn't get a string as message, but a response
+ if err.respond_to? :response
+ newerr = err.class.new(err.response)
+ else
+ raise nmerr_in_err
end
end
newerr.set_backtrace(bt)
end
end
- did_it = load_botmodule_file("#{dir}/#{file}", "plugin")
+ begin
+ did_it = load_botmodule_file("#{dir}/#{file}", "plugin")
+ rescue Exception => e
+ error e
+ did_it = e
+ end
+
case did_it
when Symbol
processed[file.intern] = did_it
rescue Exception => err
raise if err.kind_of?(SystemExit)
error report_error("#{p.botmodule_class} #{p.name} #{method}() failed:", err)
- raise if err.kind_of?(BDB::Fatal)
end
}
else
rescue Exception => err
raise if err.kind_of?(SystemExit)
error report_error("#{p.botmodule_class} #{p.name} #{method}() failed:", err)
- raise if err.kind_of?(BDB::Fatal)
end
end
}
rescue Exception => err
raise if err.kind_of?(SystemExit)
error report_error("#{p.botmodule_class} #{p.name} privmsg() failed:", err)
- raise if err.kind_of?(BDB::Fatal)
end
debug "Successfully delegated #{m.inspect}"
return true