9. April 2008 in Ruby » Code-Schnipsel

Namen in attributive Genitive umwandeln

Diese Methode wandelt einen Namen in einen attributiven Genitiv um und beachtet dabei Sonderfälle in der deutschen Grammatik.

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

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!

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.






* Angabe erforderlich, E-Mailadresse wird nicht veröffentlicht
URLs werden automatisch verlinkt, HTML ist nicht erlaubt

oder Abbrechen