SlideShare ist ein Scribd-Unternehmen logo
Daniel Dengler
                                                                                               web developer




   Ruby on Rails
               Workshop SS 2009


„Ruby on Rails“ and the Rails-Logo are registered trademarks of David Heinemeier Hansson – www.rubyonrails.org
4
Ruby on Rails
Eine erste Anwendung
Installation
Installation UNIX
 •   ruby + rubygems installieren (source, apt,
     port, ...)

     •   unter OSX sind ruby & rubygems bereits
         installiert

 •   rails gem installieren

     •   Terminal öffnen

     •   (sudo) gem update --system

     •   (sudo) gem install rails -y
Installation Windows
 •   ruby + rubygems installieren (Installer)

 •   rails gem installieren

     •   Start > Ausführen > „cmd“

     •   gem update --system

     •   gem install rails -y
Datenbanksystem nach Wahl
 • SQLite (empfohlen für Entwicklung)
 • MySQL
 • PostgreSQL (empfohlen für Produktivbetrieb)
 • IBM DB2
 • Microsoft SQL Server
 • Oracle
 • Sybase
 • Firebird
Details zur Installation

•   http://www.ruby-lang.org/de/downloads/


•   http://wiki.rubyonrails.org/getting-started/
    installation
herokugarden.com
Virtuelle Entwicklungsumgebung
Einen Account bekommen

•   Private Beta Version
    •   Wer noch keinen Account hat eine kurze
        E-Mail an mich und ich lade die
        Absenderadresse ein


•   http://herokugarden.com/
Die erste Anwendung

rails Zielverzeichnis
rails Zielverzeichnis -d Datenbanktyp


Generiert automatisch das Grundgerüst einer Rails-
Anwendung im gewünschten Verzeichnis.
Eine Anwendung starten
Im Hauptverzeichnis der Anwendung ausführen:
ruby script/server
ruby script/server -u
(Mit Debugger zur Fehlersuche starten)


Die Anwendung ist unter http://localhost:3000
erreichbar, falls das Starten erfolgreich war.
Der Verzeichnisbaum

app
Enthält die eigentlich Anwendung (MVC)
 •   Präsentation (views & helpers)
 •   Steuerung (controllers)
 •   Datenmodelle (models)
Der Verzeichnisbaum
con g
Enthält Kon gurationsdateien für:
 •   Grundeinstellungen
 •   Umgebungen (Environments)
 •   Datenbank (database.yml)
 •   Routing (routes.rb)
Der Verzeichnisbaum

db
enthält Datenbank bezogene Inhalte:
 •   Datenbankschema
 •   Migrations
Der Verzeichnisbaum
doc
enthält die generierte Dokumentation der
Anwendung


lib
enthält zusätzliche Bibliotheken, die nicht in app
passen
Der Verzeichnisbaum
log
alle Log-Dateien der Anwendung. Sehr gut zur
Fehlersuche!


public
alle statischen Inhalte die abgerufen werden
können, wie etwa JavaScript-, CSS- oder Bild-
Dateien
Der Verzeichnisbaum
script
verschiedene Tools, wie etwa den Webserver
(script/server) oder Codegeneratoren (script/
generate)


tmp
temporäre Dateien der Anwendung
Der Verzeichnisbaum

test
enthält die automatischen Tests der Anwendung.
Dies ist ein wichtiger Bestandteil für größere
Webanwendungen im produktiven Umfeld.
Wird im Kurs aus Zeitgründen kaum oder gar nicht
behandelt werden
Ruby on Rails API
Ruby on Rails API (durchsehen)
http://api.rubyonrails.org


API Dock Rails (suchen)
http://apidock.com/rails
Wiederholung
Basisdatentypen
•   Fixnum – ganze Zahlen (1 , 3, 1000)

•   Bignum – große ganze Zahlen
    (10000000000000000)

•   Float – Fließkommazahlen (1.45)

•   String – Zeichenketten (quot;Hallo Weltquot;, 'Hallo Welt')

•   Symbol – Bezeichner (:name)
Operatoren

•   =   Zuweisungsoperator

•   +, -, *, /, () Arithmetische Operatoren

•   ==, <, >, <=, >=, != Vergleichsoperatoren

•   and (&&), or (||) Logische Operatoren
Arrays & Hashes

•   Arrays
    [Element, Element, …]

•   Hashes
    {Schlüssel => Wert, Schlüssel => Wert, …}
Kontrollstrukturen

•   Steuern den Programmablauf

•   Wichtige Kontrollstrukturen in Ruby

    •   Entscheidungen: if, unless, case

    •   Schleifen: while, until, for, .each
if Bedingung
  Anweisungen
elsif Bedingung
  Anweisungen
else
  Anweisungen
end

unless Bedingung
  Anweisungen
end

Anweisungen if Bedingung
case Variable
when Bedingung
  Anweisungen
when Bedingung
  Anweisungen
else
  Anweisungen
end

while Bedingung
  Anweisungen
end
Klassen, Methoden & Objekte


•   Klassen beginnen mit den Schlüsselwort class
    und können verschiedene Methoden beinhalten

•   Methoden beginnen mit dem Schlüsselwort def

•   Die konkrete Instanz einer Klasse ist ein Objekt
Ergänzungen zu
  Abschnitt 3
Numeric ausgewählte Methoden
Numeric ist Basisklasse für alle Zahlendatentypen


Einfache mathematische Operationen:
 •   +, -, *, /


Konvertierung in andere Formate:
 •   to_s (wandelt in String)
 •   to_f (wandelt in Float)
 •   to_i (wandelt in Integer)
Integer ausgewählte Methoden

int.times block
3.times { |i| print i, quot; quot; }
#>> 0 1 2


int.upto(int) block
2.upto(5) { |i| print i, quot; quot; }
#>> 2 3 4 5
String ausgewählte Methoden
str * integer
quot;wquot; * 3 #=> quot;wwwquot;
str + str
quot;fooquot; + quot;barquot; #=> quot;foobarquot;
str. capitalize
quot;fOoquot;.capitalize #=> quot;Fooquot;
str.upcase
quot;fooquot;.upcase #=> quot;FOOquot;
str.downcase
quot;FOOquot;.downcase #=> quot;fooquot;
str.empty?
quot;quot;.empty? #=> true
quot;fooquot;.empty? #=> false
String ausgewählte Methoden
str.size
quot;fooquot;.size #=> 3
str.split(str)
quot;1,2,3quot;.split(quot;,quot;) #=> [1,2,3]
str. capitalize
quot;fOoquot;.capitalize #=> quot;Fooquot;
str.upcase
quot;fooquot;.upcase #=> quot;FOOquot;
str.downcase
quot;FOOquot;.downcase #=> quot;fooquot;
str.to_i
quot;123quot;.to_i #=> 123
Array ausgewählte Methoden
arr.empty?
[].empty? #=> true
arr.size
[6,100].size #=> 2
arr. sort
[3,1,2].sort #=> [1,2,3]
arr.reverse
[1,2,3].reverse #=> [3,2,1]
arr.uniq
[1,1,2].uniq #=> [1,2]
arr.join(str)
[1,2,3].join(quot;-quot;) #=> quot;1-2-3quot;
arr.each block
[1,2].each { |i| print i, quot; quot; } #>> 1 2
Blöcke
def blocking(&block)
  yield
end

blocking do
  puts quot;fooquot;
end

# >> foo
Blöcke
def blocking(&block)
  3.times do
    yield
  end
end

blocking do
  puts quot;fooquot;
end

# >> foo
# >> foo
# >> foo
Blöcke
  def blocking(&block)
    3.times do |i|
      yield i
    end
  end

  blocking do |k|
    puts quot;foo #{k}quot;
  end

# blocking {|k| puts quot;foo #{k}quot;}

# >> foo 0
# >> foo 1
# >> foo 2
Module als Funktionssammlung
module ModA
  def dance
    puts quot;dance from #{self.class}quot;
  end
end

class B
  include ModA
end

class C
  include ModA
end

b = B.new
b.dance # >> dance from B

c = C.new
c.dance # >> dance from C
Module als Namensräume
 module ModA
   class A
     def hi
       puts quot;Hi im from ModAquot;
     end
   end
 end

 module ModB
   class A
     def hi
       puts quot;Hi im from ModBquot;
     end
   end
 end

 b = ModA::A.new
 b.hi # >> Hi from ModA

 c = ModB::A.new
 c.hi # >> Hi from ModB
Ruby API
Ruby Core API
http://www.ruby-doc.org/core/


Ruby Standard Library
http://www.ruby-doc.org/stdlib/


API Dock Ruby
http://apidock.com/ruby
Übung
Ruby Skripte ausführen
•   Interpreter

    •   ruby skriptname.rb



•   Interactive Shell

    •   irb skriptname.rb
Online Ruby Interpreter
•   http://tryruby.hobix.com

•   Geeignet um den Quellcode der Beispiele selbst zu
    testen und sich mit der Sprache vertraut zu machen

•   Bietet ein Ruby-Lern-Tutorial aus 8 Blöcken

•   Bitte jetzt anfangen (und zu Hause fertig machen!)

•   Lesen und merken sie sich die Anweisungen des
    Anfangs, falls sie stecken bleiben sollten!
    ( help Kapitelnummer, Ctrl + D)
?

Weitere ähnliche Inhalte

Andere mochten auch

Techdays Genève 2009 : WF, WCF 4.0 et l'environnement Dublin
Techdays Genève 2009 : WF, WCF 4.0 et l'environnement DublinTechdays Genève 2009 : WF, WCF 4.0 et l'environnement Dublin
Techdays Genève 2009 : WF, WCF 4.0 et l'environnement Dublinvlabatut
 
Metaforas Del Conocimiento Estrategias
Metaforas Del Conocimiento EstrategiasMetaforas Del Conocimiento Estrategias
Metaforas Del Conocimiento Estrategias
Rampant Bias
 
Découvrez le vrai visage du Québec - 11 Mai 2009
Découvrez le vrai visage du Québec - 11 Mai 2009Découvrez le vrai visage du Québec - 11 Mai 2009
Découvrez le vrai visage du Québec - 11 Mai 2009
Hebdos Quebec
 
Servicios Web
Servicios WebServicios Web
Servicios Web
Pierluigi
 
Prooyectos parques nacionales 4
Prooyectos parques nacionales 4Prooyectos parques nacionales 4
Prooyectos parques nacionales 4
Alicia Rodríguez
 
Presenacion Arte
Presenacion ArtePresenacion Arte
Presenacion Arte
desplazarte
 
PROPUESTA DE SOLUCION
PROPUESTA DE SOLUCIONPROPUESTA DE SOLUCION
PROPUESTA DE SOLUCION
yuyuita
 
Proyectos de Investigación
Proyectos de InvestigaciónProyectos de Investigación
Proyectos de Investigación
cristhian
 
Ahaguidelines2010
Ahaguidelines2010Ahaguidelines2010
Ahaguidelines2010
Dann Arriaga
 
PresentacióN Del Curso
PresentacióN Del CursoPresentacióN Del Curso
PresentacióN Del Curso
Alejandra Solorzano
 
Computacion Movil Inalambrica
Computacion Movil InalambricaComputacion Movil Inalambrica
Computacion Movil Inalambrica
Katerine Santander
 
Presentacion Planos Maria
Presentacion Planos MariaPresentacion Planos Maria
Presentacion Planos Maria
mariatelladobedia
 
RTS - Guide Facebook Timeline
RTS - Guide Facebook TimelineRTS - Guide Facebook Timeline
RTS - Guide Facebook Timeline
Yan Luong
 
Política y ética
Política y éticaPolítica y ética
Política y ética
Jean Vaudenay
 
Broche
BrocheBroche
Capitulo 6.1
Capitulo 6.1Capitulo 6.1
Capitulo 6.1
studentscetys
 
Augen zu und durch
Augen zu und durchAugen zu und durch
Augen zu und durch
menze+koch gbr
 
La france amandine et lisa
La france amandine et lisaLa france amandine et lisa
La france amandine et lisalatincaumont
 

Andere mochten auch (20)

Techdays Genève 2009 : WF, WCF 4.0 et l'environnement Dublin
Techdays Genève 2009 : WF, WCF 4.0 et l'environnement DublinTechdays Genève 2009 : WF, WCF 4.0 et l'environnement Dublin
Techdays Genève 2009 : WF, WCF 4.0 et l'environnement Dublin
 
Metaforas Del Conocimiento Estrategias
Metaforas Del Conocimiento EstrategiasMetaforas Del Conocimiento Estrategias
Metaforas Del Conocimiento Estrategias
 
Découvrez le vrai visage du Québec - 11 Mai 2009
Découvrez le vrai visage du Québec - 11 Mai 2009Découvrez le vrai visage du Québec - 11 Mai 2009
Découvrez le vrai visage du Québec - 11 Mai 2009
 
Servicios Web
Servicios WebServicios Web
Servicios Web
 
Virgile A.
Virgile A.Virgile A.
Virgile A.
 
PresentacióN2
PresentacióN2PresentacióN2
PresentacióN2
 
Prooyectos parques nacionales 4
Prooyectos parques nacionales 4Prooyectos parques nacionales 4
Prooyectos parques nacionales 4
 
Presenacion Arte
Presenacion ArtePresenacion Arte
Presenacion Arte
 
PROPUESTA DE SOLUCION
PROPUESTA DE SOLUCIONPROPUESTA DE SOLUCION
PROPUESTA DE SOLUCION
 
Proyectos de Investigación
Proyectos de InvestigaciónProyectos de Investigación
Proyectos de Investigación
 
Ahaguidelines2010
Ahaguidelines2010Ahaguidelines2010
Ahaguidelines2010
 
PresentacióN Del Curso
PresentacióN Del CursoPresentacióN Del Curso
PresentacióN Del Curso
 
Computacion Movil Inalambrica
Computacion Movil InalambricaComputacion Movil Inalambrica
Computacion Movil Inalambrica
 
Presentacion Planos Maria
Presentacion Planos MariaPresentacion Planos Maria
Presentacion Planos Maria
 
RTS - Guide Facebook Timeline
RTS - Guide Facebook TimelineRTS - Guide Facebook Timeline
RTS - Guide Facebook Timeline
 
Política y ética
Política y éticaPolítica y ética
Política y ética
 
Broche
BrocheBroche
Broche
 
Capitulo 6.1
Capitulo 6.1Capitulo 6.1
Capitulo 6.1
 
Augen zu und durch
Augen zu und durchAugen zu und durch
Augen zu und durch
 
La france amandine et lisa
La france amandine et lisaLa france amandine et lisa
La france amandine et lisa
 

Ähnlich wie Ruby on Rails SS09 04

Lehmanns Rails Erweitern
Lehmanns Rails ErweiternLehmanns Rails Erweitern
Lehmanns Rails Erweitern
jan_mindmatters
 
Rails i18n - Railskonferenz 2007
Rails i18n - Railskonferenz 2007Rails i18n - Railskonferenz 2007
Rails i18n - Railskonferenz 2007
jan_mindmatters
 
Offline Arbeiten
Offline ArbeitenOffline Arbeiten
Offline Arbeiten
Jens-Christian Fischer
 
Forms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsForms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and Operations
Torsten Kleiber
 
An Introduction to Ruby On Rails
An Introduction to Ruby On RailsAn Introduction to Ruby On Rails
An Introduction to Ruby On Rails
Jonathan Weiss
 
jBPM & Drools
jBPM & DroolsjBPM & Drools
jBPM & Drools
camunda services GmbH
 
Rack-Middleware
Rack-MiddlewareRack-Middleware
Rack-Middleware
Hussein Morsy
 
Ruby on Rails SS09 02
Ruby on Rails SS09 02Ruby on Rails SS09 02
Ruby on Rails SS09 02
Daniel Dengler
 
Mein Freund Der Legacy Code
Mein Freund Der Legacy CodeMein Freund Der Legacy Code
Mein Freund Der Legacy Code
mattmatt
 
Agile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsAgile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit Rails
Hussein Morsy
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Gregor Biswanger
 
Tech Talk: Groovy
Tech Talk: GroovyTech Talk: Groovy
Tech Talk: Groovy
mwie
 
AdvancedTdd
AdvancedTddAdvancedTdd
AdvancedTdd
jlink
 
Dart (Teil I der Tour de Dart)
Dart (Teil I der Tour de Dart)Dart (Teil I der Tour de Dart)
Dart (Teil I der Tour de Dart)
Nane Kratzke
 
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightDer Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
QAware GmbH
 

Ähnlich wie Ruby on Rails SS09 04 (20)

Ruby on Rails SS09 06
Ruby on Rails SS09 06Ruby on Rails SS09 06
Ruby on Rails SS09 06
 
Lehmanns Rails Erweitern
Lehmanns Rails ErweiternLehmanns Rails Erweitern
Lehmanns Rails Erweitern
 
Rails i18n - Railskonferenz 2007
Rails i18n - Railskonferenz 2007Rails i18n - Railskonferenz 2007
Rails i18n - Railskonferenz 2007
 
Offline Arbeiten
Offline ArbeitenOffline Arbeiten
Offline Arbeiten
 
Forms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsForms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and Operations
 
Web Entwicklung mit PHP - Teil 1
Web Entwicklung mit PHP - Teil 1Web Entwicklung mit PHP - Teil 1
Web Entwicklung mit PHP - Teil 1
 
An Introduction to Ruby On Rails
An Introduction to Ruby On RailsAn Introduction to Ruby On Rails
An Introduction to Ruby On Rails
 
jBPM & Drools
jBPM & DroolsjBPM & Drools
jBPM & Drools
 
PHP Sucks?!
PHP Sucks?!PHP Sucks?!
PHP Sucks?!
 
Rack-Middleware
Rack-MiddlewareRack-Middleware
Rack-Middleware
 
Ruby on Rails SS09 02
Ruby on Rails SS09 02Ruby on Rails SS09 02
Ruby on Rails SS09 02
 
Php Schulung
Php SchulungPhp Schulung
Php Schulung
 
Mein Freund Der Legacy Code
Mein Freund Der Legacy CodeMein Freund Der Legacy Code
Mein Freund Der Legacy Code
 
Agile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsAgile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit Rails
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
 
Tech Talk: Groovy
Tech Talk: GroovyTech Talk: Groovy
Tech Talk: Groovy
 
AdvancedTdd
AdvancedTddAdvancedTdd
AdvancedTdd
 
Ruby on Rails SS09 05
Ruby on Rails SS09 05Ruby on Rails SS09 05
Ruby on Rails SS09 05
 
Dart (Teil I der Tour de Dart)
Dart (Teil I der Tour de Dart)Dart (Teil I der Tour de Dart)
Dart (Teil I der Tour de Dart)
 
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightDer Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
 

Ruby on Rails SS09 04

  • 1. Daniel Dengler web developer Ruby on Rails Workshop SS 2009 „Ruby on Rails“ and the Rails-Logo are registered trademarks of David Heinemeier Hansson – www.rubyonrails.org
  • 2. 4 Ruby on Rails Eine erste Anwendung
  • 4. Installation UNIX • ruby + rubygems installieren (source, apt, port, ...) • unter OSX sind ruby & rubygems bereits installiert • rails gem installieren • Terminal öffnen • (sudo) gem update --system • (sudo) gem install rails -y
  • 5. Installation Windows • ruby + rubygems installieren (Installer) • rails gem installieren • Start > Ausführen > „cmd“ • gem update --system • gem install rails -y
  • 6. Datenbanksystem nach Wahl • SQLite (empfohlen für Entwicklung) • MySQL • PostgreSQL (empfohlen für Produktivbetrieb) • IBM DB2 • Microsoft SQL Server • Oracle • Sybase • Firebird
  • 7. Details zur Installation • http://www.ruby-lang.org/de/downloads/ • http://wiki.rubyonrails.org/getting-started/ installation
  • 9. Einen Account bekommen • Private Beta Version • Wer noch keinen Account hat eine kurze E-Mail an mich und ich lade die Absenderadresse ein • http://herokugarden.com/
  • 10. Die erste Anwendung rails Zielverzeichnis rails Zielverzeichnis -d Datenbanktyp Generiert automatisch das Grundgerüst einer Rails- Anwendung im gewünschten Verzeichnis.
  • 11. Eine Anwendung starten Im Hauptverzeichnis der Anwendung ausführen: ruby script/server ruby script/server -u (Mit Debugger zur Fehlersuche starten) Die Anwendung ist unter http://localhost:3000 erreichbar, falls das Starten erfolgreich war.
  • 12.
  • 13. Der Verzeichnisbaum app Enthält die eigentlich Anwendung (MVC) • Präsentation (views & helpers) • Steuerung (controllers) • Datenmodelle (models)
  • 14. Der Verzeichnisbaum con g Enthält Kon gurationsdateien für: • Grundeinstellungen • Umgebungen (Environments) • Datenbank (database.yml) • Routing (routes.rb)
  • 15. Der Verzeichnisbaum db enthält Datenbank bezogene Inhalte: • Datenbankschema • Migrations
  • 16. Der Verzeichnisbaum doc enthält die generierte Dokumentation der Anwendung lib enthält zusätzliche Bibliotheken, die nicht in app passen
  • 17. Der Verzeichnisbaum log alle Log-Dateien der Anwendung. Sehr gut zur Fehlersuche! public alle statischen Inhalte die abgerufen werden können, wie etwa JavaScript-, CSS- oder Bild- Dateien
  • 18. Der Verzeichnisbaum script verschiedene Tools, wie etwa den Webserver (script/server) oder Codegeneratoren (script/ generate) tmp temporäre Dateien der Anwendung
  • 19. Der Verzeichnisbaum test enthält die automatischen Tests der Anwendung. Dies ist ein wichtiger Bestandteil für größere Webanwendungen im produktiven Umfeld. Wird im Kurs aus Zeitgründen kaum oder gar nicht behandelt werden
  • 20. Ruby on Rails API Ruby on Rails API (durchsehen) http://api.rubyonrails.org API Dock Rails (suchen) http://apidock.com/rails
  • 22. Basisdatentypen • Fixnum – ganze Zahlen (1 , 3, 1000) • Bignum – große ganze Zahlen (10000000000000000) • Float – Fließkommazahlen (1.45) • String – Zeichenketten (quot;Hallo Weltquot;, 'Hallo Welt') • Symbol – Bezeichner (:name)
  • 23. Operatoren • = Zuweisungsoperator • +, -, *, /, () Arithmetische Operatoren • ==, <, >, <=, >=, != Vergleichsoperatoren • and (&&), or (||) Logische Operatoren
  • 24. Arrays & Hashes • Arrays [Element, Element, …] • Hashes {Schlüssel => Wert, Schlüssel => Wert, …}
  • 25. Kontrollstrukturen • Steuern den Programmablauf • Wichtige Kontrollstrukturen in Ruby • Entscheidungen: if, unless, case • Schleifen: while, until, for, .each
  • 26. if Bedingung Anweisungen elsif Bedingung Anweisungen else Anweisungen end unless Bedingung Anweisungen end Anweisungen if Bedingung
  • 27. case Variable when Bedingung Anweisungen when Bedingung Anweisungen else Anweisungen end while Bedingung Anweisungen end
  • 28. Klassen, Methoden & Objekte • Klassen beginnen mit den Schlüsselwort class und können verschiedene Methoden beinhalten • Methoden beginnen mit dem Schlüsselwort def • Die konkrete Instanz einer Klasse ist ein Objekt
  • 29. Ergänzungen zu Abschnitt 3
  • 30. Numeric ausgewählte Methoden Numeric ist Basisklasse für alle Zahlendatentypen Einfache mathematische Operationen: • +, -, *, / Konvertierung in andere Formate: • to_s (wandelt in String) • to_f (wandelt in Float) • to_i (wandelt in Integer)
  • 31. Integer ausgewählte Methoden int.times block 3.times { |i| print i, quot; quot; } #>> 0 1 2 int.upto(int) block 2.upto(5) { |i| print i, quot; quot; } #>> 2 3 4 5
  • 32. String ausgewählte Methoden str * integer quot;wquot; * 3 #=> quot;wwwquot; str + str quot;fooquot; + quot;barquot; #=> quot;foobarquot; str. capitalize quot;fOoquot;.capitalize #=> quot;Fooquot; str.upcase quot;fooquot;.upcase #=> quot;FOOquot; str.downcase quot;FOOquot;.downcase #=> quot;fooquot; str.empty? quot;quot;.empty? #=> true quot;fooquot;.empty? #=> false
  • 33. String ausgewählte Methoden str.size quot;fooquot;.size #=> 3 str.split(str) quot;1,2,3quot;.split(quot;,quot;) #=> [1,2,3] str. capitalize quot;fOoquot;.capitalize #=> quot;Fooquot; str.upcase quot;fooquot;.upcase #=> quot;FOOquot; str.downcase quot;FOOquot;.downcase #=> quot;fooquot; str.to_i quot;123quot;.to_i #=> 123
  • 34. Array ausgewählte Methoden arr.empty? [].empty? #=> true arr.size [6,100].size #=> 2 arr. sort [3,1,2].sort #=> [1,2,3] arr.reverse [1,2,3].reverse #=> [3,2,1] arr.uniq [1,1,2].uniq #=> [1,2] arr.join(str) [1,2,3].join(quot;-quot;) #=> quot;1-2-3quot; arr.each block [1,2].each { |i| print i, quot; quot; } #>> 1 2
  • 35. Blöcke def blocking(&block) yield end blocking do puts quot;fooquot; end # >> foo
  • 36. Blöcke def blocking(&block) 3.times do yield end end blocking do puts quot;fooquot; end # >> foo # >> foo # >> foo
  • 37. Blöcke def blocking(&block) 3.times do |i| yield i end end blocking do |k| puts quot;foo #{k}quot; end # blocking {|k| puts quot;foo #{k}quot;} # >> foo 0 # >> foo 1 # >> foo 2
  • 38. Module als Funktionssammlung module ModA def dance puts quot;dance from #{self.class}quot; end end class B include ModA end class C include ModA end b = B.new b.dance # >> dance from B c = C.new c.dance # >> dance from C
  • 39. Module als Namensräume module ModA class A def hi puts quot;Hi im from ModAquot; end end end module ModB class A def hi puts quot;Hi im from ModBquot; end end end b = ModA::A.new b.hi # >> Hi from ModA c = ModB::A.new c.hi # >> Hi from ModB
  • 40. Ruby API Ruby Core API http://www.ruby-doc.org/core/ Ruby Standard Library http://www.ruby-doc.org/stdlib/ API Dock Ruby http://apidock.com/ruby
  • 42. Ruby Skripte ausführen • Interpreter • ruby skriptname.rb • Interactive Shell • irb skriptname.rb
  • 43. Online Ruby Interpreter • http://tryruby.hobix.com • Geeignet um den Quellcode der Beispiele selbst zu testen und sich mit der Sprache vertraut zu machen • Bietet ein Ruby-Lern-Tutorial aus 8 Blöcken • Bitte jetzt anfangen (und zu Hause fertig machen!) • Lesen und merken sie sich die Anweisungen des Anfangs, falls sie stecken bleiben sollten! ( help Kapitelnummer, Ctrl + D)
  • 44. ?

Hinweis der Redaktion

  1. MySQL kann keine Transaktionen bei der Migration von Datenbanken
  2. | = Pipe
  3. to_i liefert 0 falls keine Zuordnung m&#xF6;glich
  4. to_i liefert 0 falls keine Zuordnung m&#xF6;glich
  5. to_i liefert 0 falls keine Zuordnung m&#xF6;glich
  6. to_i liefert 0 falls keine Zuordnung m&#xF6;glich
  7. to_i liefert 0 falls keine Zuordnung m&#xF6;glich
  8. to_i liefert 0 falls keine Zuordnung m&#xF6;glich
  9. to_i liefert 0 falls keine Zuordnung m&#xF6;glich