Ruby中命名空间函数的最佳做法(新手问题)

前端之家收集整理的这篇文章主要介绍了Ruby中命名空间函数的最佳做法(新手问题)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
(StackOverflow告诉我这个问题是“主观的,很可能被关闭”…好吧,我会给它一个镜头,不管)

我正在编写一堆帮助方法(对于TextMate包),我想(我需要)让它们整齐地命名空间.

这些方法实际上只是功能,即它们不在任何范围之外的任何操作,因此并不属于一个类.没有什么需要实例化.

到目前为止,我一直在做这件事,工作很好

  1. module Helpers::Foo
  2. module_function
  3. def bar
  4. # ...
  5. end
  6. end
  7. Helpers::Foo.bar # this is how I'd like to call the method/function

但是最好是:
1.跳过module_function并声明方法/函数为self.*?
或者更好的是声明一个类而不是一个模块?
或者使用类<<自我(在一个模块或一个类内)?
还是别的什么?

我知道这是一个很开放的问题,但我真的只是想听听人们在做什么.

解决方法

我也喜欢
  1. module Foo
  2. def self.bar
  3. "bar"
  4. end
  5. end
  6.  
  7. Foo.bar #=> "bar"

要么

  1. module Foo
  2. def Foo.bar
  3. "bar"
  4. end
  5. end
  6.  
  7. Foo.bar #=> "bar"

但可能倾向于前者,我认为自我.真的是描述性的.

编辑:阅读评论后,我提出了第三个选项,我更喜欢可读性.从技术上讲,我认为这将被定义为扩展Eigen类中包含的方法.

  1. module Foo
  2. module ClassMethods
  3. def baz
  4. "baz"
  5. end
  6. end
  7. extend ClassMethods
  8. end
  9.  
  10. Foo.baz #=> "baz"

猜你在找的Ruby相关文章