Ich schrieb ein Skript, um nicht verwendete Partials/Ansichten zu finden. Ich nahm jedoch an, dass "unbenutzt" bedeutet, dass eine View-Datei vorhanden ist, für die keine Controller-Methode mehr definiert ist. Das Skript überprüft nicht, ob die Ansicht aufgerufen wird, da keine Verknüpfung von der Standardroute zu dieser Ansicht besteht. Das wäre viel komplexer gewesen.
Legen Sie das folgende Skript in der Skriptordner der Anwendung:
#!/usr/bin/env ruby
require 'config/environment'
(Dir['app/controllers/*.rb'] - ['app/controllers/application.rb']).each do |c|
require c
base = File.basename(c, '.rb')
views = Hash.new
Dir["app/views/#{base.split('_')[0]}/*"].each do |v|
views.store(File.basename(v).split('.')[0], v)
end
unused_views = views.keys - Object.const_get(base.camelcase).public_instance_methods - ApplicationController.public_instance_methods
puts "Unused views for #{base.camelcase}:" if unused_views.size > 0
unused_views.each { |v| puts views[v] }
end
Es ist irgendwie hackish und unfertig, aber es macht den Job - zumindest für mich.
Führen Sie es wie folgt aus (Sie brauchen nur das Ausführen-Bit das erste Mal mit chmod ändern):
chmod +x script/script_name
./script/script_name
Viel Spaß!
Sie sollten config/Umwelt erfordern. Zumindest musste ich, weil wir gettext verwenden. Dann können Sie auch die nächste Zeile entfernen (erfordert Rubygems usw.) – ujh
Es behandelt auch keine Partials und Sachen wie 'render: action =>" view "'. Aber es ist ein guter Anfang. – ujh