我目前正在研究一个庞大的Ruby on Rails项目。它已经足够大和足够大,以至于不清楚所有视图是否都在使用中。在Ruby on Rails中查找未使用的视图/部分
是否有任何脚本/插件可以生成未使用的视图文件列表?
我目前正在研究一个庞大的Ruby on Rails项目。它已经足够大和足够大,以至于不清楚所有视图是否都在使用中。在Ruby on Rails中查找未使用的视图/部分
是否有任何脚本/插件可以生成未使用的视图文件列表?
我写了一个脚本来查找未使用的partials/views。尽管如此,我认为“未使用”意味着一个视图文件不存在,其中没有定义控制器方法(不再)。该脚本不检查视图是否被调用,因为没有从默认路由到它的链接。这会更加复杂。
放置在应用程序的脚本文件夹下面的脚本:
#!/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
这是有点hackish的和未完成的,但它的工作 - 至少对我来说。
执行像这样(你只需要改变执行位首次使用chmod):
chmod +x script/script_name
./script/script_name
享受!
遍历你的partials,grep(或awk)该项目的文件名称。调整搜索正则表达式以在通用部分的行首(例如“_form”)查找“render:partial”。
在下面的脚本以在GitHub上http://github.com/vinibaggio/discover-unused-partials
一看就安装和运行discover-unused-partials宝石:
gem install discover-unused-partials
discover-unused-partials rails_root_directory
如果您需要配置/环境。至少我必须这样做,因为我们使用gettext。然后你也可以删除下一行(需要rubygems等) – ujh 2009-02-12 09:44:28
它也不会处理partials和类似`render:action =>“view”`的东西。但这是一个好的开始。 – ujh 2009-02-12 09:48:04