Herausfinden, wo eine Methode definiert wurde

In manchen Situationen ist es alles andere als offensichtlich, welche Klasse oder welches Modul eine Methode bereitstellt. Wer implementiert die Get-Methode für Rspec-Controller-Tests? Gerade in solch zusammengewürfelten Umgebungen ist das nur schwer nachvollziehbar. Ruby hilft hierbei: Die Metamethode method gibt Auskunft, woher eine Methodendefinition stammt: require „rails_helper“ RSpec.describe MyController do it do puts method(:get) end end… Herausfinden, wo eine Methode definiert wurde weiterlesen

Rails-Konfiguration in Engine auslagern

Für die meisten Rails-Projekte verwende ich die gleichen Gems mit ähnlichen Konfigurationen. Um den Projektstart und den Update-Prozess zu vereinheitlichen, möchte ich eine Engine, die diese Abhängigkeiten und Konfigurationen übernimmt. Für den einfacheren Einstieg erzeuge ich innerhalb einer bestehenden Rails-App eine neue Engine: rails plugin new m3 –full Diese wird zu Testzwecken im Gemfile des Elternprojekts verlinkt: gem… Rails-Konfiguration in Engine auslagern weiterlesen

Bundler überspringt Gems mit Todo-Beschreibung

Komisches Verhalten von Bundler, welches bei mir vorher nie aufkam: $ bundle install … Source does not contain any versions of ‚gem (>= 0) ruby‘ Das Problem scheint hier tatsächlich zu sein, dass die Gem-Spezifikation noch Todos enthält: Gem::Specification.new do |s| # … s.summary = „TODO: Summary of Gem.“ s.description = „TODO: Description of Gem.“… Bundler überspringt Gems mit Todo-Beschreibung weiterlesen

Hacker-Serie Mr. Robot

Mir fällt es nicht leicht, mich an neue Serien zu gewöhnen. Die ersten Folgen muss ich mich meist zwingen, um den Einstieg zu finden. Das ist auch bei Mr. Robot nicht anders, die es jetzt bei Amazon Prime gibt. Ein paar Sachen haben mich dann aber doch positiv gestimmt. „Ich habe kein Facebook.“ und „Ich hasse Facebook.“, ein… Hacker-Serie Mr. Robot weiterlesen

Ubuntu-Update kränkelt nach Owncloud-Installation

Nach der Installation des Owncloud-Clients über eine zusätzliche Paketquelle erhalte ich vom Ubuntu-Update-Manager Fehlermeldungen. Ein Update in der Konsole jammert: sudo apt-get update … Paketlisten werden gelesen… Fertig W: GPG-Fehler: http://download.opensuse.org Release: Die folgenden Signaturen konnten nicht überprüft werden, weil ihr öffentlicher Schlüssel nicht verfügbar ist: NO_PUBKEY 977C43A8BA684223 Das Problem wurde bereits auf Ubuntuusers diskutiert und… Ubuntu-Update kränkelt nach Owncloud-Installation weiterlesen

Neue Star-Trek-Serie 2017

Eine Meldung die trotz großem Interesse fast an mir vorbeiging: Für das Jahr 2017 hat das amerikanische Medienunternehmen CBS eine neue Star-Trek-Serie angekündigt. Der verantwortliche Produzent Alex Kurtzman war allerdings schon bei den letzten beiden Pseudo-Star-Trek-Actionfilmen beteiligt. Misstrauen ist wie beim neuen Star-Wars-Film also angebracht. Zudem sollen die Folgen in den USA weitgehend über einen vergleichsweise wenig relevanten… Neue Star-Trek-Serie 2017 weiterlesen

Match API output with YAML fixture

A nice and simple approach to test you JSON APIs: # spec/features/api/user_spec.rb require ‚rails_helper‘ RSpec.feature ‚User‘, type: :feature do it ‚lists users‘ do user = create(:user, :as_admin) visit api_user_path(user, format: :json) expect(page).to match_yaml_fixture(‚api/user‘) end end This checks if the page source matches the data given in the fixture file. To make it more readable we format… Match API output with YAML fixture weiterlesen

Overwriting and Overriding with define_method

Recently we stumbled upon this inheritance issue, which seemed very weird at the first: class A def talk ‚A‘ end end class B < A def self.define_talk define_method :talk do super() << ‚B‘ end end end class C < B define_talk def talk super << ‚C‘ end end > C.new.talk => „AC“ The talk addition from class… Overwriting and Overriding with define_method weiterlesen

Jump ’n‘ Run Maldita Castilla auf Ubuntu

Maldita Castilla ist sehr charmantes, kostenloses Jump ’n‘ Run à la Ghouls ’n Ghosts des spanischen Ein-Mann-Entwicklers Locomalito. Netterweise gibt es sogar eine Ubuntu-Version (die laut Entwickler möglicherweise auch auf anderen Distributionen läuft). Beim Start ergaben sich für mich jedoch kleinere Problemchen.