Class And Modules

A Ruby class is very similar to the other programming languages class structures. They allow for code to be created within a single object that can be reused etc, the code can have its own separate block of variables/methods for that instance of the required task. It is able to be inherited and extended which is different to a module which only allows for the created module to have methods and constant variables.

module SillyModule # module is a single instance object, e.g. they can have methods and constants
  def hello
    "Hello."
  end
end
 
class SillyClass	# a class can include a module and expand on it, an class can generate many instances (objects) of itself.
 
  include SillyModule # also use the sillymodule as well.
    def bob
      "timing is everything."
  end
 
end
s = SillyClass.new
puts s.hello  # Hello.
puts s.class # SillyClass - displays the class name
puts s.bob # timing is everything

Save this code as class_module.rb, it will create a module that is included within the SillyClass. To demonstrate that the module is a single instance of a object, if you try to create a new object, e.g. mod = SillyModule.new, the compile will class.rb:20: undefined method `new’ for SillyModule:Module (NoMethodError) since the new method is not part of a module but only a class.


Tags: , , ,

Leave a Reply

Spam protection by WP Captcha-Free