[#48251] require 'dbi' の警告について — 稲葉伸之 <nobuyuki.inaba@...>
いなばともうします。
22 messages
2011/08/03
[#48260] Re: require 'dbi' の警告について
— Fumiaki Sakamoto <ua6ta6@...>
2011/08/05
坂元と申します。
[#48261] Re: require 'dbi' の警告について
— 稲葉伸之 <nobuyuki.inaba@...>
2011/08/05
いろいろありがとうございます。
[#48264] Re: require 'dbi' の警告について
— "Y. Nobuoka" <nobuoka@...>
2011/08/05
信岡です。
[#48265] Re: require 'dbi' の警告について
— eiichi_maekawa@...
2011/08/07
[#48266] Re: require 'dbi' の警告について
— "Y. Nobuoka" <nobuoka@...>
2011/08/08
前川さん
[#48269] Re: require 'dbi' の警告について
— eiichi_maekawa@...
2011/08/08
信岡さん
[#48252] Ruby1.9.2 p290 MySQLアクセス用DBI、DBD、deprecated.gemファイル、mysql-2.8.1-x86-mswin32.gemファイルについて — "前川 映一" <eiichi_maekawa@...>
4 messages
2011/08/03
[#48284] Hash#index と Hash#key について — Masa <mhatakeyama@...>
畠山です。
5 messages
2011/08/08
[#48290] バグレポートについて — "前川 映一" <eiichi_maekawa@...>
8 messages
2011/08/09
[#48292] Re: バグレポートについて
— "Shota Fukumori (sora_h)" <sorah@...>
2011/08/09
http://redmine.ruby-lang.org/projects/ruby-19/issues/new
[#48308] WinXPでnokogiインストール — AOKI Yoshihiro <aoki@...>
あおきと申します。
13 messages
2011/08/12
[#48309] Re: WinXPでnokogiインストール
— AOKI Yoshihiro <aoki@...>
2011/08/12
あおきです。
[#48330] 1.25を %10.1f で出力したときバージョンにより表示に違いがでるのは何故でしょうか。 — paptimusx <paptimusx@...>
1.25を %10.1f で出力したとき、表示に違いがでるのですが、何故でしょうか。
10 messages
2011/08/23
[#48332] Re: 1.25を %10.1f で出力したときバージョンにより表示に違いがでるのは何故でしょうか。
— paptimusx <paptimusx@...>
2011/08/23
2つポストしてしまったようですいません。
[#48336] Re: 1.25を %10.1f で出力したときバージョンにより表示に違いがでるのは何故でしょうか。
— Kenta Murata <muraken@...>
2011/08/24
むらたです。
[ruby-list:48257] Re: 動的なクラス定義とトップレベルでのinclude
From:
Masa <mhatakeyama@...>
Date:
2011-08-04 07:07:28 UTC
List:
ruby-list #48257
畠山です。
結論からいいますと、二番目のエラーが出たのはPuyoがFoo::Barの定数としてではなくトップレベルの定数だと認識されたためだと思います。
トップレベルの未定義定数の場合はObject.const_missingが呼ばれますので次のように定義すると両方とも実行されます。(実用的には二度同じ定義をするのはあまりよろしくないのでもう少し賢い方法はどなたかの回答を期待します...)
module Foo
module Bar
class Hoge
def self.test
"Foo::Bar::Hoge.test"
end
end
def self.const_missing(sym)
p self
module_eval %!
class #{sym}
def self.test
"Foo::Bar::#{sym}.test"
end
end
!
const_get(sym)
end
def Object.const_missing(sym)
p self
module_eval %!
class #{sym}
def self.test
"Foo::Bar::#{sym}.test"
end
end
!
const_get(sym)
end
end
end
ちなみに
require 'dynamic'
include Foo::Bar
p Puyo.test # => "Foo::Bar::Puyo.test"
p Foo::Bar::Puyo.test # "Foo::Bar::Puyo.test"
とすると一つめと二つ目でselfの値が違っているのが分かります。
参考までに。
畠山