Skip to content
Extraits de code Groupes Projets
Valider 0ed7f553 rédigé par Alexandre Morignot's avatar Alexandre Morignot
Parcourir les fichiers

Ajout d'une méthode can_handle dans SitePlugin.

Cette méthode soulève une exception. Elle DOIT être implémentée par les
classes filles.
parent 0f511baf
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -3,9 +3,8 @@ require 'net/yail/irc_bot' ...@@ -3,9 +3,8 @@ require 'net/yail/irc_bot'
require 'site_plugin' require 'site_plugin'
# # --
# Add plugins folder to LOAD_PATH and subsequently require all plugins. # Add plugins folder to LOAD_PATH and subsequently require all plugins.
#
dir = '../plugins' dir = '../plugins'
$LOAD_PATH << dir $LOAD_PATH << dir
Dir[File.join(dir, '*.rb')].each {|file| require File.basename(file) } Dir[File.join(dir, '*.rb')].each {|file| require File.basename(file) }
......
# Implement a plugin system.
#
# Each plugin have to inherite from this class and implement a can_handle?(site) method.
class SitePlugin class SitePlugin
@@repository = [] @@repository = []
...@@ -9,7 +12,13 @@ class SitePlugin ...@@ -9,7 +12,13 @@ class SitePlugin
@@repository << target @@repository << target
end end
# Return the plugin that can handle a given site.
def self.for_site(site) def self.for_site(site)
@@repository.find {|handler| handler.can_handle? site } @@repository.find {|handler| handler.can_handle? site }
end end
# A place holder method. This method *must* be implemented in the subclasses.
def can_handle?(site)
raise "Method not implemented !"
end
end end
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter