[前][次][番号順一覧][スレッド一覧]

ruby-reference-manual:3520

From: "sho-h (Sho Hashimoto)" <sho-h@n...>
Date: Wed, 13 Feb 2013 00:36:56 +0900
Subject: [ruby-reference-manual:3520] [るりまプロジェクト - Bug #7810] ARGFのメソッドをインスタンスメソッドにできない


Issue #7810 has been updated by sho-h (Sho Hashimoto).


> 1.8 系では一 Object にすぎなかった ARGF が 1.9 系では ARGF.class という名前の謎のクラスのインスタンスになったという感じに見えます。

はい。そうですね。

> ARGF がクラスになったわけではないのでそこで対応するのは少し変な気がします。

rb_define_method してるものは全部インスタンスメソッドでいいように思いました。

> * rdoc に動きが有るまで見なかったことにする

本体側はrdoc 側の対応は終わってると考えているのではないかと思います。そのため、修正が必要であれば何かしらこちらから働きかけないと難しいかもです。

なお、rdoc では ARGF は 1.8 では IO の最後に少しだけ登場していますが、

* http://www.ruby-doc.org/core-1.8.7/IO.html

1.9.2 から ARGF で表示されるようになりました。(クラス名はおかしいというか恣意的に ARGF にしてあるかもしれませんね


* http://www.ruby-doc.org/core-1.9.2/ARGF.html

既にご存知かもしれませんが、1.9.2 から追加されている io.c の以下のあたりに仕掛けがあるようですね。

  #if 0
      /* Hack to get rdoc to regard ARGF as a class: */
      rb_cARGF = rb_define_class("ARGF", rb_cObject);
  #endif

なので、対応は終わってると考えており、rdoc 側ではあえて public なインスタンスメソッドとしているように考えています。

> * = class ARGF.class < Object とか書けるようにする

実はそこまで考えていなかったのですが、この選択肢が一番現在の動作に合ってるように思いました。rdoc に合わせて = class ARGF でもいいかもしれないと思います。しないと思いますが、ARGF.class.new もできますし(ARGF.class 側に何かしようとした場合に何も考えずに操作できるように "ARGF.class" というクラス名になっているのかと考えています。

> 個人的には今の仕様である限りは従来通りの書き方を維持した方が無難な気がします。

以下のように ARGF.method(:binmode) の結果など見るだけでも明らかに変化してるので変更するのが適切に思います。ですが、たぶん困る人はいないので、強く修正したいと思っていなかったりもします。

* 1.8.7: ARGF.method(:binmode) # => #<Method: ARGF.binmode>
* 1.9.3: ARGF.method(:binmode) # => #<Method: ARGF.class#binmode>

----------------------------------------
Bug #7810: ARGFのメソッドをインスタンスメソッドにできない
https://bugs.ruby-lang.org/issues/7810#change-36176

Author: sho-h (Sho Hashimoto)
Status: Open
Priority: Normal
Assignee: 
Category: bitclust
Target version: 
reporter: 
ruby_version: 


1.9 から ARGF のメソッドがインスタンスメソッドに変わっているので対応しようとしたところ、bitclust 側でエラーになりました。レベル 2 ブロックの読み込みに対応していなかったんですね。

修正するとしたら添付のパッチのような形でしょうか。


-- 
http://bugs.ruby-lang.org/

--
ML: ruby-reference-manual@m...
Info: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

      3504 2013-02-09 03:07 [sho-h@n...          ] [るりまプロジェクト - Bug #7810][Open] ARGFno
      3505 2013-02-09 03:15 ┣[sho-h@n...          ] [るりまプロジェクト - Bug #7810] ARGFのメソッドをインスタンスメソッドにできない
      3517 2013-02-12 11:04 ┣[redmine@r...        ] [るりまプロジェクト - Bug #7810] ARGFのメソッドをインスタンスメソッドにできない
->    3520 2013-02-12 16:36 ┣[sho-h@n...          ] [るりまプロジェクト - Bug #7810] ARGFのメソッドをインスタンスメソッドにできない
      3522 2013-02-13 11:29 ┣[redmine@r...        ] [るりまプロジェクト - Bug #7810] ARGFのメソッドをインスタンスメソッドにできない
      3523 2013-02-13 14:18 ┣[sho-h@n...          ] [るりまプロジェクト - Bug #7810] ARGFのメソッドをインスタンスメソッドにできない
      3524 2013-02-13 14:39 ┣[redmine@r...        ] [るりまプロジェクト - Bug #7810] ARGFのメソッドをインスタンスメソッドにできない
      3527 2013-02-13 15:37 ┣[redmine@r...        ] [るりまプロジェクト - Bug #7810] ARGFのメソッドをインスタンスメソッドにできない
      3528 2013-02-13 15:41 ┣[redmine@r...        ] [るりまプロジェクト - Bug #7810] ARGFのメソッドをインスタンスメソッドにできない
      3529 2013-02-13 15:47 ┣[redmine@r...        ] [るりまプロジェクト - Bug #7810] ARGFのメソッドをインスタンスメソッドにできない
      3530 2013-02-13 17:22 ┣[sho-h@n...          ] [るりまプロジェクト - Bug #7810] ARGFのメソッドをインスタンスメソッドにできない
      3531 2013-02-13 23:38 ┣[redmine@r...        ] [るりまプロジェクト - Bug #7810] ARGFのメソッドをインスタンスメソッドにできない
      3532 2013-02-14 04:04 ┣[sho-h@n...          ] [るりまプロジェクト - Bug #7810] ARGFのメソッドをインスタンスメソッドにできない
      3533 2013-02-14 11:17 ┣[redmine@r...        ] [るりまプロジェクト - Bug #7810] ARGFのメソッドをインスタンスメソッドにできない
      3534 2013-02-14 12:14 ┣[sho-h@n...          ] [るりまプロジェクト - Bug #7810] ARGFのメソッドをインスタンスメソッドにできない
      3535 2013-02-14 13:57 ┣[redmine@r...        ] [るりまプロジェクト - Bug #7810] ARGFのメソッドをインスタンスメソッドにできない
      3536 2013-02-14 15:15 ┣[redmine@r...        ] [るりまプロジェクト - Bug #7810] ARGFのメソッドをインスタンスメソッドにできない
      3537 2013-02-14 15:52 ┣[sho-h@n...          ] [るりまプロジェクト - Bug #7810] ARGFのメソッドをインスタンスメソッドにできない
      3538 2013-02-14 17:22 ┣[sho-h@n...          ] [るりまプロジェクト - Bug #7810] ARGFのメソッドをインスタンスメソッドにできない
      3543 2013-02-16 11:39 ┣[redmine@r...        ] [るりまプロジェクト - Bug #7810] ARGFのメソッドをインスタンスメソッドにできない
      3548 2013-02-17 06:23 ┣[redmine@r...        ] [るりまプロジェクト - Bug #7810] ARGFのメソッドをインスタンスメソッドにできない
      3549 2013-02-17 06:26 ┣[redmine@r...        ] [るりまプロジェクト - Bug #7810] ARGFのメソッドをインスタンスメソッドにできない
      3550 2013-02-17 08:32 ┣[redmine@r...        ] [るりまプロジェクト - Bug #7810] ARGFのメソッドをインスタンスメソッドにできない
      3551 2013-02-17 14:47 ┗[sho-h@n...          ] [るりまプロジェクト - Bug #7810][Closed] ARGFのメソッドをインスタンスメソッドにできない