Die Programmiersprache Ruby Seminarvortrag von Lia Schulze Dephoff 1 Die Programmiersprache Ruby Inhaltsübersicht Einleitung Geschichte Grundlagen Syntax Prinzipien Kontrollstrukturen Funktionen Objektorientierung Klassen Vererbung Mixins Datenbankenanbindung File-I/O Zusammenfassung und Ausblick 2 CAE Elektronik Proprietary Information and/or Confidential Die Programmiersprache Ruby Einleitung Projektdashboard Informationen über: • • • • Projektname, Projektmanager, Projektingenieur Verbleibende Arbeitsstunden Verbleibendes Budget Wichtige Meilensteine Dashing von Shopify Server Sent Events 3 CAE Elektronik Proprietary Information and/or Confidential Die Programmiersprache Ruby Geschichte 1993 von Yukihiro Matsumoto begonnen Alternative objektorientierte Skriptsprache für Perl und Python Entwicklung in der Sprache C Bis 1996 alleine entwickelt Danach große Beteiligung aus der Rubygemeinschaft 1999 Ruby Mailingliste “Ruby-Talk” 2005 Ruby on Rails Ruby = “Rubin” - Anlehnung an Perl (“Pearl” = Perle) 4 CAE Elektronik Proprietary Information and/or Confidential Die Programmiersprache Ruby Grundlagen Syntax: Variablen mit Namen und Zuweisung • Kein Datentyp (dynamic typing) • Case Sensitiv • Buchstaben, Zahlen und Unterstrich 5 CAE Elektronik Proprietary Information and/or Confidential Die Programmiersprache Ruby Grundlagen Prinzipien: „Everything is an Object“ Basic Object Object Module String Numeric Class Integer Fixnum Float Bignum 6 CAE Elektronik Proprietary Information and/or Confidential Die Programmiersprache Ruby Grundlagen Prinzipien: Ducktyping: def calculate (a, b, c) return (a + b)*c end “When I see a bird that walks like a duck and swims like a duck example1 =and calculate 2, 3a duck, I call that bird a duck.” quacks1,like puts example1 #9 Whitcomb Riley) – (James example2 = calculate [1, 2, 3], [4, 5, 6], 2 puts example2.to_s #[1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6] example3 = calculate 'Äpfel ', 'und Birnen, ', 3 puts example3 #Äpfel und Birnen, Äpfel und #Birnen, Äpfel und Birnen, 7 CAE Elektronik Proprietary Information and/or Confidential Die Programmiersprache Ruby Kontrollstrukturen If Bedingung: Case Vergleich mit „===“ puts " a " === " a " # -> true puts String === " a " # -> true puts " a " === String # -> false Unless Bedingung: Case Statement: 8 CAE Elektronik Proprietary Information and/or Confidential Die Programmiersprache Ruby Kontrollstrukturen For Schleifen While Schleifen Until Schleifen 9 CAE Elektronik Proprietary Information and/or Confidential Die Programmiersprache Ruby Funktionen Standard Parameter Rückgabe des letzten Statements oder return Array Parameter → unbegrenzte Anzahl an Parametern 10 CAE Elektronik Proprietary Information and/or Confidential Die Programmiersprache Ruby Objektorientierung Klassen: » Konstante » Konstruktor » Get-Methode » Set-Methode » Objekt » Methodenaufrufe 11 CAE Elektronik Proprietary Information and/or Confidential Die Programmiersprache Ruby Objektorientierung Klassen: » Klassenvariable » Konstruktor » Klassenmethode » Objekt » Klassenmethodenaufruf » NoMethodError 12 CAE Elektronik Proprietary Information and/or Confidential Die Programmiersprache Ruby Objektorientierung Vererbung: • Keine Mehrfachvererbung • Keine Vererbung von Instanzvariablen → Erstellung erst bei Wertzuweisung » Elternklasse » Konstante » Klassenvariable » Konstruktor » Kindklasse » Neue Methode » Objekt der Kindklasse » Methode der Kindklasse 13 CAE Elektronik Proprietary Information and/or Confidential Die Programmiersprache Ruby Objektorientierung Mixins: • Modul – Class erbt von Module – Klasse von der keine Instanz erstellt werden soll • Umgehen der fehlenden Mehrfachvererbung • Zwei Arten von “Modul Vererbung” • Einbinden mit include in eine Klasse > Instanzmethoden & Klassenvariablen & Konstanten an neue Klasse binden • Einbinden mit extend in eine Klasse – > Instanzmethoden als Klassenmethoden an Klasse – > Instanzmethoden als Instanzmethoden an Objekt 14 CAE Elektronik Proprietary Information and/or Confidential Die Programmiersprache Ruby Datenbankenanbindung DBI – Database Independent Interface Modul zum Einbinden, stellt Methoden zu Datenbankanbindung bereit Für verschiedene Datenbankensysteme 15 CAE Elektronik Proprietary Information and/or Confidential Die Programmiersprache Ruby Datenbankenanbindung Mysql Modul zum Einbinden, stellt Methoden zu Datenbankanbindung bereit Für Mysql Datenbanken 16 CAE Elektronik Proprietary Information and/or Confidential Die Programmiersprache Ruby Datenbankenanbindung TinyTDS Modul zum Einbinden, stellt Methoden zu Datenbankanbindung bereit Für Microsoft SQL Datenbanken 17 CAE Elektronik Proprietary Information and/or Confidential Die Programmiersprache Ruby File I/O Liest eine Anzahl an Zeichen aus und setzt den Zeiger auf das Folgezeichen Liest eine Datei Zeile für Zeile in ein Array ein IO.foreach liest eine Datei Zeile für Zeile in eine Variable File::exists? prüft zuerst ob eine Datei existiert 18 CAE Elektronik Proprietary Information and/or Confidential Die Programmiersprache Ruby Zusammenfassung und Ausblick Ruby: Leicht lernbar mit Vorkenntnissen Sehr intuitiv Viele Bibliotheken vorhanden Projektdashboard: Daten mit DBI und TinyTDS auslesen Daten aus Dateien auslesen Mögliche Erweiterung: Filter der Daten für verschiedene User 19 CAE Elektronik Proprietary Information and/or Confidential Die Programmiersprache Ruby Quellen ● Ruby documentation: https://ruby-doc.org ● Tutorialspoint http://www.tutorialspoint.com/ruby ● Rubylearning http://rubylearning.com ● O'Reilly Linux Devcenter (Interview) http://www.linuxdevcenter.com ● Artima Developer (Interview) http://www.artima.com/intv/ruby4.html ● Github ● Wikipedia 20 CAE Elektronik Proprietary Information and/or Confidential 21 CAE Elektronik Proprietary Information and/or Confidential DANKE! 22