Forum: Ruby-dev [Ruby 1.9 - Feature #4872][Open] REXML::XMLDecl#encodingがStringではなくEncodingを返すようにする

Ee6ffca720cc428d70247dcd7377dd48?d=identicon&s=25 Kouhei Sutou (Guest)
on 2011-06-11 16:14
(Received via mailing list)
Issue #4872 has been reported by Kouhei Sutou.

----------------------------------------
Feature #4872: REXML::XMLDecl#encodingがStringではなくEncodingを返すようにする
http://redmine.ruby-lang.org/issues/4872

Author: Kouhei Sutou
Status: Open
Priority: Normal
Assignee: Kouhei Sutou
Category: lib
Target version: 1.9.x


経緯は #3990 の後ろの方の流れを参照。

1.9.3がリリースされてからやる。
Ee6ffca720cc428d70247dcd7377dd48?d=identicon&s=25 Kouhei Sutou (Guest)
on 2011-06-11 16:17
(Received via mailing list)
Issue #4872 has been updated by Kouhei Sutou.


(本文中で #3990 にリンクをはるにはどうしたらよいのでしょうか。。。)
----------------------------------------
Feature #4872: REXML::XMLDecl#encodingがStringではなくEncodingを返すようにする
http://redmine.ruby-lang.org/issues/4872

Author: Kouhei Sutou
Status: Open
Priority: Normal
Assignee: Kouhei Sutou
Category: lib
Target version: 1.9.x


経緯は #3990 の後ろの方の流れを参照。

1.9.3がリリースされてからやる。
Ee6ffca720cc428d70247dcd7377dd48?d=identicon&s=25 Kouhei Sutou (Guest)
on 2011-07-19 11:42
(Received via mailing list)
Issue #4872 has been updated by Kouhei Sutou.


=begin
成瀬さんと話して(やるなら)以下のようにすることにした。
* REXML::XMLDecl#encodingはEncodingを返すようにする。
*
REXML::XMLDecl#writeで使うXMLエンコーディングは引数で指定できるようにする。(指定されない場合はREXL::XMLDecl#encodingを使ってXMLエンコーディングを決める。)
=end

----------------------------------------
Feature #4872: REXML::XMLDecl#encodingがStringではなくEncodingを返すようにする
http://redmine.ruby-lang.org/issues/4872

Author: Kouhei Sutou
Status: Open
Priority: Normal
Assignee: Kouhei Sutou
Category: lib
Target version: 1.9.x


経緯は #3990 の後ろの方の流れを参照。

1.9.3がリリースされてからやる。
Ee6ffca720cc428d70247dcd7377dd48?d=identicon&s=25 kou (Kouhei Sutou) (Guest)
on 2012-11-03 06:12
(Received via mailing list)
Issue #4872 has been updated by kou (Kouhei Sutou).


kou (Kouhei Sutou) wrote:

> * REXML::XMLDecl#encodingはEncodingを返すようにする。

これはやらないことにしました。
これをやりたかったもともとの理由は、ユーザーとしてエンコーディング情報を正規化した状態で扱いたかった(UTF-8かutf-8かとか気にしたくない)からでした。が、よく見てみたら、XMLDecl#encodingはupcaseして正規化していました。(utf-8を気にせずに常にUTF-8かで確認できた。)なので、やる理由がなくなりました。

あと、↓の通り、XML宣言のencodingとXML文書のエンコーディングを結び付けないことにした(結び付けないこともできるようにした)のでXML文書のエンコーディングをXMLDecl#encoding(これはXML宣言のencoding)で返すのがおかしいなぁと思うようになりました。なので、やめました。XML文書のエンコーディングをだれが持つかという話は↓で。

> *
REXML::XMLDecl#writeで使うXMLエンコーディングは引数で指定できるようにする。(指定されない場合はREXL::XMLDecl#encodingを使ってXMLエンコーディングを決める。)

これはREXML::XMLdecl#writeじゃなくてREXML::Document#writeで出力エンコーディングを指定できるようにしました。
XML宣言のencodingとXML文書のエンコーディングを変えたい時(例えば、XML宣言のencodingはShift_JISでXML文書のエンコーディングはWindows-31Jにしたい時)はこうします。

  document.xml_decl.encoding = "Shift_JIS"
  document.write(:encoding => "Windows-31J")

こうした理由はXML文書を生成するときはREXML::XMLDecl#writeではなくREXML::Document#writeを使うので、REXML::XMLDecl#writeでカスタマイズできても使いづらいからです。

XML宣言のencodingとXML文書のエンコーディングを別々に指定したい、というのが実現したいことです。それを、REXML::Docuemnt#writeでやるならXML宣言のencodingではなくXML文書のエンコーディングを指定するのが自然なので(DocumentはXML文書のことだから)、XML宣言のencodingではなくXML文書のエンコーディングを出力時に変更できるようにしました。

----------------------------------------
Feature #4872: REXML::XMLDecl#encodingがStringではなくEncodingを返すようにする
https://bugs.ruby-lang.org/issues/4872#change-32291

Author: kou (Kouhei Sutou)
Status: Closed
Priority: Normal
Assignee: kou (Kouhei Sutou)
Category: lib
Target version: 2.0.0


経緯は #3990 の後ろの方の流れを参照。

1.9.3がリリースされてからやる。
9361878d459f1709feec780518946ee5?d=identicon&s=25 naruse (Yui NARUSE) (Guest)
on 2012-11-03 16:10
(Received via mailing list)
Issue #4872 has been updated by naruse (Yui NARUSE).


kou (Kouhei Sutou) wrote:
>
> これはREXML::XMLdecl#writeじゃなくてREXML::Document#writeで出力エンコーディングを指定できるようにしました。
>
XML宣言のencodingとXML文書のエンコーディングを変えたい時(例えば、XML宣言のencodingはShift_JISでXML文書のエンコーディングはWindows-31Jにしたい時)はこうします。
>
>   document.xml_decl.encoding = "Shift_JIS"
>   document.write(:encoding => "Windows-31J")
>
>
こうした理由はXML文書を生成するときはREXML::XMLDecl#writeではなくREXML::Document#writeを使うので、REXML::XMLDecl#writeでカスタマイズできても使いづらいからです。
>
>
XML宣言のencodingとXML文書のエンコーディングを別々に指定したい、というのが実現したいことです。それを、REXML::Docuemnt#writeでやるならXML宣言のencodingではなくXML文書のエンコーディングを指定するのが自然なので(DocumentはXML文書のことだから)、XML宣言のencodingではなくXML文書のエンコーディングを出力時に変更できるようにしました。

なるほど、確かにその方がよいと思います。
----------------------------------------
Feature #4872: REXML::XMLDecl#encodingがStringではなくEncodingを返すようにする
https://bugs.ruby-lang.org/issues/4872#change-32295

Author: kou (Kouhei Sutou)
Status: Closed
Priority: Normal
Assignee: kou (Kouhei Sutou)
Category: lib
Target version: 2.0.0


経緯は #3990 の後ろの方の流れを参照。

1.9.3がリリースされてからやる。
This topic is locked and can not be replied to.