コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

普通のRubyはクラスの定義は何回でも書けるし後勝ち

Railsのmoduleのことがわからなすぎて繰り返しやってたら気づいた程度のメモ

環境

$ ruby -v
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin18]

事例

module Oya; end


class Oya::KodomoA
  def self.call
    p "Say1"
  end
end

module Oya
  class KodomoA
    def self.call
      p "Say2"
    end
  end
end

module Oya
  class KodomoB
    def self.call2
      KodomoA.call
    end
  end
end

class Oya::KodomoA
  def self.call
    p "Say3"
  end
end



Oya::KodomoB.call2

こんなのがあると 結果は say3 が返ってくる。

なんでここらへんを調べてたの元ネタ

eager_loadでバグるのでその原理を知りたかったがタイムアップ