Поиск неиспользуемых представлений / частичных файлов в Ruby on Rails - PullRequest
12 голосов
/ 11 февраля 2009

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

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

Ответы [ 4 ]

6 голосов
/ 16 марта 2010

Посмотрите на следующий скрипт на GitHub http://github.com/vinibaggio/discover-unused-partials

4 голосов
/ 03 апреля 2014

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

gem install discover-unused-partials

discover-unused-partials rails_root_directory
4 голосов
/ 11 февраля 2009

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

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

#!/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 голосов
/ 11 февраля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...