moduleを使ってみる。

近頃、W-ZERO3[es]かにかまけてRubyのお勉強が進んでいない。これではダメだ、激しくダメだ、習得は一気にならないと、間を置かずにやらないと、自分を断罪、断罪、また断罪、というわけでmoduleを使ってみる。あまり自分では使う機会がないと思っていたけど、Rubyに標準添付されているライブラリを読むときなどにすらすらと読めなかったので。

module Hoge
  class Huga
    def hugahuga
      p "hugahuga"
    end
  end
end

huga = Hoge::Huga.new
huga.hugahuga

基本的なの。要は名前空間と言うことか。違うかもしれないけど。

module Hoge
  module Huga
    class Hoji
      def hojihoji
        p "hojihoji"
      end
    end
  end
end

hoji = Hoge::Huga::Hoji.new
hoji.hojihoji

ネストすることも可能。
ネストするとインスタンスを作るときに面倒なので、

include Hoge::Huga
hoji = Hoji.new
hoji.hojihoji

と、することも可能。C#で言うところの、usingですな。
moduleに属するメソッドもある。モジュール関数と言うらしい。

module Hoge
  def hogehoge
    p "hogehoge"
  end
  module_function:hogehoge
end

Hoge.hogehoge


Rubyレシピブック 268の技

Rubyレシピブック 268の技