かわじ、です。


> 実は、Mysql::new() が接続処理をやってて、Mysql#initialize() は何もして
> ないんです。ということで、今のところ『こういうもの』です。ごめんなさい。
> 
> ですので、Mysql#initialize() じゃなくて Mysql::new() の方をいじれば、
> できるかもしれません。

なるほど、確かに Mysql::new() の方を変更することで可能でした。
感謝します。とても助かりました。

>> require 'mysql'
=> true
>> class DB < Mysql
>>   class << self
>>     alias new_origin new
>>     def new
>>       new_origin(nil, 'myclinic', 'myclinic', 'myclinic2')
>>     end
>>   end
>> end
=> nil
>> DB.new.query('select count(*) from gp')
=> #<MysqlRes:0x40158848>

# 最初のメールには書きませんでしたが、実は本当にやりたいことは
# もう少し込み入っていて、Mysql クラスのサブクラスを Singleton に
# したかったのですが、これも上記のやり方でオッケイでした。


> # 今 1.6.8 を見てみたら、dbm.c ではちゃんと initialize() で処理 するよ
> # うになってますね… (^^;

私自身は、上記で解決しましたが、出来れば他のクラスとの一貫性を持たせるた
めにも、initialize で処理されている方が有り難いです。きっと、そのように
変更しても、過去との互換性の問題は少ないと思いますので・・・


> # しかし、『MySQL/Ruby』と『Ruby/MySQL』という名前はどうにかした方が良
> # いかも…。自分で書いててもややこしい…。

Perl の場合は、Pure Perl の実装の方を、mysqlPP と表記しているようです。
http://search.cpan.org/author/OYAMA/DBD-mysqlPP-0.04/mysqlPP.pm

その流儀で行けば、MySQLPR とか、MySQLRR とかでしょうか?

それともいっそのこと、MySQL/ExtRuby, MySQL/PureRuby, とする方が
分かりよさそうですね。