Object Oriented Programming

Modules in Ruby

A module contains methods and fields for use when declaring a class.


Syntax
module moduleName

    def moduleMethod
    end

    attr :moduleField
end

class classWithModule
    #brings all methods and fields from the module into the class object
    include moduleName
    #brings methods and fields to the class itself (i.e. static)
    extend moduleName
end


Notes

Instance variables from the module are carried through to the class.


Example
module Vehicle
   STOPSPEED = 0
   attr :speed
   def speedUp
       @speed = @speed + 10
   end
end

class Car
    include Vehicle
    def initialize
        @speed = 0
        speedUp #from the module
    end
end

myCar = Car.new
#module member is called on object
>> myCar.speed
=> 10

class Plane
    extends Vehicle
end

#module member is called on class itself
>> Plane.STOPSPEED
>= 0
        

See Also
Documentation

Class: Module - RubyDocs

Add to Slack

< Inheritance   |   Class Methods >

© 2019 SyntaxDB. All Rights Reserved.