我想知道Ruby中是否有一个方法可以将month
之类的单词转换为monthly
。
与pluralize(word)
类似
答案 0 :(得分:7)
我认为没有任何内置方法,但您可以自己编写一个简单的方法:
CONSONANTS = [ 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z' ]
def adverbize(word)
if word[-2,2] == "ly"
word
elsif word.length <= 3 and word[-1] == "y"
word + "ly"
elsif word[-2,2] == "ll"
word + "y"
elsif CONSONANTS.include? word[-3] and word[-2,2] == "le"
word.sub(/e$/, "y")
elsif word[-1] == "y"
word.chop + "ily"
else
word + "ly"
end
end
另一种方法,每次都会有效(这主要是一个笑话,但如果你愿意,可以使用它)
def adverbize(word)
"In a " + word + " fashion."
end