[#38020] irb で %W(#{...}) — yoshihisa masuda <sacong@...>
マスダといいます。
[#38036] undef variable — hirocy <hirocy@...>
hirocyです.
[#38039] proc method — "K.Sasada" <ko1@...>
こんにちは。ささだです。
[#38056] ファイル書換え? — 中村文建 <tx6f-nkmr@...>
初めまして、MLに参加させて頂く中村と申します。
[#38057] [ANN] Ruby-GNOME2-0.6.0 — Masao Mutoh <mutoh@...>
むとうです。
[#38059] [ANN] rbbr-0.3.0 — Masao Mutoh <mutoh@...>
むとうです。
[#38073] module extendable? — Takeshi Horinouchi <horinout@...>
堀之内と申します。
[#38080] ポートが閉じているときの例外など — Mitsuru Ogino <ogino@...>
荻野と申します。いつも質問や要望ばかりですみません。
なかだです。
いわおかです。
荻野です。
なかだです。
いわおかです。
In message <20030812150516.GV37221@barber.fe.rn.tuat.ac.jp>
中川と申します。
In message <20030814.140757.707824131.tetsuo@sapphire.siz.nes.nec.co.jp>
なかだです。
In message <200308160517.h7G5HcPL012839@sharui.nakada.kanuma.tochigi.jp>
なかだです。
In message <200308180959.h7I9xnb7001977@sharui.nakada.kanuma.tochigi.jp>
なかだです。
まつもと ゆきひろです
[#38090] ruby-1.8 で eruby が SEGV — Kazuhiko <kazuhiko@...>
かずひこです。
[#38104] XMLRPC::ModRubyServer — OHARA Shigeki <os@...>
大原です。
[#38122] ruby-tcpwrap and mkmf.rb — Takahiro Kambe <taca@...>
こんにちは。
At Sat, 16 Aug 2003 12:51:55 +0900,
In message <200308160518.h7G5IXPL012842@sharui.nakada.kanuma.tochigi.jp>
なかだです。
In message <200308160714.h7G7ErPL014647@sharui.nakada.kanuma.tochigi.jp>
前田です。
In message <87d6f3znlc.wl@kirk.priv.netlab.jp>
前田です。
わたなべです。
[#38164] Ruby1.8.0でRuby-PostgreSQLがビルドできない — kensaku Maki <sakaki@...>
はじめまして、まきと申します。
[#38183] String << の動作につきまして — kuto@...
うと と申します。
たけ(tk)です。
ふなばです。
たけ(tk)です。
ふなばです。
たけ(tk)です。
ふなばです。
ども、西啓一朗@Ktouth Brand. です。
ふなばです。
ども、西啓一朗@Ktouth Brand. です。
[#38195] 理解の進め方(Re: String << の動作につきまして) — Tadashi Oh-Ya <toy@...>
おおやです。
たけ(tk)です。
In "[ruby-list:38206] 理解の進め方:シュールな世界"
たけ(tk)です
[#38198] Tmailで送るメールに日付がつけられなくなりました — 川田誠司 <kawada.seiji@...>
はじめまして
[#38256] かみ砕いた説明をすべき範囲 — 西 啓一朗 <receiver@...>
ども。西啓一朗@Ktouth Brand. です。
なかだです。
たけ(tk)です
なかだです。
たけ(tk)です
いわおかです。
たけ(tk)です
まつもと ゆきひろです
たけ(tk)です。
たけ(tk)です。
[ruby-list:38077] Re: module extendable?
堀之内です。 > なかだです。 ご教示ありがとうございます。 > > モジュールをネストして module_function を継承(のようなことを) > > することはできるでしょうか。具体的には、モジュールに入れたアルゴ > > リズム(メソッド群)を取り替えやすくするため、以下のようなことを > > したいのですが、うまくいきません。使用しているのは ruby 1.6.8 で > > す。同様のことをするのに別の方法があるよとか、1.6 ではだめだけど > > 1.8 ならできるといった情報でも結構です。(まだしばらく1.6は切り > > 捨てたくないので困りはしますが。。。) > > module_functionは、インスタンスメソッドをメタクラスにコピーして > 元のインスタンスメソッドはprivateにします。 > > > module Foo > > module_function > > def hi; "hi"; end > > def there; "there"; end > > end > > module Bar > > module_function > > extend Foo > > def hi; 'HI'; end > > end > > ここでextendは、Barのメタクラス(カッコをつけて(Bar)と表記)にモ > ジュールFooをincludeするので、(Bar)にインスタンスメソッドhiと > thereが追加されます。つまり、Bar自身の特異メソッドとして追加さ > れるのはprivateであるFoo#hiとFoo#thereであって、publicであるク > ラスメソッドFoo.hiやFoo.thereではありません。 > > ということで、extendしてからpublic_class_method :thereとすれば > アクセスできるようになります。 ちゃんと理解できてませんが、module_function にするものは、もとは public_class_method でないといけないんですね。確かにマニュアルを 見ると、module_function は、プライベートかつモジュール関数にする と書いてあります。ともかく、メールに書いたソースの extend の後に public_class_method :there を加えるだけで、モジュール関数として使えることを確認しました。 ありがとうございました。 > > なお、module Bar において extend でなく include にしてもだめです。 > > > > /.../nested_modules2.rb:18:in `there': undefined method `there' > > for Bar:Module (NameError) > > from /.../nested_modules2.rb:26 > > スーパークラスのクラスメソッドが継承されるように、includeされた > モジュールのクラスメソッドも継承されるべき、ということでしょう > か。 理解できてないので、「べき」かどうかは全くわかりません。 class に include する場合にはモジュール内に別のモジュールを include できるので、類推でやってみたけど出来なかったまでです。 ただ、 public_class_method :there とするよりもわかりやすい方法があってもいい気はします。 (あるいはこの手法をマニュアルに載せるか...。 もし、これが想定されてない「裏技」ならば、将来使えなくなる かもと、少し不安に思います。)