ruby-on-rails – 在Ruby on Rails中查找未使用的视图/部分

我目前正在研究一个庞大的 Ruby on Rails项目.它足够老,足够大,所以不清楚所有的意见是否真的被使用.

有没有任何脚本/插件可以生成未使用的视图文件的列表?

解决方法

我写了一个脚本来找到未使用的部分/视图.我假设,“未使用”是指存在没有定义控制器方法的视图文件(无论如何).脚本不会检查视图是否被调用,因为没有链接认路由.这将会更加复杂.

将以下脚本放在应用程序的脚本文件夹中:

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

请享用!

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...