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
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)
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
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
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
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)
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
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)