如何检测哪些模块依赖于Ruby中的哪些模块?

时间:2011-07-01 00:08:38

标签: ruby refactoring code-analysis

哪些工具可以确定哪些模块具有从Ruby中的其他模块调用方法的方法?

背景:我正在将808线路模块分成更小的模块,创建了12个子模块。但是,其中一个模块中的某些方法是在另一个子模块中调用方法。这可能是也可能不是,这取决于被调用方法的模块是否是常用功能。

module DisplayStatistics1
  def display_statistics_1_foo
    calculate_statistics_foo # call a method that's in CalculateStatistics - this is ok
    display_statistics_2_bar # call a method that's in DisplayStatistics2 - this is bad
  end

  # other methods omitted
end

# modules DisplayStatistics2 and CalculateStatistics omitted

class ExampleClass
  include DisplayStatistics1
  include DisplayStatistics2
  include CalculateStatistics
end

理想情况下,分析工具会显示DisplayStatistics1依赖于DisplayStatistics2以及CalculateStatistics

更新:也许我不应该这样做 - 也许我应该将它们分成几个类。这样,我肯定知道什么取决于什么!

1 个答案:

答案 0 :(得分:0)

虽然我不知道Ruby的静态分析工具,但看起来最接近你想要的是rubyprof。这可以生成多种格式的调用图,包括HTML树甚至GraphViz框图和线图。

相关问题