Ruby (nem tão) Básico

Post on 24-Dec-2014

1.064 views 0 download

description

Palestra de introdução a Ruby feita por Bruno no 3º encontro do Frevo on Rails.

Transcript of Ruby (nem tão) Básico

Desenvolve desde 2000Trabalhou com delphi,java,CTrabalha agora com RubyAuto-DidataLouco por POOAdora TDDNão sabe css,alguém me ensina?

 

EuEu

Ruby Ruby The Fodam! LanguageThe Fodam! Language

Porque Ruby?Porque Ruby?

The Ruby WayThe Ruby Way

NomesDeClassenomes_de_metodos e nomes_de_variaveismetodos_fazendo_pergunta?metodos_perigosos!@variaveis_de_instancia@@variaveis_de_classe$variaveis_globaisALGUMAS_CONSTANTES ou OutrasConstante

Tudo é ObjetoTudo é Objeto

0.zero? # => true1.zero? # => false1.abs # => 1-1.abs # => 11.methods # => lista de metodos do objeto 110.class # => FixnumString.classnil.class

Tipagem ForteTipagem Forte

Result = 1 + “2”

TypeError: String can't be coerced into Fixnumfrom (irb):1:in `+'from (irb):1from :0

Poo RubyPoo Ruby

Open Class

Mensagens

Metodos Como Objetos

Fabrica de Objetos

Duck Type

Modulos

Open ClassOpen Class

Podemos abrir as classes e adicionar metodos!

Class Homem attr_access :nomeendclass Mulher def amar puts 'amar' endend

class Mulher def fazer_menino(homem) puts 'fazendo menino com #{homem.nome}' endend

MensagensMensagens

Um objeto em ruby envia mensagens, não chama metodos

class ExecutorDeClasses

def executar(obj,metodo) obj.send(metodo) endend

exec = ExecutorDeClasses.new

exec.executar Mulher.new,:amar

Como é?Como é?

Objeto

Tabela de Metodos

Duck TypeDuck Type

class ImpostoEua def calcular puts "imposto baixo" endend

class ImpostoBrasil def calcular puts 'imposto alto pra caralho!!' endend

Duck TypeDuck Type

def calcular_imposto(objeto) objeto.calcularend

calcular_imposto ImpostoEua.newcalcular_imposto ImpostoBrasil.new

Um pequeno servidorUm pequeno servidor

Ruby,Ruby,Ruby!!Ruby,Ruby,Ruby!!

Obrigado!!