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 objeto como parâmetro:
module Kernel
def with(obj=nil,&block)
(obj || self).instance_eval &block
end
end
(0..5).with { puts "#{min}/#{max}" }
with("TaQ") do
puts "Oi, #{self}!"
puts "Seu gêmeo malvado se chama #{self.reverse}."
end
[1,2,3,4,5].with do
puts "Número aleatório de #{min} a #{max}: #{self[rand(size)]}"
end
A dica foi inspirada em outras pairagens, mas é boa e merecia uma referência (copião na cara dura). ;-)





Olá, estou gostando bastante das dicas do codare. Assinei o feed da parte de ruby e php.
Porém tenho uma duvida, ou sugestão.
Quando ao layout das notícias do codare, eu estou vendo em 2 leitores de feed, são eles o newshutch e o bloglines e está saindo desorganizado, sendo que feeds de outros sites estão saindo normalmente.
Olhem como ficou essa notícia mesmo:
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 objeto como parâmetro: module Kernel def with(obj=nil,&block) (obj || self).instance_eval &block end end (0..5).with { puts “#{min}/#{max}” } with(“TaQ”) do puts “Oi, #{self}!” puts “Seu […]
Thiago, agora o Feed vem completo e esse problema foi resolvido. Obrigado!