我读了这篇解释如何在 Ruby 中进行枚举的文章,还展示了如何使它们可枚举,例如:
class Blah
def Blah.add_item(key, value)
@hash ||= {}
@hash[key] = value
end
def Blah.const_missing(key)
@hash[key]
end
def Blah.each
@hash.each {|key, value| yield(key, value)}
end
end
我有其他需要的枚举,我能否以此为基础创建一个基类,这样我就不必为每个枚举重复方法 add_item、const_missng 和 .each?
在为我的所有枚举创建文件时,我把它放在/lib/enums.rb 中,这是一个好习惯吗?
我应该将此类放在模块中吗?也就是说,我相信您这样做是为了命名空间吗?
最佳答案
您可以只使用 Blah 作为您的基类。
C 类 < Blah;结束
D级<废话;结束
我想我可以将它与它所使用的每个项目的源代码一起放入。是的,DIE、DRY 等等,但这在逐行代码中最为重要。将外部软件与每个项目合并是一种相当普遍的做法。
没有。它已经是一个类,所以它只使用一个名称。将模块放在使用 Blah、项目或项目部分的代码周围。这将很大,更需要命名空间。
关于ruby-on-rails - 如何将其移动到基类,它是一个 Ruby 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4074356/