Ir para o conteúdo
ou

Software livre Brasil

 Voltar a Blog
Tela cheia

Descobrindo métodos de um objeto no irb

16 de Junho de 2009, 0:00 , por Software Livre Brasil - 0sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 641 vezes

Às vezes queremos lembrar de um método de um objeto enquanto estamos numa sessão do irb ou do console do Rails.

Autocomplete

A primeira dica é usando o autocomplete no terminal. Para isso basta carregar a biblioteca irb/completion:

irb(main):001:0> require 'irb/completion'
>> true
irb(main):002:0> 8.s
8.send                    8.singleton_method_added  8.singleton_methods       
8.size                    8.step                    8.succ

Quando eu digitei “8.s” e teclei Tab duas vezes, ele me trouxe os métodos do objeto 8 que começam com ’s’.

Por padrão o console do Rails já vem com esse recurso habilitado. Mas se você quiser usá-lo sempre que abrir uma sessão do irb, adicione esse require no arquivo .irbrc em seu diretório home.

Métodos que não são comuns

Tem outra forma simples que aqui-acolá me quebra o galho. Eu uso quando quero não lembro nem do começo do método.
No terminal, faça o seguinte:

irb(main):003:0> 8.methods - methods
=> ["%", "<<", "singleton_method_added", "gcd", "&", ">>", 
"round", "to_r", "divmod", "integer?", "chr", "*", "+", "to_i", "rdiv", "-", 
"upto", "between?", "prec", "truncate", "/", "numerator", "modulo", "succ", 
"|", "zero?", "~", "to_f", "rpower", "prec_i", "step", "to_int", "^", 
"remainder", "+@", "nonzero?", "-@", "**", "floor", "<", "<=>", "prec_f", 
"quo", ">", "downto", "id2name", "size", "abs", "lcm", ">=", "power!", 
"next", "<=", "coerce", "ceil", "div", "denominator", "times", "to_sym",
 "[]", "gcdlcm"]

Ele retorna uma array com todos os métodos do objeto 8 que não fazem parte de Object. Se eu fizesse apenas 8.methods ele traria um monte de métodos que provavelmente não me interessariam, pois pertencem a todos os objetos.

Pesquisa

A última dica é filtrar os métodos usando um select e uma expressão regular com um trecho do método procurado:

irb(main):004:0> 8.methods.select {|m| m =~ /ator/ }
=> ["numerator", "denominator"]

É isso!


Fonte: http://blog.dolucas.com/descobrindo-metodos-de-um-objeto-no-rb

0sem comentários ainda

Enviar um comentário

Os campos são obrigatórios.

Se você é um usuário registrado, pode se identificar e ser reconhecido automaticamente.