SlideShare uma empresa Scribd logo
Desenvolve desde 2000 Trabalhou com delphi,java,C Trabalha agora com Ruby Auto-Didata Louco por POO Adora TDD Não sabe css,alguém me ensina?   Eu
Ruby  The Fodam! Language
Porque Ruby?
The Ruby Way NomesDeClasse nomes_de_metodos e nomes_de_variaveis metodos_fazendo_pergunta? metodos_perigosos! @variaveis_de_instancia @@variaveis_de_classe $variaveis_globais ALGUMAS_CONSTANTES ou OutrasConstante
Tudo é Objeto 0.zero? # => true 1.zero? # => false 1.abs # => 1 -1.abs # => 1 1.methods # => lista de metodos do objeto 1 10.class # => Fixnum String.class nil.class
Tipagem Forte Result = 1 + “2” TypeError: String can't be coerced into Fixnum from (irb):1:in `+' from (irb):1 from :0
Poo Ruby Open Class Mensagens Metodos Como Objetos Fabrica de Objetos Duck Type Modulos
Open Class Podemos abrir as classes e adicionar metodos! Class Homem attr_access :nome end class Mulher def amar puts 'amar' end end class Mulher def fazer_menino(homem) puts 'fazendo menino com #{homem.nome}' end end
Mensagens Um objeto em ruby envia mensagens, não chama metodos class ExecutorDeClasses def executar(obj,metodo) obj.send(metodo) end end exec = ExecutorDeClasses.new exec.executar Mulher.new,:amar
Como é? Objeto Tabela de Metodos
Duck Type class ImpostoEua def calcular puts "imposto baixo" end end class ImpostoBrasil def calcular puts 'imposto alto pra caralho!!' end end
Duck Type def calcular_imposto(objeto) objeto.calcular end calcular_imposto ImpostoEua.new calcular_imposto ImpostoBrasil.new
Um pequeno servidor
Ruby,Ruby,Ruby!! Obrigado!!

Mais conteúdo relacionado

PDF
Introdução à programação em Ruby
PDF
Introdução a Linguagem de Programação Ruby
PPTX
Desvendando a linguagem JavaScript
PDF
Paradigmas do Ruby
PDF
Ruby, Rails e Diversão (Campus Party Brasil 2009)
PDF
Apresentação ruby + rails 2014
PDF
GraphQL: PUTs, onde foram parar os verbos HTTP?
PDF
Curso java 02 - variáveis
Introdução à programação em Ruby
Introdução a Linguagem de Programação Ruby
Desvendando a linguagem JavaScript
Paradigmas do Ruby
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Apresentação ruby + rails 2014
GraphQL: PUTs, onde foram parar os verbos HTTP?
Curso java 02 - variáveis

Destaque (9)

PDF
Crash Course Ruby & Rails
PDF
โครงงานเทคโนโลยีปุ๋ยคอกรึปุ๋ยเคมีที่พืชเจริญเติบโตดีกว่ากัน
PPTX
PDF
Ruby on Rails at PROMPT ISEL '11
PDF
Introdução ao Ruby on Rails
PDF
Dando os primeiros passos com rails
PDF
O que vem por aí com Rails 3
PDF
Ruby On Rails
PDF
What is-google-adwords
Crash Course Ruby & Rails
โครงงานเทคโนโลยีปุ๋ยคอกรึปุ๋ยเคมีที่พืชเจริญเติบโตดีกว่ากัน
Ruby on Rails at PROMPT ISEL '11
Introdução ao Ruby on Rails
Dando os primeiros passos com rails
O que vem por aí com Rails 3
Ruby On Rails
What is-google-adwords
Anúncio

Semelhante a Ruby (nem tão) Básico (15)

PPTX
Curso ruby on rails
ODP
Curso Ruby
PDF
Introdução à Linguagem Ruby
PDF
Curso de introdução ao ruby
PPTX
Minicurso: Desenvolvimento na velocidade da luz com Ruby on Rails
PDF
Ruby para programadores java
ODP
PDF
Aprendendo ruby
PDF
Workshop Ruby on Rails dia 1 ruby-pt
PDF
Começando com Ruby - III SEICOM
KEY
Ruby para programadores PHP
KEY
Ruby para-programadores-php
PPT
Apresentação ruby - IEI 2013
PDF
Minicurso de Rails - WTISC 2014
PDF
Conhecendo Ruby on Rails
Curso ruby on rails
Curso Ruby
Introdução à Linguagem Ruby
Curso de introdução ao ruby
Minicurso: Desenvolvimento na velocidade da luz com Ruby on Rails
Ruby para programadores java
Aprendendo ruby
Workshop Ruby on Rails dia 1 ruby-pt
Começando com Ruby - III SEICOM
Ruby para programadores PHP
Ruby para-programadores-php
Apresentação ruby - IEI 2013
Minicurso de Rails - WTISC 2014
Conhecendo Ruby on Rails
Anúncio

Mais de Frevo on Rails (14)

PDF
Ruby e o Mundo Mágico dos Unicórnios
PDF
As aventuras psicodélicas de Guilherme no mundo open source
PDF
Introducao a Ruby on Rails
PDF
Event machine
PDF
Apresentacao institucional Frevo on Rails
PDF
Programação GUI com jRuby
PDF
awesome_nested_fields
PDF
WebApps minimalistas com Sinatra
PDF
The elements of User Experience
PPT
jcheck: validações client-side sem dores
PDF
Perfil da Comunidade
PDF
Resolvendo problemas de dependências com o Bundler
PDF
Introdução a Ruby
PDF
Regras do Coding Dojo
Ruby e o Mundo Mágico dos Unicórnios
As aventuras psicodélicas de Guilherme no mundo open source
Introducao a Ruby on Rails
Event machine
Apresentacao institucional Frevo on Rails
Programação GUI com jRuby
awesome_nested_fields
WebApps minimalistas com Sinatra
The elements of User Experience
jcheck: validações client-side sem dores
Perfil da Comunidade
Resolvendo problemas de dependências com o Bundler
Introdução a Ruby
Regras do Coding Dojo

Ruby (nem tão) Básico

  • 1. Desenvolve desde 2000 Trabalhou com delphi,java,C Trabalha agora com Ruby Auto-Didata Louco por POO Adora TDD Não sabe css,alguém me ensina?   Eu
  • 2. Ruby The Fodam! Language
  • 4. The Ruby Way NomesDeClasse nomes_de_metodos e nomes_de_variaveis metodos_fazendo_pergunta? metodos_perigosos! @variaveis_de_instancia @@variaveis_de_classe $variaveis_globais ALGUMAS_CONSTANTES ou OutrasConstante
  • 5. Tudo é Objeto 0.zero? # => true 1.zero? # => false 1.abs # => 1 -1.abs # => 1 1.methods # => lista de metodos do objeto 1 10.class # => Fixnum String.class nil.class
  • 6. Tipagem Forte Result = 1 + “2” TypeError: String can't be coerced into Fixnum from (irb):1:in `+' from (irb):1 from :0
  • 7. Poo Ruby Open Class Mensagens Metodos Como Objetos Fabrica de Objetos Duck Type Modulos
  • 8. Open Class Podemos abrir as classes e adicionar metodos! Class Homem attr_access :nome end class Mulher def amar puts 'amar' end end class Mulher def fazer_menino(homem) puts 'fazendo menino com #{homem.nome}' end end
  • 9. Mensagens Um objeto em ruby envia mensagens, não chama metodos class ExecutorDeClasses def executar(obj,metodo) obj.send(metodo) end end exec = ExecutorDeClasses.new exec.executar Mulher.new,:amar
  • 10. Como é? Objeto Tabela de Metodos
  • 11. Duck Type class ImpostoEua def calcular puts "imposto baixo" end end class ImpostoBrasil def calcular puts 'imposto alto pra caralho!!' end end
  • 12. Duck Type def calcular_imposto(objeto) objeto.calcular end calcular_imposto ImpostoEua.new calcular_imposto ImpostoBrasil.new