[#37248] [Feature:1.9] Enumerator#inspect — "Yusuke ENDOH" <mame@...>

遠藤です。

12 messages 2008/12/02

[#37337] [Feature #841] Object#self — "rubikitch ." <redmine@...>

Feature #841: Object#self

13 messages 2008/12/09

[#37513] Current status of 1.9.1 RC1's issues — "Yugui (Yuki Sonoda)" <yugui@...>

Hi, folks

14 messages 2008/12/20
[#37516] Re: Current status of 1.9.1 RC1's issues — Masatoshi SEKI <m_seki@...> 2008/12/20

咳といいます。

[#37576] [BUG:trunk] encoding for stdio's — "Yugui (Yuki Sonoda)" <yugui@...>

Yuguiです。

11 messages 2008/12/24

[ruby-dev:37320] Proposal to always define Encoding::INTERNAL; was: Re: m17n of irb

From: "Yugui (Yuki Sonoda)" <yugui@...>
Date: 2008-12-08 14:05:02 UTC
List: ruby-dev #37320
Yuguiです。

Yukihiro Matsumoto さんは書きました:
> YES。リリースマネジメント的に許されるのであればsetterメソッド
> の追加が良いのでは。
> 

パッチを書こうとしたら、Encoding.default_internal = nilは
Encoding::INTERNAL定数の削除を意味するので結構話が厄介なことに気づきまし
た。現状ではdefault_internalが指定されない場合はEncoding::INTERNALは定義
されませんので、一貫性から。

[ruby-dev:37000]で少しだけ話が出て、default_internalが指定されていない場
合は定数もEncoding.aliasesにも、そもそもdefault_internalというものが存在
しない、ということになりました。

けれども、逆にEncoding::INTERNAL定数は常に欲しいと思います。なぜならば、
Encoding::INTERNALへのアクセスを必要とするのはどのみちIO系ライブラリのよ
うな、それ自体がinternal_encodingを持つオブジェクトでしょうから。定数が
定義されていないケースが存在すると結局

 def self.open(locator, external = nil, internal = nil)
   external ||= Encoding::EXTERNAL
   internal ||= Encoding::INTERNAL if defined?(Encoding::INTERNAL)
   res = SomeInternalResource.open(locator, external, internal)
   ...
 end

のような不毛なコーディング慣習を産むのではないでしょうか。

setterがあること自体、-Eで指定を受けなかったプロセスにおいても何かしら
default_internalという概念が存在しえるという意味でもあります。この機会に
未指定時はnilで、Encoding::INTERNAL定数を常に定義することを提案します。

-- 
Yugui <yugui@yugui.jp>
http://yugui.jp
私は私をDumpする

In This Thread