我正在定义一些新方法String
。我需要确保这些方法与其他库中定义的方法不冲突(作为参考,我创建了一个变形器,然后添加了and pluralize
)。singularize
String
我的第一个想法是将新东西包装在一个模块中,如下所示:
module MM
class String
def rev
self.split('').reverse.join('')
end
end
end
class Test
include MM
def me(s)
s.rev
end
end
puts Test.new.me('this is a test')
但这当然行不通。String#rev
仍然未定义。我的代码中真正拥有的是一个模块MM
,除了内置类型扩展之外的所有内容都包含在MM
. 我的目标是拥有类似的String
方法rev
,但仅限于该模块内部,.singularize
pluralize
MM
这似乎应该是可行的。但不知何故,我错过了让它如此的秘密咒语。
如果有人可以提供一些建议,将不胜感激。