À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!
0sem comentários ainda