ÁGIL na  PRÁTICA
Ruby Criado em 1993 por Yukihiro Matsumoto, aka (Matz)
Comunidade muito ativa
Baseada em Smalltalk, Lisp, Phyton, Perl, Eiffel, Ada
Genérica, interpretada, reflexiva , com  garbage collection
Optimizada para os programadores e não para os compiladores.
Tudo são objectos. Não existem tipos primitivos
Tipagem Dinamica Forte
Muito produtiva: Menos linhas de código   Igo Coelho  www.igocoelho.com.br
Instalação Pré-instalado no MAC
Em Windows instalador next, next, next
apt-get install ruby Igo Coelho  www.igocoelho.com.br
IRB Console interativo do Ruby
Basta digitar “irb” no console   Igo Coelho  www.igocoelho.com.br
Tudo é um objeto 2 + 2 é equivalente a 2+(2) e 2.send(:+, 2)
2.class # => Fixnum
2.class.methods - Object.methods
“ ágil na prática”.capitalize   Igo Coelho  www.igocoelho.com.br
Aritmética e Conversões 2.class == Fixnum
Fixnum.superclass == Integer
Integer.superclass == Numeric
3.0.class == Float
Float.superclass == Numeric
2/3 == 0 ; 2/3.0 # => 0.6666667 ; 2 + 3.0 == 5.0 ;
“ 2”.to_i + “3.0”.to_f == 5.0
10000000000.class == Bignum ;  Bignum.superclass
== Integer
2 + “3” # => TypeError: String can’t be coerced into  Igo Coelho  www.igocoelho.com.br
Atribuições >> valor = 1 => 1 >> valor += 1 => 2 >> valor -= 1 => 1 Igo Coelho  www.igocoelho.com.br
Atribuições >> a = 2 => 2 >> b = 3 => 3 >> a, b = b, a => [3, 2] >> puts a 3 => nil >> puts b 2 => nil Igo Coelho  www.igocoelho.com.br
Strings São mutáveis, diferente do Java... >> texto = “valor inicial” => “valor inicial” >> texto << “ alterado” => “valor inicial alterado” >> puts(texto) valor inicial alterado => nil Igo Coelho  www.igocoelho.com.br
Cadeias >> nome = “Igo Coelho” => “Igo Coelho” >> “Olá, #{nome}” => “Olá, Igo Coelho” >> “Olá, #{nome.upcase}” Igo Coelho  www.igocoelho.com.br
Symbols Os Symbols començam com :   :action.class == Symbol   :action.to_s == “action”   :action == “action”.to_sym   Existe apenas uma instancia de cada simbolo   :action.equal?(:action) # => true   ‘ action’.equal?(‘action’) # => false   tipicamente são utilizados como chaves nas tabelas de Hash   link_to “Home”, :controller => “home” Igo Coelho  www.igocoelho.com.br
Expressões Booleanas Todos os objectos devolvem verdade excepto false e nil
false e true são as únicas instancias da FalseClass and TrueClass Igo Coelho  www.igocoelho.com.br

Ágil na Prática - Ruby