我建議儘量避免改變titlelize
的語義,以避免以後在相同應用程序的另一部分中可能會期望它發生問題,以便實現它真正打算執行的操作。既然你正在尋找一些比較專業的功能爲titleize
我想創建一個新的,類似的方法,你可以猴子補丁放到String
類,如上述,所謂的像,abook_titleize
(地址簿titleize):
class String
def abook_titleize
if allow_titleize(self)
titleize
else
# Check for other behaviors, such as if "self" is all consonants
# or if self is found in a predetermined list of acronyms,
# perhaps return self.upcase
self.upcase
end
end
private
def allow_titleize(s)
# Write some code here that determines if you want this string
# to be titleized and return true if so, otherwise false
end
end
或類似的東西。你可以按照你的意願簡單或精心製作。如果你真的想改變titleize
bahavior本身(再次,我不會推薦),那麼:
class String
:alias_method :old_titleize, :titleize
def titleize
if allow_titleize(self)
old_titleize
else
...