Posté par totof2000 .
En réponse au message Système de plugins.
Évalué à 2.
Dernière modification le 19 août 2013 à 13:05.
Ca peut marcher.
Par contre j'utiliserais method_missing à la place du bloc ci-dessous :
def exists?(msg)
# vérifie si une méthode on<EVENT> existe
# et l'exécute.
meth = "on" + msg.command
send(meth, msg) if respond_to?(meth)
end
dans l'objet Plugin, tu définis la méthode method_missing qui intercepte tous les appels à on_ et qui ne fait rien si l'event est défini.
Par contre s'il s'agit d'un appel à une autre méthode => appel à la méthode method_missing du parent.
Sinon, le fait qu'il n'y ait pas trop de différence entre ce que tu as fait au début et ce que j'ai proposé vient du fait que je n'avais pas compris le besoin initial.
[^] # Re: Pour ma part, je ne passerais pas par des classes mais par des mixin
Posté par totof2000 . En réponse au message Système de plugins. Évalué à 2. Dernière modification le 19 août 2013 à 13:05.
Ca peut marcher.
Par contre j'utiliserais method_missing à la place du bloc ci-dessous :
def exists?(msg)
# vérifie si une méthode on<EVENT> existe
# et l'exécute.
meth = "on" + msg.command
send(meth, msg) if respond_to?(meth)
end
dans l'objet Plugin, tu définis la méthode method_missing qui intercepte tous les appels à on_ et qui ne fait rien si l'event est défini.
Par contre s'il s'agit d'un appel à une autre méthode => appel à la méthode method_missing du parent.
Sinon, le fait qu'il n'y ait pas trop de différence entre ce que tu as fait au début et ce que j'ai proposé vient du fait que je n'avais pas compris le besoin initial.