【问题标题】:How can I detect which modules depend on which modules in Ruby?如何检测哪些模块依赖于 Ruby 中的哪些模块?
【发布时间】:2011-07-01 00:08:38
【问题描述】:

哪些工具可以确定哪些模块的方法正在调用 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

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

【问题讨论】:

    标签: ruby refactoring code-analysis


    【解决方案1】:

    虽然我不知道有一种用于 Ruby 的静态分析工具,但似乎最接近您想要的工具是 rubyprof。这可以生成多种格式的调用图,包括 HTML 树,甚至是 GraphViz 箱线图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-18
      • 2019-09-17
      • 1970-01-01
      • 1970-01-01
      • 2018-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多