[#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:42572] 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-13 09:23:36 UTC
List: ruby-dev #42572
成瀬です。

(2010/11/07 20:10), Kouhei Sutou wrote:
> In<4CD67C08.7060804@airemix.jp>
>    "[ruby-dev:42548] Re: [Ruby 1.9-Bug#3990][Closed] tests of rexml/rss reports many errors and failures without iconv" on Sun, 7 Nov 2010 19:14:39 +0900,
>    "NARUSE, Yui"<naruse@airemix.jp>  wrote:
> 
>>>> なぜ互換性を挙げたかというと、XMLDecl#encoding を、
>>>> XML 宣言用と transcode 用のどちらの意味にするかを考える際、
>>>> 互換性的には XML 宣言用だと理解するべきだからです。
>>>> # transcode 用では指定自体を CP932 とかに変えないといけない
>>>> # というか iconv の時でも Shift_JIS を使うと波ダッシュとかではまる
>>>
>>> では、2.を解決する方法(XML宣言用とtranscode用のencodingを別
>>> に管理する方法)をいくつか考えて、その中で一番よさそうなもの
>>> についてそれが妥当かをあらためて考える、という流れでいいです
>>> か?
>>
>> わかりました、後ほどとパッチを投げます。
> 
> ありがとうございます。
> 私も思うところはあるので案を出すつもりです。
> ただ、少なくとも年末までわりとやることがあるので、そんなに反
> 応はよくないと思います。すみません。

パッチを作ってみました。
https://github.com/nurse/ruby/compare/trunk...rexml

83a66d67 が encoding を String に戻すもののうち、主要なもの。
8d20327b が 83a66d67 に含まれるべき変更のうち、主要でないものを、
  わかりやすさのため今回別にしています
2de823bd が warning 消し
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)
        from /home/naruse/local/ruby/lib/ruby/1.9.1/rexml/encoding.rb:34:in `encode'
        from /home/naruse/local/ruby/lib/ruby/1.9.1/rexml/output.rb:22:in `<<'
        from /home/naruse/local/ruby/lib/ruby/1.9.1/rexml/formatters/default.rb:87:in `write_text'
        from /home/naruse/local/ruby/lib/ruby/1.9.1/rexml/formatters/default.rb:50:in `write'
        from /home/naruse/local/ruby/lib/ruby/1.9.1/rexml/formatters/default.rb:79:in `block in write_element'
        from /home/naruse/local/ruby/lib/ruby/1.9.1/rexml/formatters/default.rb:78:in `each'
        from /home/naruse/local/ruby/lib/ruby/1.9.1/rexml/formatters/default.rb:78:in `write_element'
        from /home/naruse/local/ruby/lib/ruby/1.9.1/rexml/formatters/default.rb:31:in `write'
        from /home/naruse/local/ruby/lib/ruby/1.9.1/rexml/formatters/default.rb:60:in `block in write_document'
        from /home/naruse/local/ruby/lib/ruby/1.9.1/rexml/formatters/default.rb:60:in `each'
        from /home/naruse/local/ruby/lib/ruby/1.9.1/rexml/formatters/default.rb:60:in `write_document'
        from /home/naruse/local/ruby/lib/ruby/1.9.1/rexml/formatters/default.rb:28:in `write'
        from /home/naruse/local/ruby/lib/ruby/1.9.1/rexml/document.rb:199:in `write'
        from test.rb:13:in `<main>'

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

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

In This Thread