module PluginPriority
Constants
- DEFAULT
- MAX
- MIN
Public Class Methods
Source
# File plugins/url.rb, line 94 def self.handler_map_for(bot) map = {} return map unless bot bot.plugins.each do |plugin_instance| priority = priority_of(plugin_instance.class) plugin_instance.handlers.each do |handler| map[handler.object_id] = priority end end map end
Public Instance Methods
Source
# File plugins/url.rb, line 20 def clamp(value) [[value.to_i, MIN].max, MAX].min end
Source
# File plugins/url.rb, line 30 def install! return if @installed Cinch::Plugin::ClassMethods.module_eval do def plugin_priority(value = nil) if value.nil? @plugin_priority.nil? ? PluginPriority::DEFAULT : PluginPriority.clamp(@plugin_priority) else @plugin_priority = PluginPriority.clamp(value) end end end Cinch::HandlerList.prepend(PluginPriorityHandlerDispatch) unless Cinch::HandlerList < PluginPriorityHandlerDispatch @installed = true end
Source
# File plugins/url.rb, line 34 def plugin_priority(value = nil) if value.nil? @plugin_priority.nil? ? PluginPriority::DEFAULT : PluginPriority.clamp(@plugin_priority) else @plugin_priority = PluginPriority.clamp(value) end end
Source
# File plugins/url.rb, line 24 def priority_of(klass) return DEFAULT unless klass.respond_to?(:plugin_priority) klass.plugin_priority end