用途
クラスにメソッドを追加する。
特徴
- モジュールはインスタンス化できない。
- モジュールは何かのクラスを継承できない。
書き方
module Hoge
def hello
p "Hello"
end
end
モジュールの読み込み
include モジュール名
モジュールのメソッドをインスタンスメソッドとして取り込む。
class Fuga
include Hoge
end
Fuga.new.hello
=> "Hello"
extend モジュール名
モジュールのメソッドをクラスメソッドとして取り込む。
class Fuga
extend Hoge
end
Fuga.hello
=> "Hello"
モジュール関数
モジュールに定義されているメソッドを、モジュールから直接呼び出せるようにする。
module_function
の引数にメソッド名が指定された場合はそのメソッドが、指定されなければそれ以降に定義されたメソッドがモジュール関数となる。
module Hoge
def hello
p "Hello"
end
module_function :hello
end
Hoge.hello
=> "Hello"