Подтвердить что ты не робот

Поиск неиспользуемых представлений/частичных данных в Ruby on Rails

В настоящее время я работаю над довольно большим проектом Ruby on Rails. Он достаточно старый и достаточно большой, чтобы не было видно, действительно ли используются все представления.

Есть ли там script/plugin, который может генерировать список неиспользуемых файлов вида?

4b9b3361

Ответ 1

Я написал script, чтобы найти неиспользуемые частичные/представления. Я предположил, однако, что "неиспользуемый" означает, что присутствует файл вида, для которого не определен какой-либо контроллер-метод (не более). script не проверяет, вызвано ли это представление, потому что нет ссылки от маршрута по умолчанию к нему. Это было бы намного сложнее.

Поместите следующий script в папку приложения script:

#!/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

Это своего рода хакерский и незаконченный, но он выполняет эту работу - по крайней мере, для меня.

Выполните его так (вам нужно только сначала изменить бит выполнения в chmod):

chmod +x script/script_name
./script/script_name

Наслаждайтесь!

Ответ 3

Итерируйте через свои частичные, grep (или awk) проект для имени файла. Настройте поисковое регулярное выражение для поиска "render: partial" в начале строки для общих партитур (например, "_form" ).

Ответ 4

Просто установите и запустите discover-unused-partials:

gem install discover-unused-partials

discover-unused-partials rails_root_directory