>>433

module Foo
def hello ; puts 'Foo!' ; end
module_function :hello
end

module Bar
include Foo
def hello ; puts 'Bar!' ; end # (*1)
module_function :hello # (*2)
end

(*1)では子モジュールBarで親モジュールFooのインスタンスメソッドFoo#helloを
オーバーライドしているが、これはFoo#helloにもFoo.helloにも影響を与えない。
(*2)で Bar.hello を定義するが、これは Foo.hello には影響を与えない。

たぶん(*1)でFoo#helloの定義が書き換えられるか、(*2)でFoo.helloが書き換え
られるかのどちらかを期待してるのだと思うけど、どちらもそうはならない。
違う方法を検討してください。

最終的に何がしたいのかよくわからなかったので、もっとうまく説明してみて。