Salut !
Je m'amuse à faire un bot IRC et je me pose la question de comment faire pour gérer tous les messages que je reçois (qui sont des événements) à la sauce Ruby.
en gros chaque message à un type (JOIN, PASS, QUIT ...)
chaque message à des attributs équivalents (Provenance, cible)
comment rajouter des fonctionnalités selon le type du message
pour le moment, je fais un truc de ce genre
Code :
- module IRC
- module Messages
- class Message
- # base class
- end
- class Join < Message
- def channel
- end
- end
- class Quit < Message
- def reason
- end
- end
- end
- end
- # parse un message irc et instancie la classe appropriée en fonction de la commande du message.
- command = "Quit"
- if Imbot::Messages.const_defined?(command)
- klass = Imbot::Messages.const_get(command)
- klass.new
- end
|
Mais est ce une bonne idée d'utiliser const_defined/get?
Y a t'il une méthode plus propre ou efficace pour faire ce genre de choses?
en utilisant des modules par exemple pour chaque commande?
toute idée est la bienvenue, merci d'avance