ruby-changes:2246
From: ko1@a...
Date: 18 Oct 2007 16:41:34 +0900
Subject: [ruby-changes:2246] matz - Ruby:r13737 (trunk): * lib/rexml/source.rb (REXML::SourceFactory::SourceFactory): more
matz 2007-10-18 16:41:21 +0900 (Thu, 18 Oct 2007)
New Revision: 13737
Modified files:
trunk/ChangeLog
trunk/lib/rexml/source.rb
Log:
* lib/rexml/source.rb (REXML::SourceFactory::SourceFactory): more
duck typed. better performance on JRuby.
http://headius.blogspot.com/2007/10/another-performance-discovery-rexml.html
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=13737&r2=13736
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/rexml/source.rb?r1=13737&r2=13736
Index: ChangeLog
===================================================================
--- ChangeLog (revision 13736)
+++ ChangeLog (revision 13737)
@@ -1,3 +1,9 @@
+Thu Oct 18 16:39:34 2007 Yukihiro Matsumoto <matz@r...>
+
+ * lib/rexml/source.rb (REXML::SourceFactory::SourceFactory): more
+ duck typed. better performance on JRuby.
+ http://headius.blogspot.com/2007/10/another-performance-discovery-rexml.html
+
Thu Oct 18 09:33:25 2007 Yukihiro Matsumoto <matz@r...>
* range.c (range_first): takes first n element if argument is
Index: lib/rexml/source.rb
===================================================================
--- lib/rexml/source.rb (revision 13736)
+++ lib/rexml/source.rb (revision 13737)
@@ -7,13 +7,14 @@
# @param arg Either a String, or an IO
# @return a Source, or nil if a bad argument was given
def SourceFactory::create_from(arg)
- if arg.kind_of? String
- Source.new(arg)
- elsif arg.respond_to? :read and
- arg.respond_to? :readline and
- arg.respond_to? :nil? and
- arg.respond_to? :eof?
+ if arg.respond_to? :read and
+ arg.respond_to? :readline and
+ arg.respond_to? :nil? and
+ arg.respond_to? :eof?
IOSource.new(arg)
+ elsif arg.respond_to? :to_str
+ require 'stringio'
+ IOSource.new(StringIO.new(arg))
elsif arg.kind_of? Source
arg
else
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml