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

Post on 24-Dec-2014

1.155 views 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 of Ruby com Singleton class, Metaprogramação e muito mais

Wende Mendes HiginoWende Mendes Higino

email: wende.mendes@bluesoft.com.bremail: wende.mendes@bluesoft.com.br

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

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.

RubyRuby

RubyRuby

RubyRuby

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

RubyRuby

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.

RubyRuby

RubyRuby

RubyRuby

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

RubyRuby

RubyRuby

RubyRuby

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 ?

RubyRuby

Herança com rubyHerança com ruby

RubyRuby

RubyRuby

RubyRuby

RubyRuby

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”

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.

RubyRuby

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

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.

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.

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.

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:

RubyRuby

RubyRuby

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

RubyRuby

* Arrays* Arrays

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):

RubyRuby

- - Inserindo elementosInserindo elementos

RubyRuby

- - Inserindo elementosInserindo elementos

RubyRuby

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

RubyRuby

- - Ordenando um arrayOrdenando um array

RubyRuby

- - Ordenando um arrayOrdenando um array

RubyRuby

- - Ordenando um arrayOrdenando um array

RubyRuby

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

RubyRuby

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

RubyRuby