Nat Pryce wrote:

>In Ruby *all* methods are abstract unless implemented by a class.
>
>Or to put it in a more useful way, abstract methods are not required in a
>dynamically typed language such as Ruby, only in typed languages like Java
>or C++.
>
Not quite what I had in mind. If I create a class I will provide various 
methods that a subclass can override. But in many cases they will pick 
up the super classes' methods. However in the class I have in mind there 
is one method that must exist in the subclass for which there is no 
meaningfull default action that it can undertake, the subclass must 
override this method. In Java I would mark the method as abstract rather 
than just public or private and when I subclass it the compiler would 
choke if I did not provide the override in the subclass.

At present I have to insert a normal method in the class that raises an 
exception which will then cause the subclass to fall over if it did not 
override it. It works but it isn't clean, to my mind abstract is just as 
fundemental as public or private and therefore should be marked as such.

I have a deep suspicion that the way Ruby does things means that this is 
not possible, just thought I would ask though.