Je me suis inspiré de ce que tu m'as proposé avec les modules.
Je sais pas si çà apporte grand chose en fait, j'ai repris le même principe que dans mon premier exemple pour accéder aux méthodes.
# main.rbmoduleIRCmoduleBasePlugin# chaque classe qui inclut ce module# est automatiquement instanciée et stockée# dans Bot::plugins.defself.included(pl)Bot::plugins<<pl.newenddefexists?(msg)# vérifie si une méthode on<EVENT> existe# et l'exécute.meth="on"+msg.commandsend(meth,msg)ifrespond_to?(meth)endendclassBotMessage=Struct.new(:command)@@plugins=[]defself.plugins@@pluginsenddefinitializeDir["./plugins/*.rb"].each{|pl|requirepl}enddefrun(event)msg=Message.new(event)@@plugins.eachdo|pl|pl.exists?(msg)endendendendIRC::Bot.new.run("JOIN")IRC::Bot.new.run("PART")
En fait j'ai fait quasiment la même chose, au lieu d'hériter d'une classe, j'inclus un module.
Je pense que je vais utiliser une classe toute simple comme base pour les plugins, çà me parait plus simple.
[^] # Re: Pour ma part, je ne passerais pas par des classes mais par des mixin
Posté par Foo . En réponse au message Système de plugins. Évalué à 0.
Je me suis inspiré de ce que tu m'as proposé avec les modules.
Je sais pas si çà apporte grand chose en fait, j'ai repris le même principe que dans mon premier exemple pour accéder aux méthodes.
En fait j'ai fait quasiment la même chose, au lieu d'hériter d'une classe, j'inclus un module.
Je pense que je vais utiliser une classe toute simple comme base pour les plugins, çà me parait plus simple.