モジュール基礎の基礎

①ミックスイン(include) クラスでモジュールをincludeするとモジュールで定義したメソッドが、インスタンスメソッドとして使える。

module Beep
   def boo
     puts "boo"
   end
 end

 class Car
   include Beep
 end

 class Plane
   include Beep
 end

car = Car.new
car.boo  #=>  "boo"

plane = Plane.new
plane.boo  #=> "boo"

②ミックスイン(extend) extendの場合は、モジュール内のメソッドをクラスメソッド(該当クラスの特異メソッド)として使う事ができるようになる。

module Beep
  def boo
    puts "boo"
  end
 end

module Bump
  def bump
    puts "bump"
  end
end

 class Car
   extend Beep
   extend Bump
 end

 class Plane
    extend Beep
 end

Car.boo  #=>  "boo"
Car.bump #=>  "Bump"
Plane.boo  #=> "boo"

名前空間とか、難しいやつは次回🐤