CanCanCan ist kein CanCan 2.0

Außerhalb meiner Wahrnehmung gibt es auf Github seit einiger Zeit ein Projekt, dass CanCan für tot erklärt und dessen Nachfolge antreten will: CanCanCan. 17 Menschen haben zum Projekt der „CanCanCommunity“ bereits beigetragen. So wird das kleine Gem von Ryan Bates, der seit längerer Zeit aufgrund gesundheitlicher Probleme ausfällt, weitergeführt. Wichtige Fixes für Rails 4 finden… CanCanCan ist kein CanCan 2.0 weiterlesen

Rails 4 schützt Nutzer vor Regex-Schwachstellen

Rails 4 warnt seine Nutzer vor einer weit verbreiteten Sicherheitslücke, die durch falsche Anwendung von regulären Ausdrücken auftritt. So sind Validatoren wie der folgende nicht mehr erlaubt: validates :phone, format: { with: /^[0-9]+$/ } Dies wirft einen Argument-Error wie diesen: `check_options_validity‘: The provided regular expression is using multiline anchors (^ or $), which may present… Rails 4 schützt Nutzer vor Regex-Schwachstellen weiterlesen

WordPress-Plugin WP Inject: CC-Bilder einfügen

Das WordPress-Plugin WP Inject integriert eine Flicker-Suche in WordPress, mit der man Bilder nach festgelegter Lizenz suchen, auf den Server kopieren, einbinden und die Quelle referenzieren kann. Da ich in einem Staat mit dem Landgericht Köln lebe, habe ich den Spaß mal auf kommerzielle Nutzung ohne Zitatpflicht eingegrenzt. Leider bringt selbst die Suche nach „Wordpress“… WordPress-Plugin WP Inject: CC-Bilder einfügen weiterlesen

Methoden-Ketten: Rubys Object#tap und Datenkapselung

Eine nette, mir bisher unbekannte Methode ist Rubys Object#tap, der man einen Block übergeben kann, in dem das Objekt als Argument zur Verfügung steht. Klingt im ersten Moment vielleicht unnötig, kann aber insbesondere in Views für etwas schöneren Code sorgen. Ein kleines Negativbeispiel in HAML: %table %tbody %tr %td= current_company.name %td= current_company.owner ? „#{current_company.owner.first_name} #{current_company.owner.last_name}“… Methoden-Ketten: Rubys Object#tap und Datenkapselung weiterlesen

Git-Commit-Messages aus Redmine-Issues

Ein nerviges Prozedere ist das Suchen nach Issue-Nummern, wenn ich via Git eine Änderung commiten möchte. Git kann hier helfen und bietet mit seinen Hooks die Möglichkeit eigene Skripts in allen denkbaren Situationen auszulösen. Hierzu zählt auch die Modifikation der Commit-Message-Vorlage, die Git mit Status-Kommentaren füllt: # Please enter the commit message for your changes.… Git-Commit-Messages aus Redmine-Issues weiterlesen

Formtastics I18n-Cache abschalten

Formtastic ist ein wahrer Segen, da es die Erzeugung und Lokalisierungen von Formularen in Rails dramatisch vereinfacht. Nervig ist nur, dass Änderungen an der Lokalisierungsdatei während der Entwicklung nicht übernommen werden. Grund hierfür ist ein Cache, der die recht komplexen Suchanfragen nach passenden Übersetzungen minimieren soll. Um im Entwicklungsbetrieb nicht ständig den Server neustarten zu… Formtastics I18n-Cache abschalten weiterlesen

Ruby, Currying und Block-Vereinfachung

Der für mich faszinierendste Aspekt funktionaler Programmierung ist das Currying. Es erlaubt das Erzeugen neuer Funktionen, indem ein oder mehrere Argumente einer Ausgangsfunktion vorbelegt werden. Auch in der objektorientierten Entwicklung bieten sich solche Ansätze an. Mir fällt dies immer dann auf, wenn ich in Ruby bei einem Array#map einen Block angeben muss und das Gefühl… Ruby, Currying und Block-Vereinfachung weiterlesen

RSpec durch Parallelisierung beschleunigen

Mit der testgetriebenen Entwicklung gibt es vor allem ein großes Problem: Finished in 2 minutes 32.8 seconds 547 examples, 0 failures, 4 pending Schon in einem frühen Stadium läuft die Testsuite locker zwei Minuten. Parallel Tests will die Dauer verkürzen, indem es Tests auf mehreren Prozessorkernen gleichzeitig ausführt. Ein wesentlicher Aspekt bei der Parallelisierung ist… RSpec durch Parallelisierung beschleunigen weiterlesen