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 # => #<Method: RSpec::ExampleGroups::MyController(ActionController::TestCase::Behavior)#get>
Das Beispiel zeigt nicht nur die Klasse, sondern auch das includete Modul, welches für die Methode verantwortlich ist. Dies hilft beim Googeln oder man verwendet Ri:
ri ActionController::TestCase::Behavior#get