SlideShare une entreprise Scribd logo
1  sur  14
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],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!!

Contenu connexe

En vedette (9)

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

Similaire à Ruby (nem tão) Básico (11)

Curso Ruby
Curso RubyCurso Ruby
Curso Ruby
 
Desenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsDesenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on Rails
 
Lapidando ruby
Lapidando rubyLapidando ruby
Lapidando ruby
 
Aula 1
Aula 1Aula 1
Aula 1
 
Curso ruby on rails
Curso ruby on railsCurso ruby on rails
Curso ruby on rails
 
Ruby para-programadores-php
Ruby para-programadores-phpRuby para-programadores-php
Ruby para-programadores-php
 
Ruby para programadores PHP
Ruby para programadores PHPRuby para programadores PHP
Ruby para programadores PHP
 
Começando com Ruby - III SEICOM
Começando com Ruby - III SEICOMComeçando com Ruby - III SEICOM
Começando com Ruby - III SEICOM
 
Workshop Ruby on Rails dia 1 ruby-pt
Workshop Ruby on Rails dia 1 ruby-ptWorkshop Ruby on Rails dia 1 ruby-pt
Workshop Ruby on Rails dia 1 ruby-pt
 
Introdução a Ruby para Programadores C#
Introdução a Ruby para Programadores C#Introdução a Ruby para Programadores C#
Introdução a Ruby para Programadores C#
 
Apresentação sobre Rails - 2010
Apresentação sobre Rails - 2010Apresentação sobre Rails - 2010
Apresentação sobre Rails - 2010
 

Plus de Frevo on Rails (14)

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

Ruby (nem tão) Básico

  • 1.
  • 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