From: "ohai (Ippei Obayashi)" Date: 2013-07-28T20:16:04+09:00 Subject: [ruby-dev:47550] [ruby-trunk - Bug #8689] REXML::StreamListener#entityが呼び出されない Issue #8689 has been updated by ohai (Ippei Obayashi). 修正ありがとうございます。元々のコードを書いた人も取れている情報を捨てずに活用できる手段を用意したかったのでしょう。 るりまもこれに合わせて適当に修正します。 ---------------------------------------- Bug #8689: REXML::StreamListener#entityが呼び出されない https://bugs.ruby-lang.org/issues/8689#change-40736 Author: ohai (Ippei Obayashi) Status: Closed Priority: Normal Assignee: kou (Kouhei Sutou) Category: lib Target version: ruby -v: ruby 2.1.0dev (2013-07-25 trunk 42169) [x86_64-linux] Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN REXML::StreamListener#entity のドキュメントによると # Called when %foo; is encountered in a doctype declaration. # @p content "foo" def entity content end と書かれていますが、以下のコードを動かしても何も表示されません require 'rexml/parsers/baseparser' require 'rexml/parsers/streamparser' require 'rexml/streamlistener' xml = < EOS class Listener include REXML::StreamListener def entity(content) p content end end REXML::Parsers::StreamParser.new(xml, Listener.new).parse lib/rexml/parsers/streamparser.rb でもこの entity というメソッドを呼びだしている 場所はないようです。 というわけで、なんらかの修正をする必要があるように思われます。 * このメソッドを削除 * このメソッドを StreamParser から呼びだすようにする のいずれかの変更が良いでしょう。 私の意見としては、このコールバックの使い道が思いつかない、おそらく誰も使っていない、ので、削除してしまって よいのではと思います。 -- http://bugs.ruby-lang.org/