9. April 2008 in Ruby » Code-Schnipsel
Namen in attributive Genitive umwandeln
def attr_gen (string)
# Autor: Martin Labuschin
# Erstellt am 9. April 2008
# Wandelt einen Namen in ein attributives Genitiv um und beachtet dabei Sonderfälle in der deutschen Grammatik.
# BEMERKUNG: Es wird nur Reintext erwartet
last_chars = string[ ( string.length-2 ), string.length ].to_s.downcase
return string << "’" if (last_chars == "ce") || (last_chars == "tz")
last_char = string[ ( string.length-1 ), string.length ].to_s.downcase
return string << "’" if (last_char == "s") || (last_char == "x") || (last_char == "z") || (last_char == "ß")
string << "s"
end
Kommentar hinzufügen
Du kannst dich hier frei äußern, jedoch solltest du dich dabei fair gegenüber den anderen Lesern und dem Autor verhalten. Private Mitteilungen an Martin bitte per E-Mail an martin@labuschin.com. Danke.
5 Kommentare
Oliver am 9. April 2008 #
Das ist total interessant.. Aber wofür braucht man das?? ;)
Martin Labuschin am 9. April 2008 #
Wenn du z.B. den Benutzernamen "Oliver" oder "Max" in deiner Datenbank stehen hast und irgendwann im Template "Olivers Freunde" oder "Max' Freunde" schreiben möchtest.
Marcel am 9. April 2008 #
Gute Sache! Vor allem, weil viele Scripts das ziemlich vergurken.
Jeena Paradies am 10. April 2008 #
Sehr coole Idee, bitte mehr davon, für Englisch gibt es ja schon genügend solche codeschnipsel, aber für Deutsch sucht man oft vergebens.
Und weil ich es ja immer so mag andere Wege zu suchen, hier meine Version davon ;)
def attr_gen(str)
if ["ce", "tz"].include? str[-2..-1] \
or ["s", "x", "z", "ß"].include? str[-1..-1]
return str << "’"
end
str << "s"
end
Martin Labuschin am 10. April 2008 #
Jeena, deine Version scheint mir sogar ein wenig kompakter zu sein. Super Ergänzung. Danke!