Sunday, June 30, 2013

Ruby Include and Extend

module Base
  def print
    p 'base'
  end
end

class A
  # add method for instance
  include Base
end

A.new.print


class B
  # add method for class
  extend Base
end

B.print

class C
  # include module for singleton
  # the same like extend
  class << self
    include Base
  end
end

C.print
include work the same as inheritance but its not the same:
  1. class have only one parent
  2. include extend only instance
# check include
A.new.kind_of? Base #=> true

# check extend
B.kind_of? Base #=> true


No comments:

Post a Comment

 
 
Blogger Templates