Category Archives: Ruby

Ruby: Obter o código-fonte de um método

Palavras-chave: Ruby, código fonte, ruby2ruby Podemos obter o código de um método como uma String usando a gem ruby2ruby: require “rubygems” require “ruby2ruby” class Teste def metodo puts “oi!” end end teste = Teste.new metodo = teste.method(:metodo) puts metodo.to_ruby Rodando … Continue reading

Posted in Ruby | 8 Comments

Ruby: Contar valores em um array

Palavras-chave: Ruby, array Para contar a frequência com que os valores de um array se repetem, podemos utilizar: array = %w(morango abacaxi banana morango pera morango abacate banana) p array.inject(Hash.new(0)) {|memo,value| memo[value] += 1; memo} Será retornada uma hash com … Continue reading

Posted in Ruby | Leave a comment

Ruby: Dividir um array em arrays menores

Palavras-chave: Ruby, array, divide Suponha que você tenha um array de X elementos e precise dividi-lo em arrays com Y elementos cada. A flexibilidade de Ruby nos permite definir operadores novos para as classes, então vamos criar um operador de … Continue reading

Posted in Ruby | 9 Comments

Ruby: Obter o nome do método atual

Palavras-chave: Ruby, método, nome, corrente, method, current Se você quiser saber o nome do método onde se encontra, terá que criar um outro método que quando chamado descubra o nome do método que o chamou. Assim: class MinhaClasse def self.nome_do_metodo … Continue reading

Posted in Ruby | Leave a comment

Ruby: Obter o valor de um Fixnum pelo seu object_id

Palavras-chave: Ruby, Fixnum, object_id Uma jogada legal com objetos do tipo Fixnum em Ruby é descobrir o valor do objeto através do seu object_id, fazendo um simples deslocamento binário: n = 123456 n.object_id >> 1 => 123456 Veja outra dica … Continue reading

Posted in Ruby | Leave a comment

Ruby: Revelar objetos Fixnum pelo seu object_id

Palavras-chave: Ruby, Fixnum, object_id Em Ruby podemos facilmente verificar se um objeto é da classe Fixnum através do seu object_id (os números podem variar): s = “oi” s.object_id => -605527578 n = 123456 n.object_id => 246913 s.object_id & 0x1 => … Continue reading

Posted in Ruby | 3 Comments

Ruby: Converter array em hash

Palavras-chave: ruby, array, hash, splat Podemos converter facilmente um array com um número de elementos pares para uma hash da seguinte maneira: array = %w(um 1 dois 2 tres 3) hash = Hash[*array] p hash Executando o código: {“tres”=>”3”, “um”=>”1”, … Continue reading

Posted in Ruby | Leave a comment

Ruby: Criando hashes com valores default

Palavras-chave: Ruby, hash, default, blocos Em Ruby podemos permitir que um valor default seja retornado na tentativa de acesso à um elemento que não existe ainda em uma hash, dessa maneira: hash = Hash.new(0) puts hash[“abobora”] 0 puts hash[“batata”] 0 … Continue reading

Posted in Ruby | Leave a comment

Ruby: Objetos com id negativo (object_id)

Palavras-chave: object_id, negativo, __id__ Em Ruby, bem como em outras linguagens que trabalham orientadas a objetos, existe o conceito do ObjectID (ou id de objeto), que nada mais é do que uma identificação única para um objeto instanciado dentro de … Continue reading

Posted in Ruby | 5 Comments

Ruby: Executando um bloco no contexto do objeto

Palavras-chave: ruby, bloco, objeto, contexto Um meio de executar um bloco dentro do contexto de um determinado objeto é adicionar um método direto no módulo Kernel do Ruby. Ele aceitará ser chamado diretamente como método do objeto ou passando o … Continue reading

Posted in Ruby | 3 Comments