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