weewar.com corner

Translating day and month names in Ruby

Posted by alex on May 24, 2007

A few days ago, I ran into a problem translating the day and monthnames in the ruby “Date” class. The howtos I read recommended using replace to modify the array constants. That did not work, because these days, those arrays are frozen, making them immutable.

My first solution was to just comment out the part, where the arrays are frozen, but then everyone working on the code has to fiddle with the core ruby installation. Not a very clean solution.

Luckily, I found the remove_const method. Using that, the constants in Date can be easily exchanged for the translated version:

Date.send(:remove_const, "ABBR_DAYNAMES") Date.const_set("ABBR_DAYNAMES", [ _("sun"), _("mon"), _("tue"), _("wed"), _("thu"), _("fri"), _("sat") ]) Date.send(:remove_const, "DAYNAMES") Date.const_set("DAYNAMES", [_("Sunday"), _("Monday"), _("Tuesday"), _("Wednesday"), _("Thursday"), _("Friday"), _("Saturday") ]) Date.send(:remove_const, "ABBR_MONTHNAMES") Date.const_set("ABBR_MONTHNAMES", [nil, _("Jan"), _("Feb"), _("Mar"), _("Apr"), _("May"), _("Jun"), _("Jul"),_("Aug"),_("Sep"), _("Oct"), _("Nov"), _("Dec") ]) Date.send(:remove_const, "MONTHNAMES") Date.const_set("MONTHNAMES", [nil, _("January"), _("February"), _("March"), _("April"), _("May"), _("June"), _("July"),_("August"),_("September"), _("October"), _("November"), _("December") ])

Rails vs. Mason

Posted by alex on October 06, 2006

Heute wurde die Hardware von meinem alten Dedi-Server von 2004 ausgetauscht gegen die aktuelle Version.

Damit verbunden ist dann auch gleich ein OS-Wechsel, weg von Redhat 9 zu Debian 3.1. Damit sehe ich dann auch etwas beruhigter in die Zukunft, da die Security-Updates da wohl noch ne Weile kommen werden.

Während ich jetzt gerade das ganze Perl-Geraffel installiere, um die Mason-basierten Webseiten ans Laufen zu kriegen, merke ich erstmal, was für ein grausames Ding das eigentlich ist.

Längerer Kontakt mit Ruby on Rails hinterläßt halt doch seine Spuren. Da wird man teilweise richtig verwöhnt.

Wenn ich sehe, wie viele externe Pakete ich für Mason installieren muß, würde ich am liebsten sofort alle Webseiten auf Rails umstellen. So viel Arbeit, so wenig Zeit…

Livin’ on the edge

Posted by alex on November 26, 2005

Seit gerade eben läuft dieses Blog wieder mit der aktuellsten trunk-Version von Typo. Sollte also irgendwo was nicht richtig laufen, liegt das bestimmt daran. :)

Was ich sehr positiv fand: Die Admin-Oberfläche erkennt, daß die DB-Struktur veraltet war und bietet direkt an, die fälligen Migrationen auf Knopfdruck durchzuführen.

Rails regelt

Posted by alex on October 29, 2005

Heute bin ich endlich mal dazu gekommen, mich ausgiebig mit Ruby on Rails auseinanderzusetzen.

Ich hab zwar schon das Rails-Buch und jede Menge How-Tos gelesen, aber heute hab ich zum ersten Mal eine komplett neue Applikation in Rails angefangen. Zwar nur eine sehr simple Sache mit 2 Datenbanktabellen, aber schon da merkt man, was man an Rails hat.

Am meisten hat mich beindruckt, was ich alles nicht programmieren mußte. Die Inhalte der Tabellen sollen vom Benutzer sortierbar sein, daher gibt es eine Spalte “position”, nach der sortiert wird. Während ich mir noch überlege, wie man das Verschieben am besten programmiert, finde ich den Abschnitt über “acts_as_list”. Wenn man das in einem Modell benutzt, daß eine Spalte “position” hat, bekommt man automatisch ein paar nützliche Funktionen dazu, unter anderem first?, last?, move_higher und move_lower.

Dadurch ist die Verschiebe-Funktion im Controller gerade mal 3 Zeilen lang, wovon eine Zeile der Redirect auf die Übersichtsseite ist.

Mit Rails zu programmieren ist echt eine Freude. So viel Spaß am coden hatte ich schon lange nicht mehr.