>>730
Foo::fooが呼び出されないようにしたいんだよね。(好意の原理[principle of charity]に従って解釈…)
つまり、Fooモジュールの中以外からはfooメソッドにアクセスさせたくないと…。
それなら、これでどうよ?
module Hoge
  module_function
  def moe
    puts "moemoe!"
  end
  def hero
    moe
  end
  class <<self
    private :moe
  end
end

Hoge.hero
begin
  Hoge.moe
rescue Exception => e
  puts e
end
-----------------------------------
moemoe!
private method `moe' called for Hoge:Module

うーん、何か違うような…。