Mega Code Archive

 
Categories / Ruby / Language Basics
 

Abstract method in a module

module Complaint   def gripe     voice('A')   end   def faint_praise     voice('B')   end   def voice(complaint_text)     raise NotImplementedError,     "#{self.class} included the Complaint module but didn't define voice!"   end end class MyComplaint   include Complaint end MyComplaint.new.gripe # NotImplementedError: MyComplaint included the Complaint module # but didn't define voice!