ruby (nem tão) básico
DESCRIPTION
Palestra de introdução a Ruby feita por Bruno no 3º encontro do Frevo on Rails.TRANSCRIPT
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!!