Category Archives: Ruby on Rails

Éditer les gems avec gemedit

La gem que vous utilisez a un comportement inattendu ? Allez lire le code ! Mais il est parfois fastidieux de trouver où est la gem, et gemedit facilite la vie en ajoutant une commande edit à gem. $ sudo gem install gemedit $ gem edit gemedit$ sudo gem install gemedit $ gem edit gemedit […]

Les ressources dans l’architecture REST : la source

Traduction de la section « Resources and Resource Identifiers » de la thèse de Roy T. Fielding. 5.2.1.1 Ressources et identificateurs de ressources La ressource est le fondement de l’abstraction de l’information dans REST. Toute information qui peut être nommée peut être une ressource : un document ou une image, un service momentané (par exemple […]

Les modifications de CSS n’apparaissent pas dans Spree

En cours de développement, vos modifications de feuilles de style n’apparaissent pas sur le site ? C’est normal ! La structure de l’application est complexe. Si vous respectez l’architecture recommandée (version 0.11), vos feuilles de styles sont dans vendor/extensions/theme_xxxx/public/stylesheets/ (si votre thème s’appelle xxxx). Le serveur web n’est pas configuré pour aller chercher les assets […]

Gérer plusieurs versions de Ruby sur Leopard

Un jour ou l’autre vous allez avoir besoin d’une gem qui exige une version plus récente de Ruby. Par exemple sqlite3. $ sudo gem install sqlite3 Password: ERROR: Error installing sqlite3: sqlite3 requires Ruby version >= 1.9.1.$ sudo gem install sqlite3 Password: ERROR: Error installing sqlite3: sqlite3 requires Ruby version >= 1.9.1. Mais vous utilisez […]

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 […]

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 […]

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 […]

Rails : chargement des données initiales dans la base de données

Il est fréquent que les applications aient besoin, pour fonctionner, de données initiales dans la base de données. Il y a plusieurs avis dans la communauté sur le moyen de charger ces données. Aucune méthode préférentielle ne se dégage. En particulier, les méthodes proposant de créer les données de test avec le code de l’application […]

Localisation de Ruby on Rails

Je suis en train de traduire les fichiers de régionalisation (l10n, de l’anglais localization) de l’application de démonstration de Clemens Kofler. L’internationalisation de Rails sera intégrée dans la version 2.2 qui est prévue pour la fin de l’année