j'ai juste regardé l'API pour l'instant, j'ai quelques remarques déjà là-dessus, je regarderai le code plus tard.
- l'argument à
play
est pas clair. Je pense que tu peux faire une configuration fluide du style :
timer.speed(2).play();
ou même
timer.play().speed(2);
ou
timer.speed(2);
timer.play();
Suffit que toutes les méthodes retournent timer
.
-
je préférerais que
stop()
fasse la même chose que tonplay(0)
(et monspeed(0)
donc ;) ) Et unresume
ferait la même chose qu'unplay(oldSpeed)
(ouspeed(oldSpeed)
avec ma proposition d'API) -
pour revenir à 0, que dirais-tu d'une méthode
reset()
? tonstop
actuel, ce serait alorstimer.stop().reset()
. -
toujours sur la conf fluide, on peut gérer duration/etc comme ça aussi :
var timer = new Timer().duration(5000).delay(1000).
Et pour récupérer une valeur, au lieu d'une propriété, ce serait la même méthode :
timer.duration()
timer.delay()
- je me dis aussi qu'on n'a pas besoin de ce
new
. On devrait pouvoir créer une nouvelle instance juste avecTimer()
:
var timer = Timer().duration(xxx);
C'est assez facile à faire si tu veux conserver la possibilité de faire le new
(jette un oeil au code de jQuery), et encore plus facile si tu veux pas garder cette possibilité.
J'ai regardé un tout ptit peu le code:
- j'enlèverais complètement ton
this.set
pour accéder aux variablesclosed
. Par contre j'aime bien la manière que t'as eu de définir ces variables, ça encapsule bien leur fonctionnement.
quelques lectures sur la configuration fluide (fluent interface): http://www.martinfowler.com/bliki/FluentInterface.html et http://en.wikipedia.org/wiki/Fluent_interface :)