我有一个模块,它声明了许多实例方法
module UsefulThings
def get_file; ...
def delete_file; ...
def format_text(x); ...
end
我想在类中调用其中一些方法。在ruby中你通常是这样做的:
class UsefulWorker
include UsefulThings
def do_work
format_text("abc")
...
end
end
include UsefulThings
从UsefulThings
中引入方法的所有。在这种情况下,我只需要format_text
,显式地不需要get_file
和delete_file
。
我可以看到几个可能的解决方案:
Usefulthings
并只引入它的一些方法
UsefulThings
,然后将format_text
委托给该代理实例
为什么一个模块中有很多不相关的功能?它是来自rails应用程序的ApplicationHelper
,我们的团队实际上已经决定将它作为任何不够特定的东西的垃圾场。大多数是独立的实用程序方法,在任何地方都可以使用。我可以把它分解成独立的助手,但有30个,每个都有一个方法……这似乎没有什么效果