From: Hideto ISHIBASHI Date: 2000-04-25T00:48:35+09:00 Subject: [ruby-list:22095] Re: shell interactive 石橋秀仁 > こんにちは、時田です。 > いや、純粋に言語の仕様として「思想の統一」が出来ているか です。 > ただ、(デフォルトで)バッファリングによる効率的なファイルシステムの利用を > 捨てるなら、思想的に統一されている必要があると思ったわけです。 気分的に、わからなくはないですね。 でも、それとは違う思想で統一されているようなので。 > ひとつ気がかりなのは、www.ruby-lang.org のドキュメントの所にある > リファレンスマニュアルの IO#pipe の説明で pipe(2) とあるだけなので > sync = true になる事がわからない位でしょうか。 マニュアルについては、そういう部分がまだまだありますね。 # ぼくも見つけ次第、報告していきたいと思います。 > > そうでしたら、Decoratorパターンで解決すればよいと思います。 > > クラスの循環関連構造ではなく、moduleでデコレータを追加します。 > > > > 以下のコードは超てきとーです。動くようにしてみて下さい。 > > とか。どうでしょうか? > > いや、そゆのををやるなら > printf とか write とか put とか putc とかもやらなきゃ(笑) > syswrite はどうかな? stdio系じゃないから関係ないか? よくわからん そゆのも暗示した「てきとー」なんですけど。 # EnumerableとかならTemplate Methodだけ書きかえればいいんですけどね。 > どちらかというと、sync = false の IOオブジェクトを返す IO#pipe2 > を作っちゃうかも # 冗談だけど :-) いいんじゃないですか。Prototypeパターン。 > 同名のメソッドで元のメソッドをかぶせてしまうのは > Cの #defineで元の予約語にかぶせてCじゃないようになったのを > 連想してしまうので、しょうに合わないっす。 > 自分で使っていても、どっちだったか分からなくなりそうだしね だから、Decoratorパターンなんですよ。JavaのStream系と同じ。 でも、ぼく自身は必要性を感じません。上記のようにmix-inで済むから。 # syncどうこうはIO全体から見れば些事です。木を見て森を見ずになりかねない。 -- Hideto "rubyholic" ISHIBASHI