07-06-2011, 05:28 PM
(Modification du message : 07-06-2011, 10:18 PM par Sephi-Chan.)
Je ne pense pas qu'il sois sur Devotion, mais il est venu me demander comment implémenter un tel système de commandes dans son chat.
Voici l'autre implémentation, plus efficace :
D'ailleurs j'ai noté un comportement assez curieux : sur ma machine, ce code est moins performant si j'enlève le if qui englobe ! Voici le code de benchmark et le résultat du benchmark :
Voici l'autre implémentation, plus efficace :
if message.index('/') == 0
split_messages = message.split(' ', 2)
command = split_messages[0]
arguments = split_messages[1]
case command
when '/w', '/whisper'
split_arguments = arguments.split(' ', 2)
target = split_arguments[0]
message = split_arguments[1]
# ...
when '/y', '/yell'
message = arguments
# ...
when '/sell'
split_arguments = arguments.split(' ', 4)
target = split_arguments[0]
item = split_arguments[1]
price = split_arguments[2]
message = split_arguments[3] || ''
# ...
else
# Commande non reconnue.
end
end
D'ailleurs j'ai noté un comportement assez curieux : sur ma machine, ce code est moins performant si j'enlève le if qui englobe ! Voici le code de benchmark et le résultat du benchmark :
user system total real
with regexp 0.950000 0.000000 0.950000 ( 0.950807)
without regexp 0.610000 0.000000 0.610000 ( 0.613019)
without regexp and if 1.170000 0.010000 1.180000 ( 1.175018)