Revision: 3461
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at July 27, 2007 14:51 by ctran
Initial Code
class SafeGetter
attr_accessor :receiver
def self.safe_nil
@safe_nil ||= SafeGetter.new(nil)
end
def initialize(r)
@receiver = r
end
def to_s
@receiver.to_s
end
def method_missing(methodname, *args)
(@receiver.respond_to? methodname) ? SafeGetter.new(@receiver.send(methodname)) : SafeGetter.safe_nil
end
end
# SafeGetter.new(@user).course.book.title.name.to_s => ''
Initial URL
Initial Description
Access deeply nested properties in a nil-safe manner. This is usually a code smell but if you insist...
Initial Title
Nil safe getter
Initial Tags
Initial Language
Ruby