Sebastians Blog Neues aus den Softwareminen…

Schlagwort-Archive: Rails

Verwischte Font-Awesome-Icons in Phantom JS

Wir reichern unsere auf Capybara und Phantom JS basierenden Feature-Tests gerne mit Screenshots an. Hierbei kam es regelmäßig zu einem Problem mit Font Awesome, wodurch der automatische Abgleich fehl schlug. Bei einzelnen Specs tritt das Problem nicht auf, erst wenn mehrere Tests mit … Weiterlesen

Veröffentlicht unter | Verschlagwortet mit , , , , , | Kommentare deaktiviert für Verwischte Font-Awesome-Icons in Phantom JS

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: … Weiterlesen

Veröffentlicht unter | Verschlagwortet mit , , , | Kommentare deaktiviert für Rails-Konfiguration in Engine auslagern

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 … Weiterlesen

Veröffentlicht unter , | Verschlagwortet mit , , | Kommentare deaktiviert für Match API output with YAML fixture

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 … Weiterlesen

Veröffentlicht unter , | Verschlagwortet mit , , , , | Kommentare deaktiviert für Overwriting and Overriding with define_method

ActiveRecord: Klasse einer Model-Instanz ändern

ActiveRecord erlaubt das direkte Ändern der Klasse einer Model-Instanz mittels #becomes. Dies kann zum Beispiel hilfreich sein, wenn man für einen Spezialfall weitere Funktionen oder Validierungen zu einem Model hinzufügen will: > company = Company.last > company.persisted? => true > company.valid? … Weiterlesen

Veröffentlicht unter | Verschlagwortet mit , , , | Kommentare deaktiviert für ActiveRecord: Klasse einer Model-Instanz ändern

Action-Mailer-Previews im Spec-Verzeichnis

Die Mailer-Previews in Rails 4 sind ein Segen. Wer Rspec statt der üblichen Testsuite verwendet kann das Verzeichnis von test in spec ändern, so dass alle Testdateien zusammen bleiben: # config/application.rb # … config.action_mailer.preview_path = „#{Rails.root}/spec/mailers/previews“ Nach einem Serverneustart sollten die Previews gefunden … Weiterlesen

Veröffentlicht unter | Verschlagwortet mit , , , | Kommentare deaktiviert für Action-Mailer-Previews im Spec-Verzeichnis

Rails 4: Already initialized constant APP_PATH?

Ein Fehler, der mir in Rails-4-Projekten öfter unterkommt: bin/rails:6: warning: already initialized constant APP_PATH Dies deutet auf ein Problem mit Spring hin. Es kann daher helfen, die Projekt-Binaries neu zu generieren: rake rails:update:bin Dies ist oft schon die Lösung oder sollte … Weiterlesen

Veröffentlicht unter | Verschlagwortet mit , , | Kommentare deaktiviert für Rails 4: Already initialized constant APP_PATH?

Suchstatus in ActiveAdmin deaktivieren

Der Suchstatus des Active-Admin-Masters funktioniert momentan fehlerhaft. Weder Scope-Namen noch Ransack-Suchen werden korrekt übersetzt. Da ich das Konzept ohnehin nicht sonderlich gewinnbringend finde, schalte ich es zentral im Active-Admin-Initializer ab: Wer das Konzept, wie ich, nicht sonderlich gewinnbringend und eines umständlichen Workarounds … Weiterlesen

Veröffentlicht unter | Verschlagwortet mit , , , | Kommentare deaktiviert für Suchstatus in ActiveAdmin deaktivieren

ActiveAdmin: Authentifizierung für Browser und API

Eine einfache API-Authentifizierung lässt sich in ActiveAdmin durch Wiederverwendung des Standard-Admin-Users im Initializer erreichen: # config/initializers/active_admin.rb ActiveAdmin.setup do |config| config.prepend_before_filter do if active_admin_config.namespace.name == :api authenticate_or_request_with_http_basic(‚API‘) do |name, password| user = AdminUser.find_by_email!(name) sign_in(:admin_user, user) if user.valid_password?(password) end end end Dies … Weiterlesen

Veröffentlicht unter | Verschlagwortet mit , , , , , | Kommentare deaktiviert für ActiveAdmin: Authentifizierung für Browser und API