Ruby包含模块中的单一方法

前端之家收集整理的这篇文章主要介绍了Ruby包含模块中的单一方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个模块的跟随
module SimpleTask
    def task1
    end
    def task2
    end
    def task3
    end
end

而且我有一个模型只需要SimpleTask模块的task2方法.

我知道包括SimpleTask在我的模型,包括SimpleTask将做的工作.

但是我想知道我是否只能在我的模型中包含特定的task2方法.

解决方法

听起来你需要将#task2重构为一个单独的模块(例如BaseTask).那么你可以轻松地只包含BaseTask,只需要#task2.
module BaseTask
  def task2
    ...
  end
end

module SimpleTask
  include BaseTask

  def task1
    ...
  end

  def task3
    ...
  end
end

如果没有一个更具体的问题(如SimpleTask的方法之间的相互依赖等),很难帮助更多.

你可以做一些元编程,其中包括SimpleTask然后不定义你不想要的方法,但这是非常丑的IMO.

猜你在找的Ruby相关文章