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

Feature #4043: =E3=82=B0=E3=83=AD=E3=83=BC=E3=83=90=E3=83=AB=E9=96=A2=E6=95=

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:42592] Re: [Ruby 1.9-Bug#3990][Closed] tests of rexml/rss reports many errors and failures without iconv

From: Kouhei Sutou <kou@...>
Date: 2010-11-18 13:46:07 UTC
List: ruby-dev #42592
須藤です。

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がでてくるのが嫌だった。)
実際にコードを書き出したらまた考えが変わるかもしれません
が。。。

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

えーっと、warning消しとかは混ぜないで欲しかったです。
あと、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 用の文字コード指定を追加するコードです。

の話でしょうか?

> % cat test.rb
> require 'rexml/document'
> src = <<end
> <?xml version="1.0" ?>
> <root>\u3042\uFF5E</root>
> end
> x = REXML::Document.new(src)
> 
> o = REXML::Output.new(s="", "EUC-JP", "CP51932")
> x.write(o)
> p s
> 
> o = REXML::Output.new(s="", "EUC-JP")
> x.write(o)
> % ./ruby test.rb
> "<?xml version='1.0' encoding='EUC-JP'?>\n<root>\x{A4A2}\x{A1C1}</root>\n"
> /home/naruse/local/ruby/lib/ruby/1.9.1/rexml/encoding.rb:34:in `encode': U+FF5E from UTF-8 to EUC-JP (Encoding::UndefinedConversionError)
...

> REXML::Document#write でも transcode encoding を指定できた方がいいかなぁ
> とも思っているのですが、とりあえず方向としてはこんな感じです。

この機能は私はいらないと思っています。
出力時に指定するのではなく、XML宣言を書き換えて変更するAPIの
方がよいと思っています。(なので今のままでよい。)

In This Thread