Plugins Rails divers

Hello,

Je ne sais plus qui à PoR m’avait demandé si je faisais des plugins et
sur
quoi. Voilà donc quelques tout petits plugins persos si ça intéresse
quelqu’un. Ils sont certainement faits à la va vite et perfectibles,
peut
être même qu’ils ne fonctionnent pas. N’hésitez pas à corriger ou
améliorer.

  • format_optional: Permet de corriger ce que j’appellerai un bug
    volontaire dans Rails 1.2. Dans une route avec “toto/:index.:format”, la
    partie :index ne peut pas être facultatif (alors qu’elle pourrait l’être
    dans une route “toto/:index/:format”). Le point est un séparateur pour
    les
    éléments d’une route mais (volontairement) pas un séparateur pour les
    éléments facultatifs. Le plugin corrige ça.

  • french_date: Je n’ai pas grand chose à faire coté localisation et
    internationnalisation donc j’ai évité les gros plugins comme globalize.
    Celui là est juste pour ajouter une méthode #french_strftime, similaire
    Ã
    #strftime, mais avec les noms de jours/mois en français

  • global_route_defaults: Le plugin intercepte l’ajout d’une route, et
    enlève tous les :requirements et les :defaults qui ne sont pas
    utiles/pertinents pour la route en train d’être ajoutée (par exemple si
    vous avez un :requirements { :toto => /a.*e/’ } mais que :toto
    n’apparait
    nulle part dans votre route). Ca vous permet de déclarer toutes les
    composantes (:requirements et :defaults) de vos routes dans un gros
    map#with_options et après de pouvoir déclarer vos routes avec un minimum
    de paramètres, uniquement ce qui est vraiment spécifique. Sans le
    plugin,
    déclarer un :requirements inutile casse :url_for, et déclarer un
    :defaults
    inutile provoque une erreur.

  • string_helper: Ajoute quelques méthodes dont j’ai l’habitude avec PHP
    et
    que je n’ai pas retrouvée dans Rails/Ruby : mise en majuscule de la
    première lettre, et troncature d’un texte sans couper au milieu d’un
    mot.

  • string_to_ascii : Prend un texte français, et retire les accents et
    cédilles (majuscules comprises). Normalement on peut le faire plus
    efficacement avec iconv et l’option translit mais depuis quelques temps
    la
    translitération de “é” me donne “'e” et plus “e” donc j’y suis allé à la
    main.

N’hésitez pas à commenter/améliorer/corriger ou à amener vos propres
petites brides de code.

Merci pour ces goodies :slight_smile:

mise en majuscule de la première lettre
Sauf erreur, on dispose de String#capitalize en Ruby standard.

Le Ven 1 décembre 2006 16:41, philippe lachaise a écrit :

mise en majuscule de la première lettre
Sauf erreur, on dispose de String#capitalize en Ruby standard.

Et je viens d’être pris en flagrant délit de réinventage de roue alors
qu’une lecture de la doc aurait été plus rapide. Les anciennes habitudes
de PHP ont la vie dûre et quand je suis fatigué j’ai tendance à tout
réécrire plutot que me forcer à lire la doc avant.

Bonne pioche Philippe


Eric D.