[#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

信岡です。

[#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つポストしてしまったようですいません。

[ruby-list:48256] 動的なクラス定義とトップレベルでのinclude

From: "MISHIMA, Hiroyuki" <missy@...>
Date: 2011-08-04 05:54:12 UTC
List: ruby-list #48256
三嶋@長崎大と申します。

Module#const_missingを使った動的なクラス定義と,トップレベルでのinclude
について質問があります。なお,ruby-1.8.7-p352およびruby-1.9.2-p290で同様
な結果でした。

"dynamic.rb" として以下のスクリプトを準備します。

module Foo
  module Bar
    class Hoge
      def self.test
        "Foo::Bar::Hoge.test"
      end
    end

    def self.const_missing(sym)
      module_eval %!
        class #{sym}
          def self.test
            "Foo::Bar:#{sym}.test"
          end
        end
      !
      const_get(sym)
    end
  end
end

これに対し

require './dymamic'
include Foo
Bar::Hoge.test # => "Foo::Bar::Hoge.test"
Bar::Puyo.test # => "Foo::Bar::Puyo.test"

はうまく動くのですが,

require './dymamic'
include Foo::Bar
Hoge.test # => "Foo::Bar::Hoge.test"
Puyo.test # => uninitialized constant Puyo (NameError)

ではPuyo.testがエラーとなってしまいます。

後者でエラーを回避する方法はあるのでしょうか?(あるいは,おもいっきり勘
違いした質問になってましたらご容赦/ご指摘いただければ幸いです)

三嶋博之
-- 
長崎大学大学院医歯薬学総合研究科人類遺伝学
三嶋 博之

In This Thread

Prev Next