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

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



西澤です。

> > > 先日予告した RubyDCLの新版(ver.1.1.0)をリリースします。
> > > ダウンロードはホームページからどうぞ。
> > > http://www.gfd-dennou.org/arch/ruby/products/ruby-dcl/
> 
> > この新しい名前は
> > include NumRu::DCL
> > としないと使えません。
> 
> > 新しいudcntrがモジュールメソッドになっていないためで、
> > module_function :udcntr
> > などとするとうまくいくとおもいます。
> 
> 早速お使い下さり有難うございます。本件、失礼しました。
> 対応したものを ruby-dcl-1.1.1 としました。ちなみに、
> 引数なしの module_function を src/lib/dcl.rb 中の 
> module NumRu::DCL の トップ に置くことで解決しました。
> (個別に module_function :udcntr などとしても出来ますが)

引数なしの module_function は alias には有効でないみたいです。
udcntrはいけますが__udcntrはいけません。
したがってudcntrの中で__udcntrをよんでいるのでエラーとなります。


%cat tmp.rb
module Test
  module_function

  def hello
    print "hello\n"
  end

  alias hello2 hello

  def hello
    print "HELLO\n"
  end
end


Test.hello
Test.hello2

%ruby tmp.rb
HELLO
tmp.rb:17: undefined method `hello2' for Test:Module (NameError)


----------
Seiya Nishizawa
seiya@xxxxxx