[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:001199] Re: [ANN] RubyDCL 1.1.0



At Mon, 20 May 2002 15:14:21 +0900,
Takeshi Horinouchi wrote:

> エリアスに有効ではないのは当然としても、udcntr の中でしか呼んで
> いないものも module_function にしてないとならないって納得がいか
> ない。__udcntr はプライベートなメソッドにしたいんだけど、どうす
> ればいいんだろう..?

とりあえずこういうのはどうでしょう?

  class Module
    def module_function_subroutine(*arg)
      arg.each do |s|
        module_function s
        private_class_method s
      end
    end
  end

  module Test
    def hello
      p hello_str
    end

    module_function(:hello)

    def hello_str
      "HELLO"
    end

    module_function_subroutine(:hello_str)

  end

  begin
    Test.hello     #=> "HELLO"
    Test.hello_str
  rescue Exception
    p $!  #<NoMethodError: private method `hello_str' called for Test:Module>
  end

-- Gotoken