ruby com singleton class, metaprogramação e muito mais

43
Wende Mendes Higino Wende Mendes Higino email: [email protected] email: [email protected]

Upload: wende-mendes

Post on 24-Dec-2014

1.155 views

Category:

Documents


3 download

DESCRIPTION

Apresentanção de ruby, mostrando exemplos de Singleton class, Metaprogramação, Visibilidade de metodos, convenções, Herança, Multiplos parâmetros, Arrays

TRANSCRIPT

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

Wende Mendes HiginoWende Mendes Higino

email: [email protected]: [email protected]

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

RubyRuby

* Singleton class* Singleton class

* Metaprogramação* Metaprogramação

* Visibilidade de métodos* Visibilidade de métodos

* Convenções* Convenções

* Herança* Herança

* Múltiplos parâmetros* Múltiplos parâmetros

* Arrays* Arrays

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

RubyRuby

* Singleton class* Singleton class

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

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

RubyRuby

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

RubyRuby

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

RubyRuby

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

RubyRuby

* Metaprogramação* Metaprogramação

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

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

RubyRuby

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

RubyRuby

* Metaprogramação* Metaprogramação

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

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

RubyRuby

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

RubyRuby

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

RubyRuby

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

RubyRuby

* Visibilidade dos métodos* Visibilidade dos métodos

- Por padrão todos os métodos são publicos- Por padrão todos os métodos são publicos

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

RubyRuby

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

RubyRuby

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

RubyRuby

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

RubyRuby* Convenções* Convenções

- Variáveis e métodos sempre minúsculos - Variáveis e métodos sempre minúsculos separados por ' _ 'separados por ' _ '

- Variáveis com nomes maiúsculo ( constantes )- Variáveis com nomes maiúsculo ( constantes ) - Classes ( DuplicataCobranca ) - Classes ( DuplicataCobranca )

- Na defnição de métodos procure sempre usar ()- Na defnição de métodos procure sempre usar () - Para a chamada não há convenção - Para a chamada não há convenção - Procure sempre o que é mais legível - Procure sempre o que é mais legível

- Métodos que retornam booleanos costumam - Métodos que retornam booleanos costumam terminam com ? terminam com ?

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

RubyRuby

Herança com rubyHerança com ruby

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

RubyRuby

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

RubyRuby

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

RubyRuby

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

RubyRuby

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

RubyRuby

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

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

RubyRuby

* Múltiplos parâmetros* Múltiplos parâmetros

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

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

RubyRuby

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

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

RubyRuby

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

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

RubyRuby

- Imagine que tenho uma conta bancária em minhas - Imagine que tenho uma conta bancária em minhas mãos e desejo invocar o método de transferência, quemãos e desejo invocar o método de transferência, querequer a conta destino, a data na qual o valor será requer a conta destino, a data na qual o valor será transferido. transferido.

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

RubyRuby

- No momento de executar o método descobrimos que - No momento de executar o método descobrimos que a ordem dos parâmetros era incorreta, o valor deveriaa ordem dos parâmetros era incorreta, o valor deveriavir antes da data, de acordo com a defnição do vir antes da data, de acordo com a defnição do método esta errado.método esta errado.

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

RubyRuby

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

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

RubyRuby

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

RubyRuby

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

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

RubyRuby

* Arrays* Arrays

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

RubyRuby

* Arrays* Arrays

- - Arrays podem conter vários tipos de objetos (ou não):Arrays podem conter vários tipos de objetos (ou não):

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

RubyRuby

- - Inserindo elementosInserindo elementos

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

RubyRuby

- - Inserindo elementosInserindo elementos

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

RubyRuby

- - Criando array baseado em alguma condiçãoCriando array baseado em alguma condição

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

RubyRuby

- - Ordenando um arrayOrdenando um array

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

RubyRuby

- - Ordenando um arrayOrdenando um array

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

RubyRuby

- - Ordenando um arrayOrdenando um array

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

RubyRuby

- - Método any?Método any?

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

RubyRuby

- - Método all?Método all?

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

RubyRuby

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