そんなんいわれてもこまる(´・ω・`)ショボーン


$ uname -mrsv
Linux 2.6.26-2-amd64 #1 SMP Tue Jan 25 05:59:43 UTC 2011 x86_64
 
$ ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]

/usr/lib/ruby/1.8/rexml/formatters/pretty.rb:131:in `[]': no implicit conversion from nil to integer (TypeError)
  from /usr/lib/ruby/1.8/rexml/formatters/pretty.rb:131:in `wrap'
  from /usr/lib/ruby/1.8/rexml/formatters/pretty.rb:90:in `write_text'
  from /usr/lib/ruby/1.8/rexml/formatters/default.rb:50:in `write'
  from /usr/lib/ruby/1.8/rexml/formatters/pretty.rb:75:in `write_element'
  from /usr/lib/ruby/1.8/rexml/formatters/pretty.rb:73:in `each'
  from /usr/lib/ruby/1.8/rexml/formatters/pretty.rb:73:in `write_element'
  from /usr/lib/ruby/1.8/rexml/formatters/default.rb:31:in `write'
  from /usr/lib/ruby/1.8/rexml/formatters/pretty.rb:75:in `write_element'
  from /usr/lib/ruby/1.8/rexml/formatters/pretty.rb:73:in `each'
  from /usr/lib/ruby/1.8/rexml/formatters/pretty.rb:73:in `write_element'
  from /usr/lib/ruby/1.8/rexml/formatters/default.rb:31:in `write'
  from /usr/lib/ruby/1.8/rexml/formatters/pretty.rb:75:in `write_element'
  from /usr/lib/ruby/1.8/rexml/formatters/pretty.rb:73:in `each'
  from /usr/lib/ruby/1.8/rexml/formatters/pretty.rb:73:in `write_element'
  from /usr/lib/ruby/1.8/rexml/formatters/default.rb:31:in `write'

こんな感じのソースコードで発生。


doc = REXML::Document.new()
(中略)
str = ""
formatter = REXML::Formatters::Pretty.new(2, true)
formatter.write(doc.root, str) # こいつがエラー
doc.write(str, 2) # こいつもエラー
doc.write(str, -1, true, true) # これはOK

tags: ruby rexml

Posted by NI-Lab. (@nilab)