8

我已将一些文件夹(lib、spec、cell 等)添加到我的 Rails 应用程序中,并希望将它们添加到 rake stats 列表中。是否可以添加新文件夹?

4

3 回答 3

14

我知道我参加聚会迟到了,但由于我没有找到更多信息,我将我的答案加入其中。

我在我的项目中添加了一个 rake-task,其内容类似于以下内容:

task :stats => "todolist:statsetup"

namespace :todolist do
  task :statsetup do
    require 'rails/code_statistics'
    ::STATS_DIRECTORIES << ["Policies", "app/policies"]
    ::STATS_DIRECTORIES << ["Services", "app/services"]

    # For test folders not defined in CodeStatistics::TEST_TYPES (ie: spec/)
    ::STATS_DIRECTORIES << ["Services specs", "specs/services"]
    CodeStatistics::TEST_TYPES << "Services specs"
  end
end

这将两个文件夹添加到我的rake stats

于 2013-08-25T14:02:12.383 回答
7

这是一个很好的答案,可以找到定义特定 rake 任务的位置

有了这个提示,发现rake stats任务是在gems/railties-3.2.11/lib/rails/tasks/statistics.rake文件中定义的;所以它在railties gem哪个是rails 存储库的一部分。

在文件的最顶部,要考虑的目录包含在STATS_DIRECTORIES变量中。

可能最好使用相同的代码实现自定义 rake 任务(例如命名my_stats),并添加要包含的新文件夹。

于 2013-02-06T02:42:10.787 回答
2

我发现在列表中的合理位置插入新统计信息很有用。

这是我正在使用的(使用 rails 5.1):

# lib/stats.rake

require "rails/code_statistics"

task stats: :more_stats

task :more_stats do
  %w[Forms Policies Presenters Serializers Services].each_with_index do |type, i|
    STATS_DIRECTORIES.insert i + 5, [type, "app/#{type.downcase}"]
    STATS_DIRECTORIES.insert i * 2 + 13, ["#{type} tests", "test/#{type.downcase}"]
    CodeStatistics::TEST_TYPES << "#{type} tests"
  end
end
于 2018-11-09T18:20:40.597 回答