タグ

includeとmoduleに関するreponのブックマーク (3)

  • Rubyで自作の外部モジュールを読み込む方法 - include と extend と module_function - (゚∀゚)o彡 sasata299's blog

    2009年06月20日02:25 Ruby Rubyで自作の外部モジュールを読み込む方法 - include と extend と module_function 【090621追記】 id:faulistさんから色々と指摘していただきました。ありがとうございます>< この記事を読む際には、以下のリンク先も併せてご覧になることをオススメします。 requireとincludeとextendとmodule_function(1) - As Sloth As Possible requireとincludeとextendとmodule_function(2) - As Sloth As Possible Rubyで外部ライブラリを読み込むには、require を利用します。例えば、ファイル名がhoge.rbの場合、このようになります。 require 'hoge' ただ、モジュールを読み込むと

  • requireとincludeとextendとmodule_function(2) : As Sloth As Possible

    前回の続き。Rubyで自作の外部モジュールを読み込む方法 - include と extend と module_function - (゚∀゚)o彡 sasata299's blogにあったうちrequireとincludeについて書いたので、次はmodule_functionとextendの話を。 module_functionは何のためにあるのか まず前回のおさらい。 モジュールの中で特異メソッド(def self.hogeという形)として定義されたものはincludeするとクラスメソッドになるし、MyModule.hogeという形で呼べる モジュールの中でメソッド(def fugaという形)として定義されたものはincludeするとインスタンスメソッドになる。が、MyModule.fugaという形では呼べない で、module_function。これを使うとどうなるかというと、 m

    requireとincludeとextendとmodule_function(2) : As Sloth As Possible
  • Rubyのmoduleをmix-inする際のincludeとextendの違いをシンプルな例で理解する

    Rubyのclassにmoduleをmix-inする場合に、moduleをclassにincludeした場合とclassをmoduleでextendした場合で何が違うのか? よく判らなくなるのでシンプルな実例でまとめます。 「モジュールがクラスメソッドではなく、インスタンスメソッドを定義しているとき、これらのインスタンスメソッドは、ほかのクラスにミックスインできる」(「プログラミング言語Ruby」261ページ)とあります。そして「モジュールをミックスインするための通常の方法は、Module.includeメソッドだが、Object.extendを使う方法もある」(同262ページ)となっています。includeとextendで何が違うの? となり、時どき理解の足りない書き方をしてNoMethodError: undefined method...のような例外をだしてしまうことがあります。そこ

  • 1