J’aime le raffinement

                  De la manière de creuser sans passer au travers

Il est souvent utile de modifier, pour un cas précis, une classe standard pour les ajouter des fonctions précises, on modifie la classe car on va devoir en faire plusieurs instances.

Typiquement dans le code de methodic http://rubygems.org/gems/methodic, j’avais besoin d’un push qui accepte les merges de tableau, tel que :

je n’ai pas fait cette ré implémentation, car je n’aime pas trop modifier des objets aussi standards que Array.
J’ai donc fait un anti-pattern que j’assume, j’ai hérité Array en List et utilisé List dans mon code, ce que réduit certes l’opérabilité de methodic (type control, validation d’input, etc…), mais qui me met a l’abri des effets de bords d’une éventuelle réécriture par un autre gems :

Avec Ruby 2.1, j’aurai fait différemment ( je le ferai probablement d’ailleurs dans une future version, dès que Ruby 2.X sera démocratisé) :

Ce qui limite ma ré-implémentation à l’espace de nom de methodic, cqfd.

Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.