Author Archives: Christian Lescuyer

Wikipedia: toutes les routes mènent à Philosophie

Un nouveau mème circule : sur Wikipedia, tous les liens mènent à l’article Philosophie ou forment une boucle. Méthode Choisir un article ou cliquer sur Un article au hasard. Cliquer sur le premier lien de l’article. Nous excluons les liens techniques de Wikipedia (ex. Cet article est une ébauche etc.), les tables des matières, la phonétique… […]

Afficher le chemin complet dans la barre du Finder

Par défaut, le Finder affiche uniquement le nom du répertoire en cours comme titre de page. C’est peut-être suffisant pour votre musique, mais quand vous avez deux douzaines de projets Rails en cours (ou plusieurs branches d’un projet), ça ne vous avance pas tellement de savoir que vous êtes dans models ou dans controllers. Vous […]

RSpec have_tag et Rails assert_select cheat sheet

have_tag (RSpec) et assert_select (Rails) facilitent le test des vues grâce à une syntaxe proche de celle du CSS. Vérifions par exemple la présence d’un titre qui contient le texte Subtitle et d’un formulaire (id= »swap ») avec deux boutons radio et un bouton de soumission (class= »button_save ») : response.should have_tag(« h2 », /Subtitle/) response.should have_tag(« form#swap[method=post] ») response.should have_tag(« form#swap input[type=radio][name=?] », ‘part1’) response.should […]

Firefox 3.1 — compatibilité des add-ons

Firefox 3.1 offre bien des nouveautés intéressantes, en particulier un nouvel interpréteur de Javascript d’une extrême rapidité. La liste des évolutions entre les versions 3.0 et 3.1 est impressionnante; bien des éditeurs de logiciel en auraient fait une changement de version majeure. Mais nous utilisons aussi des modules complémentaires dont certains sont indispensables. En ce […]

Déploiement Capistrano à partir de Windows

Capistrano est un outil de déploiement puissant et facile d’emploi, dont j’ai déjà parlé. Il tourne sous Windows, Mac OS et Linux (entre autres) et est d’une mise en service aisée si l’on connait ssh et subversion. C’est pourquoi j’ai été fort (désagréablement) surpris quand mon récent cap deploy a échoué avec le message d’erreur […]

RSpec : tester le contenu d’un content_for

Une spécification de vue sous RSpec pourrait ressembler à ça : it "should render column titles" do render "/feeds/index.html.erb" response.should have_tag("tr>th", "name") response.should have_tag("tr>th", "url") end it "should render column titles" do render "/feeds/index.html.erb" response.should have_tag("tr>th", "name") response.should have_tag("tr>th", "url") end Mais cette méthode ne permet pas de tester les bribes de HTML qui sont produites […]

Capistrano – symboles :scm_user et :scm_username

Si votre nom d’utilisateur courant n’est pas celui qui vous permet d’accéder à votre système de gestion de version, vous pouvez le spécifier dans deploy.rb. Par contre, le nom de ce symbole a été harmonisé. C’était par exemple :scm_user pour Mercurial ou :p4user pour Perforce). Il faut maintenant utiliser :scm_username, au moins pour Subversion. La […]

Ruby on Rails : l’opérateur bang-bang !!

Bon, ce n’est pas vraiment un opérateur, mais l’idiome est assez répandu et peut surprendre. Il est utilisé pour convertir nil en false, ce qui peut éviter des tests spécifiques comme if variable.nil? Deux petits rappels : ! est l’opérateur de négation logique. Seuls false et nil ont la valeur booléenne FAUX. Tout le reste […]

Test des routes nommées avec RSpec

RSpec offre deux fonctions pour tester les routes. La première vérifie la génération de l’URL, étant donnés les contrôleurs, actions, etc. : route_for(:controller => ‘sessions’, :action => ‘new’).should == "/login"route_for(:controller => ‘sessions’, :action => ‘new’).should == "/login" La seconde fait la vérification inverse ; la requête active-t-elle les bons paramètres ? params_from(:get, ‘/login’).should == {:controller […]

Installation de Ruby Gems 1.3

La version 1.3 de Ruby Gems est sortie. Ne vous précipitez pas : Un bug signalé sur Windows Un problème potentiel de mise à jour : RubyGems 1.1 and 1.2 have problems upgrading… En gros, la commande ordinaire gem update –system ne marche pas. L’annonce originale est ici. Il est toujours possible de télécharger la version 1.3 […]