Slides and code from Ruby and Rails talk at UM, FERI
Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
code
README.markdown

README.markdown

Uvod

Ruby

Definicija

  • Dinanamični, reflektivni, objektno orientirani programski jezik
  • Avtor: Yukihiro "Matz" Matsumoto - @yukihiro_matz, Prvi relese (0.95) 21. december 1995.
  • Navdih: Perl, Smalltalk, Lisp,...
  • Ime dobil 24. februarja 1993 po napisu na nagrobniku prijatelja Yukihiro Matsumoto-a
  • Zadnja stabilna različica 1.9.2 / 1.8

Implementacija

  • "single-pass" interpretirani programski jezik
  • RVM = Ruby Virtual Machine (Napisan v C)
  • Nima specifikacije/standarda. RVM implementacije se zgledujejo po originalni implementaciji.

RVM - Ruby virtual machine

  • IronRuby (0.9)
    • Na .NET Framework-u (Lahko uporablja .NET Knjižnice)
  • JRuby - (1.6.1)
    • 100% Java implementacija
    • Visoka odzivnost, velika količnina (Java + Ruby) knjižnic, pravo java nitenje
  • MacRuby
    • Implementacija Ruby 1.9 na OS X tehnologijah.
    • Objective-C Garbabe Collector, LLVM prevajalnik, ICU ogroje, hitrost na OSX
  • Rubinius
    • Implementacija jezika Ruby v C++, ki prevaja "byte code" v strojno kodo v času izvajanja
    • Implementacija uporablja "low-level" C funkcije

Gradniki in funkcionalnosti

  • Objektno orientiran
  • Meta razredi, Mixin-i, inherenca,
  • Duck typing (Dynamic typing)
  • Fleksibilna sintaksa -> primeren kot DSL
  • Lexical closures, iteratorji, generatorji, simboli
  • Dosegljivost: globalna, razredna, instančna, lokalna
  • Avtomatični "garbage collector"
  • Lovljenje napak
  • Nativna podpora za niti in implementacija "fibers"
  • Nativna podpora za Unicode (+...)
  • Nativni plug-in API za C
  • Interaktivna "konzola" - IRB - Interactive Ruby Shell - / REPL
  • Centraliziran paketni sistem RubyGems
  • Velik Standard Library

Objekti (demo01.rb)

  • Vse v Ruby je objekt!
  • Demo 01: Konzola IRB, primeri objektov, veriženje objektov, funkcijsko programiranje

Kolekcije (demo02.rb)

  • Polje = Array
  • Asociativno polje = Asociative Array
  • Demo 02: Delo s polji in hashi,...

Razredi (demo03.rb)

  • Tudi razred je objekt! (WTF!?)
  • Demo 03: Definiranje razreda, primer mixina, primer instanciranja, scope...

Help?!

  • Object#respond_to?
  • Object#methods
  • Duck typing; Object#to_a, Object#to_i, Object#to_ary, Object#to_enum, ...
  • ri Array
  • ri Hash#each_pair

Kako začeti?

Zakaj?!

Ruby on Rails Trends

Rails

...