> module Interface > def some_method > raise NoMethodError, "Must be overriden!" > end > def another_method > raise NoMethodError, "Must be overriden!" > end > end Another way, which I personally feel is neatier (if nothing else because the error message comes a lot earlier) is to check in the constructor: Class base_class def initalize raise 'Method required: MethodA' unless (respond_to? :MethodA) raise 'Method required: MethodB' unless (respond_to? :MethodB) end end It will break if the constructor is overridden without calling the one of the superclass though.