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
Kategorie: Software-Entwicklung
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
„Rake aborted!“ durch abweichende Version
Stimmt die aktuell installierte Rake-Version nicht mit der im Gemfile.lock hinterlegten Version überein, bricht Rake mit einer Fehlermeldung ab: rake routes rake aborted! You have already activated rake 10.1.1, but your Gemfile requires rake 10.1.0. Using bundle exec may solve this.
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
RVM: Gemset erstellen und .versions.conf anlegen
Memo an mich selbst: Ein neues Gemset einrichten und mittels .versions.conf als Standard für das aktuelle Verzeichnis festlegen: rvm use –create –versions-conf ruby-2.1@gemset_name In aller Regel benötige ich auch Bundler: gem install bundler
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