SlideShare uma empresa Scribd logo
1 de 43
Baixar para ler offline
Wende Mendes Higino

email: wende.mendes@bluesoft.com.br
Ruby
* Singleton class

* Metaprogramação

* Visibilidade de métodos

* Convenções

* Herança

* Múltiplos parâmetros

* Arrays
Ruby



* Singleton class

 - O código abaixo irá definir o método anda explicitamente na
singleton class.
Ruby
Ruby
Ruby
Ruby



* Metaprogramação

 - Por ser uma linguagem dinâmica, Ruby permite adicionar
outros métodos e operações aos objetos em tempo
de execução
Ruby
Ruby




* Metaprogramação

 - Levando o dinamismo de Ruby ao extremo, podemos criar
métodos que definem métodos em outros objetos.
Ruby
Ruby
Ruby
Ruby




* Visibilidade dos métodos

- Por padrão todos os métodos são publicos
Ruby
Ruby
Ruby
Ruby
* Convenções

    - Variáveis e métodos sempre minúsculos
separados por ' _ '
   - Variáveis com nomes maiúsculo ( constantes )
   - Classes ( DuplicataCobranca )
   - Na defnição de métodos procure sempre usar ()
   - Para a chamada não há convenção
   - Procure sempre o que é mais legível
   - Métodos que retornam booleanos costumam
     terminam com ?
Ruby



Herança com ruby
Ruby
Ruby
Ruby
Ruby
Ruby



    - Para o criador de cachorro não interessa qual
objeto será passado com paramêtro. Para ele basta
que o objeto tenha o método “late”
Ruby



   * Múltiplos parâmetros

- Em alguns instantes desejamos receber um número x
de parâmetros em um método.
Ruby

- Para recebermos um ou vários parâmetros usamos a
sintaxe *
Ruby



    - Mas nem sempre queremos usar array. Podemos
usar Hash.
- Por serem únicos e imutáveis, símbolos são ótimos
candidatos a serem chaves de Hash.
Ruby


 - Imagine que tenho uma conta bancária em minhas
mãos e desejo invocar o método de transferência, que
requer a conta destino, a data na qual o valor será
transferido.
Ruby
 - No momento de executar o método descobrimos que
a ordem dos parâmetros era incorreta, o valor deveria
vir antes da data, de acordo com a defnição do
método esta errado.
Ruby

- Movimento que se tornou comum com a popularização do
Rails 2, passando parâmetro através de hash:
Ruby
Ruby

- Variações nos símbolos permitem melhorar ainda
mais a ligibidade.
Ruby

* Arrays
Ruby
* Arrays

- Arrays podem conter vários tipos de objetos (ou não):
Ruby
- Inserindo elementos
Ruby
- Inserindo elementos
Ruby
- Criando array baseado em alguma condição
Ruby
- Ordenando um array
Ruby
- Ordenando um array
Ruby
- Ordenando um array
Ruby
- Método any?
Ruby
- Método all?
Ruby
Ruby com Singleton class, Metaprogramação e muito mais

Mais conteúdo relacionado

Mais procurados

Conhecendo Ruby on Rails
Conhecendo Ruby on RailsConhecendo Ruby on Rails
Conhecendo Ruby on RailsSergio Henrique
 
JavaScript for Beginners
JavaScript for BeginnersJavaScript for Beginners
JavaScript for BeginnersSAPO Sessions
 
Delphi Conference 2012 - Programação Baseado em Regras com RTTI
Delphi Conference 2012 - Programação Baseado em Regras com RTTIDelphi Conference 2012 - Programação Baseado em Regras com RTTI
Delphi Conference 2012 - Programação Baseado em Regras com RTTIMario Guedes
 
Apresentação ruby + rails 2014
Apresentação ruby + rails 2014Apresentação ruby + rails 2014
Apresentação ruby + rails 2014Marcelo Bohn
 
Voodoo é pra Jacu - Entendendo metaprogramação em ruby
Voodoo é pra Jacu - Entendendo metaprogramação em rubyVoodoo é pra Jacu - Entendendo metaprogramação em ruby
Voodoo é pra Jacu - Entendendo metaprogramação em rubyDavid Paniz
 
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-ThreadDelphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-ThreadMario Guedes
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptRodrigo Branas
 
Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...
Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...
Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...David Paniz
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
 
Ruby, Rails e Diversão
Ruby, Rails e DiversãoRuby, Rails e Diversão
Ruby, Rails e DiversãoJulio Monteiro
 
Apresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBAApresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBALuciano Borges
 
Abordagem geral - Ruby on rails
Abordagem geral - Ruby on railsAbordagem geral - Ruby on rails
Abordagem geral - Ruby on railsCOTIC-PROEG (UFPA)
 
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Julio Monteiro
 
Apresentação ruby + rails
Apresentação ruby + railsApresentação ruby + rails
Apresentação ruby + railsMarcelo Bohn
 
Delphi Conference 2011 - Desmistificando as Expressões Regulares
Delphi Conference 2011 - Desmistificando as Expressões RegularesDelphi Conference 2011 - Desmistificando as Expressões Regulares
Delphi Conference 2011 - Desmistificando as Expressões RegularesMario Guedes
 

Mais procurados (18)

A Linguagem Ruby
A Linguagem RubyA Linguagem Ruby
A Linguagem Ruby
 
Conhecendo Ruby on Rails
Conhecendo Ruby on RailsConhecendo Ruby on Rails
Conhecendo Ruby on Rails
 
JavaScript for Beginners
JavaScript for BeginnersJavaScript for Beginners
JavaScript for Beginners
 
Delphi Conference 2012 - Programação Baseado em Regras com RTTI
Delphi Conference 2012 - Programação Baseado em Regras com RTTIDelphi Conference 2012 - Programação Baseado em Regras com RTTI
Delphi Conference 2012 - Programação Baseado em Regras com RTTI
 
Apresentação ruby + rails 2014
Apresentação ruby + rails 2014Apresentação ruby + rails 2014
Apresentação ruby + rails 2014
 
Voodoo é pra Jacu - Entendendo metaprogramação em ruby
Voodoo é pra Jacu - Entendendo metaprogramação em rubyVoodoo é pra Jacu - Entendendo metaprogramação em ruby
Voodoo é pra Jacu - Entendendo metaprogramação em ruby
 
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-ThreadDelphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScript
 
Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...
Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...
Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Ruby, Rails e Diversão
Ruby, Rails e DiversãoRuby, Rails e Diversão
Ruby, Rails e Diversão
 
Apresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBAApresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBA
 
Abordagem geral - Ruby on rails
Abordagem geral - Ruby on railsAbordagem geral - Ruby on rails
Abordagem geral - Ruby on rails
 
Ruby
RubyRuby
Ruby
 
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)
 
Seja DinâMico Com Python
Seja DinâMico Com PythonSeja DinâMico Com Python
Seja DinâMico Com Python
 
Apresentação ruby + rails
Apresentação ruby + railsApresentação ruby + rails
Apresentação ruby + rails
 
Delphi Conference 2011 - Desmistificando as Expressões Regulares
Delphi Conference 2011 - Desmistificando as Expressões RegularesDelphi Conference 2011 - Desmistificando as Expressões Regulares
Delphi Conference 2011 - Desmistificando as Expressões Regulares
 

Destaque

Cuaderno digital..
Cuaderno digital..Cuaderno digital..
Cuaderno digital..MalejaFu
 
Catalogo Elearning 2011
Catalogo Elearning 2011Catalogo Elearning 2011
Catalogo Elearning 2011ALSIMA
 
Amor y amistad
Amor y amistadAmor y amistad
Amor y amistad3132815009
 
Tarea 08 lola_maria_reyes_santivañez
Tarea 08 lola_maria_reyes_santivañez Tarea 08 lola_maria_reyes_santivañez
Tarea 08 lola_maria_reyes_santivañez lolaresa
 
Proyecto final
Proyecto finalProyecto final
Proyecto finalaguitefy
 
Mais da metade dos brasileiros comprou por impulso nos últimos três meses
Mais da metade dos brasileiros comprou por impulso nos últimos três mesesMais da metade dos brasileiros comprou por impulso nos últimos três meses
Mais da metade dos brasileiros comprou por impulso nos últimos três mesesSPC Brasil
 
2ª Aula de Recuperação - 2ª Série EM - Geografia
2ª Aula de Recuperação - 2ª Série EM - Geografia2ª Aula de Recuperação - 2ª Série EM - Geografia
2ª Aula de Recuperação - 2ª Série EM - GeografiaAntonio Carlos da Silva
 
Diversidad cultural
Diversidad culturalDiversidad cultural
Diversidad culturalgudaesparza
 

Destaque (20)

equipo 5
equipo 5equipo 5
equipo 5
 
Esquema bien
Esquema bienEsquema bien
Esquema bien
 
Cuaderno digital..
Cuaderno digital..Cuaderno digital..
Cuaderno digital..
 
Catalogo Elearning 2011
Catalogo Elearning 2011Catalogo Elearning 2011
Catalogo Elearning 2011
 
Amor y amistad
Amor y amistadAmor y amistad
Amor y amistad
 
Tarea 08 lola_maria_reyes_santivañez
Tarea 08 lola_maria_reyes_santivañez Tarea 08 lola_maria_reyes_santivañez
Tarea 08 lola_maria_reyes_santivañez
 
Mito el mohán
Mito el mohánMito el mohán
Mito el mohán
 
Violencia familiar
Violencia familiarViolencia familiar
Violencia familiar
 
Fran
FranFran
Fran
 
Yuranis
YuranisYuranis
Yuranis
 
Proyecto final
Proyecto finalProyecto final
Proyecto final
 
Filosofia Comsopolitan Incentives
Filosofia Comsopolitan IncentivesFilosofia Comsopolitan Incentives
Filosofia Comsopolitan Incentives
 
Maria camila s. 1
Maria camila s. 1Maria camila s. 1
Maria camila s. 1
 
Triptico (3)
Triptico (3)Triptico (3)
Triptico (3)
 
Plantilla de plan_de_unidad[1]
Plantilla de plan_de_unidad[1]Plantilla de plan_de_unidad[1]
Plantilla de plan_de_unidad[1]
 
Mais da metade dos brasileiros comprou por impulso nos últimos três meses
Mais da metade dos brasileiros comprou por impulso nos últimos três mesesMais da metade dos brasileiros comprou por impulso nos últimos três meses
Mais da metade dos brasileiros comprou por impulso nos últimos três meses
 
2ª Aula de Recuperação - 2ª Série EM - Geografia
2ª Aula de Recuperação - 2ª Série EM - Geografia2ª Aula de Recuperação - 2ª Série EM - Geografia
2ª Aula de Recuperação - 2ª Série EM - Geografia
 
Tarea 07
Tarea 07Tarea 07
Tarea 07
 
Diversidad cultural
Diversidad culturalDiversidad cultural
Diversidad cultural
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 

Semelhante a Ruby com Singleton class, Metaprogramação e muito mais

Apresentação de ruby com blocos de programação, módulos e outros exemplos
Apresentação de ruby com blocos de programação, módulos e outros exemplosApresentação de ruby com blocos de programação, módulos e outros exemplos
Apresentação de ruby com blocos de programação, módulos e outros exemplosWende Mendes
 
Introdução ao Ruby on Rails
Introdução ao Ruby on RailsIntrodução ao Ruby on Rails
Introdução ao Ruby on RailsJuan Maiz
 
Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014Zarathon Maia
 
Ruby para testers II - Introdução
Ruby para testers II - IntroduçãoRuby para testers II - Introdução
Ruby para testers II - IntroduçãoTestRock!
 
Quick introduction to Ruby on Rails
Quick introduction to Ruby on RailsQuick introduction to Ruby on Rails
Quick introduction to Ruby on RailsWhitesmith
 
Ruby and Rails intro
Ruby and Rails introRuby and Rails intro
Ruby and Rails introNuno Silva
 
Testes Automatizados em Ruby on Rails
Testes Automatizados em Ruby on RailsTestes Automatizados em Ruby on Rails
Testes Automatizados em Ruby on RailsThiago Cifani
 

Semelhante a Ruby com Singleton class, Metaprogramação e muito mais (13)

RoR na prática
RoR na práticaRoR na prática
RoR na prática
 
SEA Rails na pratica
SEA Rails na praticaSEA Rails na pratica
SEA Rails na pratica
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
Apresentação de ruby com blocos de programação, módulos e outros exemplos
Apresentação de ruby com blocos de programação, módulos e outros exemplosApresentação de ruby com blocos de programação, módulos e outros exemplos
Apresentação de ruby com blocos de programação, módulos e outros exemplos
 
Introdução ao Ruby on Rails
Introdução ao Ruby on RailsIntrodução ao Ruby on Rails
Introdução ao Ruby on Rails
 
Rails na pratica
Rails na praticaRails na pratica
Rails na pratica
 
Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014
 
Curso Ruby
Curso RubyCurso Ruby
Curso Ruby
 
Ruby e Rails
Ruby e RailsRuby e Rails
Ruby e Rails
 
Ruby para testers II - Introdução
Ruby para testers II - IntroduçãoRuby para testers II - Introdução
Ruby para testers II - Introdução
 
Quick introduction to Ruby on Rails
Quick introduction to Ruby on RailsQuick introduction to Ruby on Rails
Quick introduction to Ruby on Rails
 
Ruby and Rails intro
Ruby and Rails introRuby and Rails intro
Ruby and Rails intro
 
Testes Automatizados em Ruby on Rails
Testes Automatizados em Ruby on RailsTestes Automatizados em Ruby on Rails
Testes Automatizados em Ruby on Rails
 

Mais de Wende Mendes

Angular Nodejs e com mongolab
Angular Nodejs e com mongolabAngular Nodejs e com mongolab
Angular Nodejs e com mongolabWende Mendes
 
Dicas para pescar tucunare
Dicas para pescar tucunareDicas para pescar tucunare
Dicas para pescar tucunareWende Mendes
 
Produtividade com teste de integracao
Produtividade com teste de integracaoProdutividade com teste de integracao
Produtividade com teste de integracaoWende Mendes
 
Táticas para motivar a sus equipe
Táticas para motivar a sus equipeTáticas para motivar a sus equipe
Táticas para motivar a sus equipeWende Mendes
 
Apreenda a trabalhar em equipe
Apreenda a trabalhar em equipeApreenda a trabalhar em equipe
Apreenda a trabalhar em equipeWende Mendes
 
Pare de dar descupas a voce mesmo e aproveite a vida
Pare de dar descupas a voce mesmo e aproveite a vidaPare de dar descupas a voce mesmo e aproveite a vida
Pare de dar descupas a voce mesmo e aproveite a vidaWende Mendes
 
Aprenda com o simples
Aprenda com o simples Aprenda com o simples
Aprenda com o simples Wende Mendes
 
Motivação e Metas para Equipe
Motivação e Metas para EquipeMotivação e Metas para Equipe
Motivação e Metas para EquipeWende Mendes
 
Uma breve introdução de play framework
Uma breve introdução de play frameworkUma breve introdução de play framework
Uma breve introdução de play frameworkWende Mendes
 
CDI -Contextos e Dependências
CDI -Contextos e DependênciasCDI -Contextos e Dependências
CDI -Contextos e DependênciasWende Mendes
 
100 maneiras de motivar sua equipe parte 1
100 maneiras de motivar sua equipe parte 1100 maneiras de motivar sua equipe parte 1
100 maneiras de motivar sua equipe parte 1Wende Mendes
 
Domain-Driven-Design
Domain-Driven-DesignDomain-Driven-Design
Domain-Driven-DesignWende Mendes
 
Como aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeComo aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeWende Mendes
 
Apresentação de Ruby para desktop, xml, yaml, e testes unitários
Apresentação de Ruby para desktop, xml, yaml, e testes unitáriosApresentação de Ruby para desktop, xml, yaml, e testes unitários
Apresentação de Ruby para desktop, xml, yaml, e testes unitáriosWende Mendes
 
Apresentação de ruby parte 5
Apresentação de ruby parte 5Apresentação de ruby parte 5
Apresentação de ruby parte 5Wende Mendes
 
Ruby com Objetos e classes
Ruby com Objetos e classesRuby com Objetos e classes
Ruby com Objetos e classesWende Mendes
 
Introdução a ruby
Introdução a rubyIntrodução a ruby
Introdução a rubyWende Mendes
 
Palestra collection google
Palestra collection googlePalestra collection google
Palestra collection googleWende Mendes
 

Mais de Wende Mendes (20)

Rotas com angular
Rotas com angularRotas com angular
Rotas com angular
 
Angular Nodejs e com mongolab
Angular Nodejs e com mongolabAngular Nodejs e com mongolab
Angular Nodejs e com mongolab
 
Dicas para pescar tucunare
Dicas para pescar tucunareDicas para pescar tucunare
Dicas para pescar tucunare
 
Produtividade com teste de integracao
Produtividade com teste de integracaoProdutividade com teste de integracao
Produtividade com teste de integracao
 
Táticas para motivar a sus equipe
Táticas para motivar a sus equipeTáticas para motivar a sus equipe
Táticas para motivar a sus equipe
 
Apreenda a trabalhar em equipe
Apreenda a trabalhar em equipeApreenda a trabalhar em equipe
Apreenda a trabalhar em equipe
 
Pare de dar descupas a voce mesmo e aproveite a vida
Pare de dar descupas a voce mesmo e aproveite a vidaPare de dar descupas a voce mesmo e aproveite a vida
Pare de dar descupas a voce mesmo e aproveite a vida
 
Aprenda com o simples
Aprenda com o simples Aprenda com o simples
Aprenda com o simples
 
Motivação e Metas para Equipe
Motivação e Metas para EquipeMotivação e Metas para Equipe
Motivação e Metas para Equipe
 
Uma breve introdução de play framework
Uma breve introdução de play frameworkUma breve introdução de play framework
Uma breve introdução de play framework
 
CDI -Contextos e Dependências
CDI -Contextos e DependênciasCDI -Contextos e Dependências
CDI -Contextos e Dependências
 
100 maneiras de motivar sua equipe parte 1
100 maneiras de motivar sua equipe parte 1100 maneiras de motivar sua equipe parte 1
100 maneiras de motivar sua equipe parte 1
 
Domain-Driven-Design
Domain-Driven-DesignDomain-Driven-Design
Domain-Driven-Design
 
Como aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeComo aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipe
 
Apresentação de Ruby para desktop, xml, yaml, e testes unitários
Apresentação de Ruby para desktop, xml, yaml, e testes unitáriosApresentação de Ruby para desktop, xml, yaml, e testes unitários
Apresentação de Ruby para desktop, xml, yaml, e testes unitários
 
Apresentação de ruby parte 5
Apresentação de ruby parte 5Apresentação de ruby parte 5
Apresentação de ruby parte 5
 
Ruby com Objetos e classes
Ruby com Objetos e classesRuby com Objetos e classes
Ruby com Objetos e classes
 
Introdução a ruby
Introdução a rubyIntrodução a ruby
Introdução a ruby
 
Javaone2010
Javaone2010Javaone2010
Javaone2010
 
Palestra collection google
Palestra collection googlePalestra collection google
Palestra collection google
 

Ruby com Singleton class, Metaprogramação e muito mais