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