Du nouveau
Cet après midi, je voulais aller faire de l'escalade. A cause d'élections, de mauvais temps et de manque de copain grimpeur, je me suit résolu (à regret, vous imaginez bien) à faire le geek.
Alors du coup j'ai fais quelques modifications à ce site.
Passage à Mephisto edge
Le truc, c'est que je voulais utiliser certains plugins de mephisto. Et les plugins que je voulais ne fonctionnent qu'avec la dernière verison de Mephisto.
svn export http://svn.techno-weenie.net/projects/mephisto/trunk
Seulement ce n'est pas si facile. Cette dernière version de mephisto fonctionne avec Rails 2.0.2, mais a besoin de rake 0.8.1.
Et Mon hebergeur (Dreamhost) ne possède que la version 0.7.3.
J'ai donc un peu triché et installé le gem rake 0.8.1 sur mon compte Dreamhost.
D'abord, mettre à jours les variables d'environement pour nos futures gems perso (terminer le cat par un ctrl+D) :
$ mkdir ~/.gems
$ cat >> ~/.bash_profile
export GEM_HOME=$HOME/.gems
export GEM_PATH=$GEM_HOME:/usr/lib/ruby/gems/1.8
Ensuite mettre à jour les variable de gem pour qu'il aille chercher dans nos gems perso (terminer le cat par un ctrl+D):
$ cat >> ~/.gmrc
gemhome: ~/.gems
gempath:
- ~/.gems
- /usr/lib/ruby/gems/1.8
Dire à l'application Rails qu'il y a d'autres gems dans la vie : ajouter au fichier RAILS_ROOT/config/environment.rb
ENV['GEM_PATH'] = File.expand_path('~/.gems') + ':/usr/lib/ruby/gems/1.8'
Installer ses gem :
$ gem install rake
Des dates en français
J'en avais marre des "march, 9th 2008". C'est pas très cohérent avec le reste. Et comme dirais mon maître de stage :
"Consitency is the key"
Donc un petit ajout pour avoir les dates en français dans rails. J'ai créé un fichier french_dates.rb dans RAILS_ROOT/lib/ que j'ai remplis avec mes modifications aux classes Date et Time :
class Date
alias :strftime_nolocale :strftime
FR_ABBR_DAYNAMES = %w(Dim Lun Mar Mer Jeu Ven Sam)
FR_MONTHNAMES = [
nil, "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"]
FR_ABBR_MONTHNAMES = [
nil, "jan", "fév", "mar", "avr", "mai", "jun", "jui", "aoû", "sep", "oct", "nov", "déc"]
FR_DAYNAMES = %w(Dimanche Lundi Mardi Mercredi Jeudi Vendredi Samedi)
def strftime(format)
format = format.dup
format.gsub!(/%a/, Date::FR_ABBR_DAYNAMES[self.wday])
format.gsub!(/%A/, Date::FR_DAYNAMES[self.wday])
format.gsub!(/%b/, Date::FR_ABBR_MONTHNAMES[self.mon])
format.gsub!(/%B/, Date::FR_MONTHNAMES[self.mon])
self.strftime_nolocale(format)
end
end
class Time
alias :strftime_nolocale :strftime
def strftime(format)
format = format.dup
format.gsub!(/%a/, Date::FR_ABBR_DAYNAMES[self.wday])
format.gsub!(/%A/, Date::FR_DAYNAMES[self.wday])
format.gsub!(/%b/, Date::FR_ABBR_MONTHNAMES[self.mon])
format.gsub!(/%B/, Date::FR_MONTHNAMES[self.mon])
self.strftime_nolocale(format)
end
end
J'ai ensuite dit à mon application Rails de charger ces additions à partir du fichier RAILS_ROOT/config/environment.rb
J'ai eu un bug avec DreamHost (finalement, on peut leur reprocher des choses, hein), que je n'ai pu contourner qu'en déplaçant mon code dans un fichier lib déjà créé dans mon application Mephisto et en n'utilisant pas le fichier nouvellement créé. Sans cela, fastcgi n'arrive pas a démarrer proprement (erreur 500, application error, toussa)... Faudra que je fouille cela plus tard.
Un peu de routing
En regardant mes logs, je me suis aperçu que des gens suivaient mon flux RSS. Oui, mais l'ancien (http://imeuble.info/blog/rss.php). J'ai donc ajouté une route pour rediriger cette url vers la nouvelle (http://imeuble.info/feed/atom.xml).
La prochaine étape sera de rediriger les pages des anciens articles vers les nouvelles url (donc d'importer les anciens article sur la plate-forme Mephisto).
Coloration Syntaxique
J'ai aussi ajouté de la coloration syntaxique dans les bout de code qui seront mis sur ce blog. Je me suis inspiré pour cela du plugin de Dan Webb, filtered_column_code_highlighter.
Il s'agit d'un code javascript qui parse un text suivant une certaine grammaire (à l'aide de regex) et ajoute des span de bonne classe aux éléments trouvés. Le classe correspondent ensuite à une CSS donnée.






Sunny dit
le Lundi 10 mars 2008 à 23h11
Bravo pour le mephistage et merci pour le reroutage :)
manu dit
le Mardi 29 avril 2008 à 09h09
Ca me semble bien sale de redéfinir tes constantes pour ensuite appeler strftimenolocale. Ca ne serait pas plus simple de forcer ta locale à frFR, tout bêtement? Bon après je ne connais rien à ruby, mais en python ça serait peanuts:
% python Python 2.5.2 (r252:60911, Apr 17 2008, 13:15:05) [GCC 4.2.3 (Debian 4.2.3-3)] on hades Type "help", "copyright", "credits" or "license" for more information.
manu dit
le Mardi 29 avril 2008 à 09h09
Euh, beurk, désolé pour le bruit, Markdown m'a tué...
Sinon, je lisais justement que dans ruby 1.8.6, tes constantes sont 'frozen', tu l'as donc dans le baba gros dégoutant :-)
(hop, on se la refait en propre)