Abstract method in a module : Modules Creation « Language Basics « Ruby






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!

 








Related examples in the same category

1.Modules and Namespaces
2.Modules provide a structure to collect Ruby classes, methods, and constants into a single, separately named and defined unit.
3.Creating Modules
4.store classes inside modules.
5.access methods inside classes inside modules with Ruby scope resolution operator (::)
6.Involve demonstrating two classes with the same name, but in different modules
7.how to create a module and then include it in a class.
8.require the file containing the module, and then it would work (again, require is expecting a name in the load path).
9.prefixed with the module name you can call the method from anywhere, as is the case with the Math module.
10.Initializing Instance Variables Defined by a Module
11.Use remove_const to delete a constant definition
12.Avoiding Naming Collisions with Namespaces
13.Print all modules (excluding classes)
14.Print all classes (excluding exceptions)
15.Print all exceptions