From: Jamey Cribbs Date: 2006-03-06T00:16:51+09:00 Subject: Re: Kirbybase Hacks NilClass Trans wrote: ># :title: NullClass ># ># NullClass is essentially NilClass but it differs in one ># important way. When a method is called against it that it ># deoesn't have, it will simply return null value rather then ># raise an error. > >class NullClass #< NilClass > class << self > def new > @null ||= NullClass.allocate > end > end > def inspect ; 'null' ; end > def nil? ; true ; end > def null? ; true ; end > def [](key); nil; end > def method_missing(sym, *args) > return nil if sym.to_s[-1,1] == '?' > self > end >end > >module Kernel > def null > NullClass.new > end >end > >class Object > def null? > false > end >end > > > Thanks, Trans! I really like this. It makes sense to just create one null object, like nil does. Jamey