class NilObject def initialize(klass=nil) @klass = klass || real_class_name end def method_missing(name, *args) return super unless respond_to?(name) name.to_s.ends_with?('?') ? false : nil end def respond_to?(name) @klass.new.respond_to?(name) end def real_class_name self.class.name[3..-1].constantize end end