[#42564] [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案 — Makoto Kishimoto <redmine@...>

Feature #4043: グローバル関数current_classの提案

15 messages 2010/11/11
[#42774] Re: [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案 — Yukihiro Matsumoto <matz@...> 2010/12/16

まつもと ゆきひろです

[#42834] Re: [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案 — "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp> 2010/12/21

きしもとです

[#42835] Re: [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案 — Yukihiro Matsumoto <matz@...> 2010/12/21

まつもと ゆきひろです

[#42838] Re: [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案 — "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp> 2010/12/21

きしもとです

[#42845] Re: [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案 — Yukihiro Matsumoto <matz@...> 2010/12/21

まつもと ゆきひろです

[#42577] Rubyのバグレポートのガイドライン — "Shota Fukumori (sora_h)" <sorah@...>

sora_hです。

11 messages 2010/11/15
[#42588] Re: Rubyのバグレポートのガイドライン — Yugui <yugui@...> 2010/11/18

2010/11/15 Shota Fukumori (sora_h) <sorah@tubusu.net>:

[#42638] Enumerable#categorize — Tanaka Akira <akr@...>

enumerable から hash を生成するメソッドとして

25 messages 2010/11/27
[#42643] Re: Enumerable#categorize — Yukihiro Matsumoto <matz@...> 2010/11/27

まつもと ゆきひろです

[ruby-dev:42593] Re: [Ruby 1.9-Bug#3990][Closed] tests of rexml/rss reports many errors and failures without iconv

From: "NARUSE, Yui" <naruse@...>
Date: 2010-11-18 14:43:14 UTC
List: ruby-dev #42593
成瀬です。

(2010/11/18 22:46), Kouhei Sutou wrote:
> In<4CDE5913.7060709@airemix.jp>
>    "[ruby-dev:42572] Re: [Ruby 1.9-Bug#3990][Closed] tests of rexml/rss reports many errors and failures without iconv" on Sat, 13 Nov 2010 18:23:36 +0900,
>    "NARUSE, Yui"<naruse@airemix.jp>  wrote:
> 
>> パッチを作ってみました。
>> https://github.com/nurse/ruby/compare/trunk...rexml
> 
> ありがとうございます。
> REXML::EncodingクラスとかREXML::XMLEncodingクラスとかを作ろ
> うかと思っていたのですが、文字列でもいいような気もしてきまし
> た。(XML宣言のエンコーディングを比較しているところが分散し
> ていていろんなところでupcaseがでてくるのが嫌だった。)
> 実際にコードを書き出したらまた考えが変わるかもしれません
> が。。。

比較対象は全て UTF-8 なので、REXML::Encoding モジュールに
decode 済み or UTF-8 か否か、を示すインスタンス変数を追加というのは考えました。

>> 83a66d67 が encoding を String に戻すもののうち、主要なもの。
>> 8d20327b が 83a66d67 に含まれるべき変更のうち、主要でないものを、
>>    わかりやすさのため今回別にしています
>> 2de823bd が warning 消し
>> 14187b46 が transcode 用の文字コード指定を追加するコードです。
> 
> えーっと、warning消しとかは混ぜないで欲しかったです。

git では別のコミットにしてあるので、「Showing 4 commits by 1 author.」
の下に出ている4つのコミットのリンクを選択すれば、例えば
https://github.com/nurse/ruby/commit/83a66d679a788022bdcc7ecf0f7414437d8d175c
などと個別の差分を見れますよ。
また、warningだけ別にした plain な diff も出せますが−、いらないかな

> あと、warningを消そうとするのはよいと思うのですが、消すこと
> が目的な変更はよくないと思っています。ダメなところに気づきに
> くくなるので。
> 直すならちゃんとしたコードに直した方がよいと思っています。
> 例えば、こういうのにはちゃんとassertをつけた方がよいと思って
> います。
> 
>     def test_oses_with_bad_EOLs
> -    d = Document.new("\n\n\n<?xml version='1.0'?>\n\n\n<a/>\n\n")
> +    Document.new("\n\n\n<?xml version='1.0'?>\n\n\n<a/>\n\n")
>     end
> 
> ということで、エッセンスだけ参考にして書き直しておきますね。

確かに。
ここはよろしくです。

> あ、そういえば、decodeのところで必ずBOMをチェックするように
> していますが、これは必要なんでしょうか?BOMはファイルの先頭
> でだけチェックすればいいのだと思っていました。

む、確かにご指摘の通り誤っていますね。

>> これによって例えば以下のような違いが出ます。
> 
> これは何による違いですか?
> 
>> 14187b46 が transcode 用の文字コード指定を追加するコードです。
> 
> の話でしょうか?

おっと、また説明が不足していますね、そうです。

>> REXML::Document#write でも transcode encoding を指定できた方がいいかなぁ
>> とも思っているのですが、とりあえず方向としてはこんな感じです。
> 
> この機能は私はいらないと思っています。
> 出力時に指定するのではなく、XML宣言を書き換えて変更するAPIの
> 方がよいと思っています。(なので今のままでよい。)

XML 宣言で用いるエンコーディングと、変換で用いるエンコーディングを別に
したいケースがあるのですよ。
代表例が Windows-31J と Shift_JIS、CP51932 と EUC-JP です。

-- 
NARUSE, Yui  <naruse@airemix.jp>

In This Thread