What is the proper pattern in Ruby for the moral equivalent of abstract classes? Should we define this method in the class and have it throw an explicit exception?