岡本です。

>   initialize は private なので呼べないとは思いますが。

勉強のためruby/gtkでテキストビューワを書いていたのですが、
一通りコードを書いてスクリプトを走らせてエラーメッセージを見て
初めてinitialize が private メソッドだと知りました(遅すぎ)。
小細工で
def initialize2( arg = @memb )
    initialize(arg)
end
とかやってみたのですが、かえって醜くなったのであえなくお蔵入りとなりました。

うーん、でも
class Line
    def initialize(startx=... ,starty=... ,endx=... ,endy=... )
    def initLength(startx=... ,starty=... ,len=... ,degree=... )
        ........
        initialize( ...... )
    end
    def initPoint( startx= @startx, starty= @starty, endx= @endx, endy= @endy )
        initialize(startx,starty,endx,endy)
    end
end
line = Line.new.initPoint(5,5,10,10)
のようなやり方なら使い道は無きにしもあらずかな? <無駄なあがき


ところで、なぜinitialize は private なのでしょうか。
他のオブジェクトから呼び出されてまずいとも思えませんが。


>   こういうのもできます。
>
>     def complete(key, pat = Regexp.new('\A' + Regexp.quote(key).gsub(/\w+/,
'\&\w*'), true))

ありがとうございます、読みにくいプログラムを書く技術が上達したような気がします。