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?
Marsh Posté le 02-11-2019 à 17:19:40
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
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