Nem tanto, nem tão pouco - reflexões em educação socioambiental
Ruby (nem tão) Básico
-
Upload
frevo-on-rails -
Category
Documents
-
view
1.062 -
download
0
description
Transcript of Ruby (nem tão) Básico
![Page 1: Ruby (nem tão) Básico](https://reader035.fdocument.pub/reader035/viewer/2022062616/549abb8db479592e098b45bf/html5/thumbnails/1.jpg)
Desenvolve desde 2000Trabalhou com delphi,java,CTrabalha agora com RubyAuto-DidataLouco por POOAdora TDDNão sabe css,alguém me ensina?
EuEu
![Page 2: Ruby (nem tão) Básico](https://reader035.fdocument.pub/reader035/viewer/2022062616/549abb8db479592e098b45bf/html5/thumbnails/2.jpg)
Ruby Ruby The Fodam! LanguageThe Fodam! Language
![Page 3: Ruby (nem tão) Básico](https://reader035.fdocument.pub/reader035/viewer/2022062616/549abb8db479592e098b45bf/html5/thumbnails/3.jpg)
Porque Ruby?Porque Ruby?
![Page 4: Ruby (nem tão) Básico](https://reader035.fdocument.pub/reader035/viewer/2022062616/549abb8db479592e098b45bf/html5/thumbnails/4.jpg)
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
![Page 5: Ruby (nem tão) Básico](https://reader035.fdocument.pub/reader035/viewer/2022062616/549abb8db479592e098b45bf/html5/thumbnails/5.jpg)
Tudo é ObjetoTudo é Objeto
0.zero? # => true1.zero? # => false1.abs # => 1-1.abs # => 11.methods # => lista de metodos do objeto 110.class # => FixnumString.classnil.class
![Page 6: Ruby (nem tão) Básico](https://reader035.fdocument.pub/reader035/viewer/2022062616/549abb8db479592e098b45bf/html5/thumbnails/6.jpg)
Tipagem ForteTipagem Forte
Result = 1 + “2”
TypeError: String can't be coerced into Fixnumfrom (irb):1:in `+'from (irb):1from :0
![Page 7: Ruby (nem tão) Básico](https://reader035.fdocument.pub/reader035/viewer/2022062616/549abb8db479592e098b45bf/html5/thumbnails/7.jpg)
Poo RubyPoo Ruby
Open Class
Mensagens
Metodos Como Objetos
Fabrica de Objetos
Duck Type
Modulos
![Page 8: Ruby (nem tão) Básico](https://reader035.fdocument.pub/reader035/viewer/2022062616/549abb8db479592e098b45bf/html5/thumbnails/8.jpg)
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
![Page 9: Ruby (nem tão) Básico](https://reader035.fdocument.pub/reader035/viewer/2022062616/549abb8db479592e098b45bf/html5/thumbnails/9.jpg)
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
![Page 10: Ruby (nem tão) Básico](https://reader035.fdocument.pub/reader035/viewer/2022062616/549abb8db479592e098b45bf/html5/thumbnails/10.jpg)
Como é?Como é?
Objeto
Tabela de Metodos
![Page 11: Ruby (nem tão) Básico](https://reader035.fdocument.pub/reader035/viewer/2022062616/549abb8db479592e098b45bf/html5/thumbnails/11.jpg)
Duck TypeDuck Type
class ImpostoEua def calcular puts "imposto baixo" endend
class ImpostoBrasil def calcular puts 'imposto alto pra caralho!!' endend
![Page 12: Ruby (nem tão) Básico](https://reader035.fdocument.pub/reader035/viewer/2022062616/549abb8db479592e098b45bf/html5/thumbnails/12.jpg)
Duck TypeDuck Type
def calcular_imposto(objeto) objeto.calcularend
calcular_imposto ImpostoEua.newcalcular_imposto ImpostoBrasil.new
![Page 13: Ruby (nem tão) Básico](https://reader035.fdocument.pub/reader035/viewer/2022062616/549abb8db479592e098b45bf/html5/thumbnails/13.jpg)
Um pequeno servidorUm pequeno servidor
![Page 14: Ruby (nem tão) Básico](https://reader035.fdocument.pub/reader035/viewer/2022062616/549abb8db479592e098b45bf/html5/thumbnails/14.jpg)
Ruby,Ruby,Ruby!!Ruby,Ruby,Ruby!!
Obrigado!!