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

信岡です。

[#48308] WinXPでnokogiインストール — AOKI Yoshihiro <aoki@...>

あおきと申します。

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

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

From: Aiga Matsuo <mtaiga@...>
Date: 2011-08-04 07:09:00 UTC
List: ruby-list #48258
前者の方は、Foo::Barのスコープでmethod_missingが呼ばれますが、
後者は、Objectのスコープでmethod_missingが呼ばれることになります。

トップレベルのconst_missingを再定義するなら、

class Object
  def self.const_missing(sym)
    puts "constant: #{sym}"
  end
end

p Hoge # => "constant: Hoge"

こんな感じになっちゃいます。


2011年8月4日14:54 MISHIMA, Hiroyuki <missy@be.to>:

> 三嶋@長崎大と申します。
>
> 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がエラーとなってしまいます。
>
> 後者でエラーを回避する方法はあるのでしょうか?(あるいは,おもいっきり勘
> 違いした質問になってましたらご容赦/ご指摘いただければ幸いです)
>
> 三嶋博之
> --
> 長崎大学大学院医歯薬学総合研究科人類遺伝学
> 三嶋 博之
>
>


-- 
Aiga Matsuo

In This Thread