Sha256: 1f316384ef8c2b0eb2f3a7d161f046cce4dae3e8617eff072ad15f783cd61fc1
Contents?: true
Size: 499 Bytes
Versions: 5
Compression:
Stored size: 499 Bytes
Contents
class Preq def initialize( obj, &blk ) @obj = obj @cache = {} instance_eval &blk end def method_missing( meth, *args, &blk ) (class << self; self; end).instance_eval { define_method( meth ) do @cache[meth] ||= @obj.send( meth, *args, &blk ) end } send( meth, *args, &blk ) end end class X def initialize ; @n = 0 ; end def y ; @n += 1 ; end def s ; @n ; end def z ; y ; end end x = X.new Preq.new(x) do y ; y ; z ; y end p x.s
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
facets-1.4.2 | forge/more/prereq.rb |
facets-1.4.1 | forge/more/prereq.rb |
facets-1.4.3 | forge/more/prereq.rb |
facets-1.4.4 | forge/more/prereq.rb |
facets-1.4.5 | snip/more/prereq.rb |