开发者

How can I detect which modules depend on which modules in Ruby?

What tools can determine which modules have methods that are calling methods from other modules in Ruby?

Background: I'm partway through breaking a 808 line module into smaller modules, having created 12-submodules. However, some of the methods in one of the modules are calling methods in another sub-module. This may or may not be ok, depending on whether the module of the called method is meant to be common functionality.

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

Ideally the analysis tool would show that DisplayStatistics1 has dependencies on DisplayStatistics2 as well as on CalculateStatistics.

Updat开发者_开发问答e: Maybe I shouldn't have done it this way - maybe I should have split them up into classes instead. That way, I'd have known for sure what depended on what!


While I'm not aware of a static analysis tool for Ruby, the one that seems closest to what you want is rubyprof. This can generate a callgraph in many formats, including an HTML tree and even a GraphViz box-and-line plot.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜