[#45036] WindowsでMySQL/Rubyを使おうとするとmysql.so (LoadError) — adgjmptw@...

多田と申します。

22 messages 2008/06/12
[#45038] Re: WindowsでMySQL/Rubyを使おうとするとmysql.so (LoadError) — rubikitch@... 2008/06/12

From: adgjmptw@super-r.net

[#45040] Re: WindowsでMySQL/Rubyを使おうとするとmysql.so (LoadError) — adgjmptw@... 2008/06/12

> (3)ロードパスに C:/usr/local/lib/ruby/site_ruby/1.8/i386-msvcrt が

[#45042] Re: WindowsでMySQL/Rubyを使おうとするとmysql.so (LoadError) — rubikitch@... 2008/06/12

From: adgjmptw@super-r.net

[#45045] Re: WindowsでMySQL/Rubyを使おうとするとmysql.so (LoadError) — adgjmptw@... 2008/06/13

原因と思われるものがわかりました。

[#45052] Re: WindowsでMySQL/Rubyを使おうとするとmysql.so (LoadError) — とみたまさひろ <tommy@...> 2008/06/13

とみたです。

[#45099] Ruby 1.9.0/1.8.7/1.8.6/1.8.5 new releases (Security Fix) — Urabe Shyouhei <shyouhei@...>

Hi all.

20 messages 2008/06/20
[#45100] Re: Ruby 1.9.0/1.8.7/1.8.6/1.8.5 new releases (Security Fix) — Urabe Shyouhei <shyouhei@...> 2008/06/20

卜部です。

[#45102] Re: Ruby 1.9.0/1.8.7/1.8.6/1.8.5 new releases (Security Fix) — 植田 裕之 <ueda@...> 2008/06/20

植田と申します。

[#45106] Re: Ruby 1.9.0/1.8.7/1.8.6/1.8.5 new releases (Security Fix) — akira yamada / やまだあきら <akira@...> 2008/06/21

植田 裕之 さんは書きました:

[#45112] ソース:インストール:MacOSX10.3.9 — 上間 健 <tntn@...>

./configure --prefix=/usr/local --with-readline-dir=/opt/local

46 messages 2008/06/22
[#45113] Re: ソース:インストール:MacOSX10.3.9 — 上間 健 <tntn@...> 2008/06/22

質問をゆるやかに変更

[#45114] Re: ソース:インストール:MacOSX10.3.9 — wei <weimayamiew@...> 2008/06/23

今晩は、ヱイと申します。

[#45122] Re: ソース:インストール:MacOSX10.3.9 — 上間 健 <tntn@...> 2008/06/24

ヱイ さん

[#45131] Re: ソース:インストール:MacOSX10.3.9 — Hidetoshi NAGAI <nagai@...> 2008/06/24

Ruby/Tk メンテナの永井@知能.九工大です.

[#45143] Re: ソース:インストール:MacOSX10.3.9 — Ryutaro Amano <wn9r-amn@...> 2008/06/26

天野です。

[#45146] Re: ソース:インストール:MacOSX10.3.9 — Hidetoshi NAGAI <nagai@...> 2008/06/26

永井@知能.九工大です.

[#45149] Re: ソース:インストール:MacOSX10.3.9 — Ryutaro Amano <wn9r-amn@...> 2008/06/27

天野です。

[#45152] Re: ソース:インストール:MacOSX10.3.9 — Hidetoshi NAGAI <nagai@...> 2008/06/29

永井@知能.九工大です.

[#45184] Re: ソース:インストール:MacOSX10.3.9 — Ryutaro Amano <wn9r-amn@...> 2008/07/03

天野です。RES遅くなり申し訳ありません。

[#45186] Re: ソース:インストール:MacOSX10.3.9 — Hidetoshi NAGAI <nagai@...> 2008/07/04

永井@知能.九工大です.

[#45192] Re: ソース:インストール:MacOSX10.3.9 — wei <weimayamiew@...> 2008/07/04

ヱイです。

[#45193] Re: ソース:インストール:MacOSX10.3.9 — Hidetoshi NAGAI <nagai@...> 2008/07/04

永井@知能.九工大です.

[#45157] MySQLに書き込む前にSJISのエスケープ文字を入れる処理ってどうされてますか? — adgjmptw@...

多田です。

12 messages 2008/06/29
[#45158] Re: MySQLに書き込む前にSJISのエスケープ文字を入れる処理ってどうされてますか? — rubikitch@... 2008/06/29

From: adgjmptw@super-r.net

[#45159] Re: MySQLに書き込む前にSJISのエスケープ文字を入れる処理ってどうされてますか? — adgjmptw@... 2008/06/29

> str.tosjis # Shift_JISに変換(入力文字コードは推測)

[ruby-list:45164] Re: MySQLに書き込む前にSJISのエスケープ文字を入れる処理ってどうされてますか?

From: NAKAMURA Akifumi <BXQ04723@...>
Date: 2008-06-29 23:00:12 UTC
List: ruby-list #45164
a.中村です。

adgjmptw@super-r.net さんは書きました:

> class Mysqlov < Mysql
>  def set() #とりあえずメソッド追加
>  end
> end
> 
> db=Mysqlov.init()
> db.set()

>  undefined method `set' for #<Mysql> (NoMethodError)\r,

> 継承のやり方間違ってますか?

継承のやりかた自体はOKですが、
継承に何を期待するか?が間違ってる気がします。

以下、私はmysqlライブラリのことは知らないので
想像とか一般論とかを混ぜちゃいますが、

Mysqlovにinitというクラスメソッドが無いようなので、
(これ以外のソースは無いのだと仮定して)
それを呼んでも、実際呼ばれるのは
Mysqlのほうのinitメソッドだと思います。

Mysql.initは(きっとたぶん)
インスタンスを生成して(そして初期化して)返すんだと思いますが、
問題はそのインスタンスのクラスが何か?です。

根本的にはinitが何をするかはライブラリ作ったかたの自由ですが、
(rubyだとnewメソッドとかには文化的な縛りがありますが、
たしかinitには無いですよね)
たぶん(^^;Mysqlクラスあたりのインスタンスを生成するんだと思います。

で、その場合、こまかく言えば Mysql.initが

●いまのじぶんのクラス(つまりMysqlov)を動的にとってきて、
それのインスタンスを作る

●Mysqlクラス(きめうち)のインスタンスを作る

という2つの実装というか設計が有り得ると思います。

そしてどっちを選択するかは、
これまたライブラリ作者さんしだいだと思います。
実際これは一長一短なので、設計方針しだいかなと。

多田さんが期待されたのは
動的にとってきて…のほうだと思うんですが、
実際は「メソッド無い」とか
ログに出てるクラス名とか
といった振る舞いから想像するに
きめうちMysqlのほうになってるんだと思います。



newメソッドならruby文化に照らして
「出てきたインスタンスは
自分で書いたクラスになっててくれないと変だ!」
といえるけど、
それ以外の多くのメソッドでは
どう振舞うかはライブラリの実装(設計)しだい
だと思います。

少なくとも「継承したから」という理由で
おのずからそうなる、というものではない
のだろうと思います。

「何を期待するか」ってのは、その話です。


#ってことでいいんでしたっけ?>みなさま


In This Thread