ujh*_*ujh 13 ruby ruby-on-rails
我目前正在开发一个大型的Ruby on Rails项目.它足够大,足够大,以至于不清楚是否所有视图都在使用中.
是否有任何脚本/插件可以生成未使用的视图文件列表?
小智 8
我写了一个脚本来查找未使用的部分/视图。不过,我认为“未使用”意味着存在一个没有定义控制器方法的视图文件(不再定义)。该脚本不会检查视图是否被调用,因为没有从默认路由到它的链接。这会复杂得多。
将以下脚本放在应用程序的脚本文件夹中:
#!/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
Run Code Online (Sandbox Code Playgroud)
它有点骇人听闻且未完成,但它可以完成工作 - 至少对我而言。
像这样执行它(你只需要第一次用 chmod 更改执行位):
chmod +x script/script_name
./script/script_name
Run Code Online (Sandbox Code Playgroud)
享受!
只需安装并运行discovery-unused-partials gem:
gem install discover-unused-partials
discover-unused-partials rails_root_directory
Run Code Online (Sandbox Code Playgroud)