Sha256: a3d569dcc01bcb6761cb517465c3b5c9569e5aca49e5a9d36afae881fef024dc
Contents?: true
Size: 484 Bytes
Versions: 25
Compression:
Stored size: 484 Bytes
Contents
require 'delegate' class NilCheckDelegate < Delegator def initialize(obj) super @delegate_sd_obj = obj @depth = 0 end def nilcheck_depth(depth = 0) @depth = depth self end def _wrap(obj) ((@depth -= 1) >= 0) ? self.class.new(obj) : obj end def method_missing m, *args, &blk _wrap(__getobj__.nil? ? nil : super(m, *args, &blk)) end def __getobj__ @delegate_sd_obj end def __setobj__(obj) @delegate_sd_obj = obj end end
Version data entries
25 entries across 25 versions & 1 rubygems