J'écris un plugin qui ajoute une méthode aux contrôleurs et le déclare comme une méthode d'aide. Si cela était fait statiquement (plutôt que par le plug-in), il ressemblerait à quelque chose comme ceci:Comment puis-je déterminer par programme quelles méthodes ont été déclarées comme méthodes "auxiliaires" par un contrôleur dans Rails?
# in RAILS_ROOT/app/controllers/stuffed_animals_controller.rb
class StuffedAnimalsController < ActionController::Base
private
def bear
'Teddy Bear'
end
helper_method :bear
end
# in RAILS_ROOT/app/views/stuffed_animals/index.html.erb:
<%= bear -%>
Il fonctionne très bien. Je veux tester que :some_helper_method
est en fait une méthode d'aide, cependant. J'ai essayé ceci:
def test_declared_bear_as_helper_method
assert StuffedAnimalsController.helper_methods.include?(:bear)
end
Malheureusement, ActionController::Base
n'a pas une méthode de classe :helper_methods
. Quelqu'un sait où je peux obtenir la liste des choses qu'une classe expose via :helper_method
?