In regelmäßigen Abständen wirft unsere Konfiguration aus Bundler 1.7, Rails 4.1, Rspec 2.14 und Spring 1.1 bei jedem Rails-, Rake- oder Rspec-Befehl die folgende Warnung: Bundler is using a binstub that was created for a different gem. This is deprecated, in future versions you may need to `bundle binstub rspec` to work around a system/bundle… Bundler is using a binstub that was created for a different gem? weiterlesen
Autor: Sebastian Gaul
Bracket-Balancing in Ruby
Ich kann mir nicht helfen, nach zwei Jahren Ruby sieht Java manchmal nur noch umständlich aus. Gerade bei kleinen, in sich geschlossenen Programmen sollte man die Sprache mit Bedacht wählen. Wie aufwendig kann es sein herauszufinden, ob die verschiedenen Klammerarten in einem String ausbalanciert sind? Diese Frage stellte sich auch Code Corner und lieferte diese Lösung… Bracket-Balancing in Ruby weiterlesen
Spring ohne Bin-Präfix nutzen
Spring lässt sich sehr einfach installieren: Gem eintragen und die Binstubs erzeugen: bundle exec spring binstub –all Um nun rake routes oder rails generate statt bin/rake routes oder bin/rails generate nutzen zu können, einfach die folgenden Funktionen in beispielsweise die bash_aliases eintragen: rake() { if [ -f bin/rake ]; then bin/rake „$@“; else bundle exec… Spring ohne Bin-Präfix nutzen weiterlesen
Eleganterer Stringvergleich mit StringInquirer
Der ActiveSupport::StringInquirer ergänzt einen String um beliebige Testmethoden, welche die Gleichheit von String und Methodenname (ohne Fragezeichen) überprüfen. Ein prominenter Anwendungsfalls ist die Environment-Variable Rails.env von Rails, die sich auch in der Form Rails.env.production? prüfen lässt.
Methoden für Active-Record-Relationen definieren
Ein Scope in Active Record ist nichts anderes als syntaktischer Zucker für das Definieren einer Klassenmethode. Die folgenden User-Models führen zum selben Ergebnis: class User < ActiveRecord::Base scope :admins, -> { where(role: „admin“) } end class User < ActiveRecord::Base def self.admins where(role: „admin“) end end Da man Scopes verketten kann drängt sich der (berechtigte) Verdacht auf,… Methoden für Active-Record-Relationen definieren weiterlesen
Pakyows Ansatz für Views in Web-Applikationen
Auch wenn die Vertreter der Client-Seite den Kampf um die Frage, wo Views künftiger Web-Applikationen gerendert werden, schon lange gewonnen haben, so bleiben doch einige Diskussionspunkte offen. Was wird aus Suchmaschinen, Javascript-Verweigerern und den Nutzern von schwacher Hardware oder alter Browser? Der Schritt zur Client-Side-Web-Application ist an Konsequenzen geknüpft, die nicht jeder in Kauf nehmen… Pakyows Ansatz für Views in Web-Applikationen weiterlesen
Ruby: Testvollständigkeit testen
Eine Wissenschaft für sich im Test-Driven Development ist die Frage, wie jede einzelne Funktion getestet werden muss: Sind die Tests vollständig, hat man jeden Spezialfall bedacht? Hat man es zu gut gemeint und eine schwer überschaubare, redundante Testsuite geschaffen? Einen recht ungewöhnlichen Weg zur Beantwortung der ersten Frage geht Markus Schirp. Sein Gem Mutant betrachtet Code und… Ruby: Testvollständigkeit testen weiterlesen
Klassen- und Klassenhierarchievariablen in Ruby
Sucht man nach einem Klassenvariablenkonzept für Ruby trifft man über kurz oder lang auf das @@-Konzept. Wer sich darauf einlässt kann schnell Probleme bekommen. Der Grund ist relativ einfach: @@-Variablen sind keine Klassenvariablen. Einfache „Klassenvariablen“ class Cat @@size = :small def self.size @@size end def self.size= new_size @@size = new_size end def size @@size end… Klassen- und Klassenhierarchievariablen in Ruby weiterlesen
Was beim Unit-Testing getestet werden sollte
Die zentrale Idee des Unit-Testings ist Isolation. Man testet einzelne Komponenten, Abhängigkeiten werden als gegeben und korrekt angesehen und ggf. gemockt. Dies macht das Testen der einzelnen Komponente übersichtlicher, da nur ihre Pfade betrachtet werden müssen. In der Regel wird hierbei ein Blackbox-Ansatz verfolgt. Die zu testende Funktionalität (meist eine öffentliche Methode) wird nur von… Was beim Unit-Testing getestet werden sollte weiterlesen
RetroPie über WLAN befüllen und aktualisieren
Nachdem mein Pi für Retrospiele nun weitgehend konfiguriert ist, habe ich die Tastatur durch einen WLAN-Dongle ersetzt. Die Konfiguration habe ich etwas umständlich in die /etc/network/interfaces eintragen müssen, hierfür scheint es keinen Assistenten zu geben. Dafür wird das Romverzeichnis über Samba freigegeben, so dass es ohne jedes Zutun im Ubuntu-Dateimanager auftaucht und befüllt werden kann.… RetroPie über WLAN befüllen und aktualisieren weiterlesen