5
Zastanawiam się, czy istnieje metoda w języku Ruby, aby zmienić słowo takie jak month
na monthly
.Jak zwrócić formę przysłówkową słowa
podobne do pluralize(word)
Zastanawiam się, czy istnieje metoda w języku Ruby, aby zmienić słowo takie jak month
na monthly
.Jak zwrócić formę przysłówkową słowa
podobne do pluralize(word)
Nie sądzę, nie ma żadnych wbudowanych w metodzie, ale można napisać prosty samemu:
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
Innym sposobem na to, że będzie działać za każdym razem, (jest to głównie żart, ale możesz go użyć, jeśli chcesz)
def adverbize(word)
"In a " + word + " fashion."
end
Miałem nadzieję na jeden wbudowany, więc większość zasad zostanie załatwiona. Gramatyka nie jest moją mocną stroną;). – deb
'słowo [-1] == 'y'? word.chop + 'ily': word + 'ly'' Powinno to obsłużyć najczęstszy wyjątek. Istnieją inne, na przykład "le" => "ly". –
Edytowano odpowiednio, @LarsHaugseth. Dzięki! –