From 57c702ea8ef5e46e0af6e3bbfc5592ea696e2aca Mon Sep 17 00:00:00 2001 From: Dag Odenhall Date: Sat, 31 May 2008 17:45:17 +0200 Subject: [PATCH] Improve Lazy --- lib/amazing/lazy.rb | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/lib/amazing/lazy.rb b/lib/amazing/lazy.rb index 551ec86..e19e009 100644 --- a/lib/amazing/lazy.rb +++ b/lib/amazing/lazy.rb @@ -14,18 +14,21 @@ module Amazing class Lazy + undef_method :to_s + undef_method :inspect + def initialize(&block) - @block = block + @lazy_block = block end - def to_s - @value ||= @block.call.to_s + def method_missing(name, *args, &block) + __value__.__send__(name, *args, &block) end - alias inspect to_s + private - def method_missing(name, *args, &block) - to_s.__send__(name, *args, &block) + def __value__ + @lazy_value ||= @lazy_block.call end end end -- 2.11.4.GIT