Ruby, Ruby, Ruby!  Ferdi Niedermann und Thomas Ritter            1. Oktober 2009
Übersicht
Übersicht   Ruby Merkmale Geschichte Appetizers   Gems   IDEs
Übersicht  QtRuby  Beispiel
Übersicht   Rails Merkmale Geschichte  Beispiel
Ruby
Merkmale
Merkmale      Vollständig objektorientiert         Multiparadigmatisch      Principle of Least Surprise          Irb: inte...
Merkmale      Ruby Core Classes:String, Array, Hash, Symbol, ...      Fixnum, Bignum, ...
Geschichte
Geschichte  Yukihiro “Matz” Matsumoto      1993 angefangen     Erste Version 1995“Ruby” als Anspielung auf Perl       Vers...
Ruby Appetizers Das Wott Me!
puts "O HAI World!"
preis = 5puts “Der Preis beträgt #{preis} Franken.”
nil
# Variablenvar #lokale Variable$var #globale Variable@var #Instanzvariable@@var #Klassenvariable
fg = 1337unless fg == 1337  puts "Oh noes!!1"end
"Zeitschrift".include? "schrift" # -> true
satz = ["jedes", "Wort", "einzeln"]satz.each do |wort|  puts wortend
5.times doend1.upto(3) {|i| ... }3.downto(1) {|i| ... }0.step(10,2) {|i| ... }
class Klasse  def nummer=(Argument)    @nummer = Argument  end  def nummer    return @nummer  end  def +(Objekt)    return...
class Klasse attr_accessor :nummerendvar = Klasse.newvar.nummer = 42var.nummer # -> 42
lustiger_string = "BLaH"lustiger_string.swapcase! # -> "blAh"
hash = ["key" => "value", "key2" => "value2"]hash2 = [:key => "value", :key2 => 2]hash["key"] # -> "value"hash2[:key2] # -...
module Module  class Class    # Habba Babba  endend
module Leet  def give_me_the_answer    42  endendclass Array  include Leetend[1].give_me_the_answer # -> 42
Ruby Gems
Ruby Gems    Ruby “Paketmanager”Bibliotheken dazu installierenVergleichbar mit Java Paketen Mehrere Versionen parallel
Ruby Gems          Rails ist auch ein gem         (sudo) gem install railsBeispiele: ImageMagick, thinking_sphinx,        ...
IDEs
IDEs     Eclipse(Aptana RadRails)    Netbeans
QtRuby
require Qt4app = Qt::Application.new(ARGV)hello = Qt::PushButton.new(Hello World!)hello.resize(100, 30)hello.show()app.exe...
require Qt4app = Qt::Application.new(ARGV)hello = Qt::PushButton.new(Hello World!)hello.resize(100, 30)hello.show()Qt::Obj...
require Qt4class MyWidget < Qt::Widget  def initialize()    super()    quit = Qt::PushButton.new(Quit)    lcd = Qt::LCDNum...
Rails
Merkmale
Merkmale Web Application FrameworkFür agile Softwareentwicklung
Merkmale   Dont Repeat YourselfConvention Over Configuration   Model-View-Controller
Merkmale     ActiveSupport: Helfermethoden      ActiveRecord: DatenbankenActionPack: ActionController / ActionView Auch un...
Geschichte
GeschichteDavid Heinemeier Hansson Vorgestellt im Juli 2004   Zur Zeit: Version 2.3      In Planung: 3.0
Beispiel-Applikation “Chuck Student”
Chuck StudentTool zur Verwaltung von Studenten         Studenten: CRUD      ... und ihre Notebooks
Demo
Fragen?
Dankeschön!
Upcoming SlideShare
Loading in...5
×

Ruby, Ruby, Ruby!

1,030

Published on

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,030
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
11
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Ruby, Ruby, Ruby!

  1. 1. Ruby, Ruby, Ruby! Ferdi Niedermann und Thomas Ritter 1. Oktober 2009
  2. 2. Übersicht
  3. 3. Übersicht Ruby Merkmale Geschichte Appetizers Gems IDEs
  4. 4. Übersicht QtRuby Beispiel
  5. 5. Übersicht Rails Merkmale Geschichte Beispiel
  6. 6. Ruby
  7. 7. Merkmale
  8. 8. Merkmale Vollständig objektorientiert Multiparadigmatisch Principle of Least Surprise Irb: interactive rubyEinflüsse aus: Perl, Smalltalk, Python
  9. 9. Merkmale Ruby Core Classes:String, Array, Hash, Symbol, ... Fixnum, Bignum, ...
  10. 10. Geschichte
  11. 11. Geschichte Yukihiro “Matz” Matsumoto 1993 angefangen Erste Version 1995“Ruby” als Anspielung auf Perl Version: 1.8/1.9 CRuby und JRuby
  12. 12. Ruby Appetizers Das Wott Me!
  13. 13. puts "O HAI World!"
  14. 14. preis = 5puts “Der Preis beträgt #{preis} Franken.”
  15. 15. nil
  16. 16. # Variablenvar #lokale Variable$var #globale Variable@var #Instanzvariable@@var #Klassenvariable
  17. 17. fg = 1337unless fg == 1337 puts "Oh noes!!1"end
  18. 18. "Zeitschrift".include? "schrift" # -> true
  19. 19. satz = ["jedes", "Wort", "einzeln"]satz.each do |wort| puts wortend
  20. 20. 5.times doend1.upto(3) {|i| ... }3.downto(1) {|i| ... }0.step(10,2) {|i| ... }
  21. 21. class Klasse def nummer=(Argument) @nummer = Argument end def nummer return @nummer end def +(Objekt) return @nummer + Objekt.nummer endend
  22. 22. class Klasse attr_accessor :nummerendvar = Klasse.newvar.nummer = 42var.nummer # -> 42
  23. 23. lustiger_string = "BLaH"lustiger_string.swapcase! # -> "blAh"
  24. 24. hash = ["key" => "value", "key2" => "value2"]hash2 = [:key => "value", :key2 => 2]hash["key"] # -> "value"hash2[:key2] # -> 2
  25. 25. module Module class Class # Habba Babba endend
  26. 26. module Leet def give_me_the_answer 42 endendclass Array include Leetend[1].give_me_the_answer # -> 42
  27. 27. Ruby Gems
  28. 28. Ruby Gems Ruby “Paketmanager”Bibliotheken dazu installierenVergleichbar mit Java Paketen Mehrere Versionen parallel
  29. 29. Ruby Gems Rails ist auch ein gem (sudo) gem install railsBeispiele: ImageMagick, thinking_sphinx, prawn
  30. 30. IDEs
  31. 31. IDEs Eclipse(Aptana RadRails) Netbeans
  32. 32. QtRuby
  33. 33. require Qt4app = Qt::Application.new(ARGV)hello = Qt::PushButton.new(Hello World!)hello.resize(100, 30)hello.show()app.exec()
  34. 34. require Qt4app = Qt::Application.new(ARGV)hello = Qt::PushButton.new(Hello World!)hello.resize(100, 30)hello.show()Qt::Object.connect(hello,SIGNAL(clicked()), app, SLOT(quit()))app.exec()
  35. 35. require Qt4class MyWidget < Qt::Widget def initialize() super() quit = Qt::PushButton.new(Quit) lcd = Qt::LCDNumber.new(2) slider = Qt::Slider.new(Qt::Horizontal) slider.setRange(0, 99) slider.setValue(0) connect(quit, SIGNAL(clicked()), $qApp, SLOT(quit())) connect(slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int))) layout = Qt::VBoxLayout.new() layout.addWidget(quit) layout.addWidget(lcd) layout.addWidget(slider) setLayout(layout) endendapp = Qt::Application.new(ARGV)widget = MyWidget.new()widget.show()app.exec()
  36. 36. Rails
  37. 37. Merkmale
  38. 38. Merkmale Web Application FrameworkFür agile Softwareentwicklung
  39. 39. Merkmale Dont Repeat YourselfConvention Over Configuration Model-View-Controller
  40. 40. Merkmale ActiveSupport: Helfermethoden ActiveRecord: DatenbankenActionPack: ActionController / ActionView Auch unabhängig von Rails verwendbar
  41. 41. Geschichte
  42. 42. GeschichteDavid Heinemeier Hansson Vorgestellt im Juli 2004 Zur Zeit: Version 2.3 In Planung: 3.0
  43. 43. Beispiel-Applikation “Chuck Student”
  44. 44. Chuck StudentTool zur Verwaltung von Studenten Studenten: CRUD ... und ihre Notebooks
  45. 45. Demo
  46. 46. Fragen?
  47. 47. Dankeschön!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×