(StackOverflow告诉我这个问题是"主观的,可能会被关闭"......好吧,无论如何,我会试一试)
我正在编写一堆辅助方法(对于TextMate包),我想(并且我需要)将它们整齐地命名为.
这些方法实际上只是函数,即它们不在自己范围之外的任何东西上运行,因此并不真正属于一个类.没有什么需要实例化的.
到目前为止,我一直在这样做,这很好
module Helpers::Foo
module_function
def bar
# ...
end
end
Helpers::Foo.bar # this is how I'd like to call the method/function
Run Code Online (Sandbox Code Playgroud)
但是它会更好:
1.跳过module_function
并声明方法/功能为self.*
?
2.或者声明一个类而不是一个模块会更好吗?
3.还是使用class << self
(在模块或类中)?
还是别的什么呢?
我意识到这是一个非常开放的问题,但我真的只是想听听人们在做什么.
我也喜欢
module Foo
def self.bar
"bar"
end
end
Foo.bar #=> "bar"
Run Code Online (Sandbox Code Playgroud)
要么
module Foo
def Foo.bar
"bar"
end
end
Foo.bar #=> "bar"
Run Code Online (Sandbox Code Playgroud)
但可能倾向于前者,我认为这self.
是真正具有描述性的.
编辑:在阅读评论后,我提出了第三个选项,我更喜欢它的可读性.从技术上讲,我认为这将被定义为扩展Eigen类中包含的方法.
module Foo
module ClassMethods
def baz
"baz"
end
end
extend ClassMethods
end
Foo.baz #=> "baz"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1570 次 |
最近记录: |