2. Ruby
● Objektovo orientovaný jazyk založený na
posielaní správ:
class XML
def method_missing(msg, *args, &block)
puts "<#{msg}>#{args[0]}</#{msg}>"
end
end
document = XML.new
document.title “New document“
3. Ruby
● Prky funkcionálneho programovania - closures
class XML
def method_missing(msg, *args, &block)
args.each do |value|
puts "<#{msg}>#{value}</#{msg}>"
end
end
end
XML.new.name “John“, “Jack“, “Joe“, “Justin“, “Julian“
4. Ruby
● Dynamické typovanie
● Metaprogramovanie, otvorené triedy, symboly,...
● Key Value Coding pomocou asociatívnych polí
● Minimalistická syntax, nepovinné zátvorky,
nepovinné bodkočiarky, end na konci bloku
kódu namiesto zložených zátvoriek okolo,...
5. Rails
● Konvencia pred konfiguráciou, scaffolding
● Architektúra MVC s podporou štýlu REST
$ ruby script/generate scaffold Recipe title:string
chef:string instructions:text
● Views pre index, show, new a edit operácie
● Layout a CSS pre Recipes
● Controller, Helper, funkčný test a presmerovanie URL
adries v štýle REST pre Recipes
● Model, migrácia, unit test a testovacie dáta pre Recipe
7. Rails
● Vzor Active Record spolu s migráciami a rake
db:* úlohami úplne abstrahujú od databázu
$ruby script/generate model Folder
class Folder < ActiveRecord::Base
acts_as_tree
belongs_to :user
has_many :messages, :class_name => "Message"
end
$rake db:migrate