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!