須藤です.

In <m3irycaoaf.wl%kazuhiko / fdiary.net>
  "[ruby-list:41025] Re: rss/maker のソート" on Thu, 11 Aug 2005 17:08:39 +0900,
  Kazuhiko <kazuhiko / fdiary.net> wrote:

> > >     feed.items.each do |item|
> > >       maker.items << item
> > >     end
> > > 
> > > みたいに書けそうに見えたのですが、これはうまくいきませんでした。
> > 
> > RSS Parserが返すオブジェクト(feedとかfeed.itemsとか)とRSS
> > Makerが使っているオブジェクト(maker.itemsとか)は別物なので,
> > こういう風には書けません.すいません.
> 
> はい、別物なのは分かっていたのですが、なぜ別物なのか分かっていなかったの
> で、「こういうことができる、っていう意図ではないのですよね?」とちょっと
> 聞いてみたのでした。

うーん,できた方がいいんですかねぇ.

これでできるようになるんですけど,勝手に変換されるあたりとか,
RSS MakerのItemが<<で追加できなくあたりとかがなんか気持ち悪
い感じがしてしまいます.


Index: lib/rss/maker/base.rb
===================================================================
RCS file: /var/cvs/src/ruby/lib/rss/maker/base.rb,v
retrieving revision 1.12
diff -u -p -r1.12 base.rb
--- lib/rss/maker/base.rb       11 Aug 2005 04:04:59 -0000      1.12
+++ lib/rss/maker/base.rb       11 Aug 2005 08:52:02 -0000
@@ -414,6 +414,11 @@ EOC
         item
       end

+      undef_method :<<
+      def <<(item)
+        item.setup_maker(@maker)
+      end
+
       private
       def sort_if_need
         if @do_sort.respond_to?(:call)