From: "mame (Yusuke Endoh)" <mame@...> Date: 2012-11-06T00:25:09+09:00 Subject: [ruby-core:48935] [ruby-trunk - Bug #7231] StringIO inconsistently raises IOError or RuntimeError if the string is frozen Issue #7231 has been updated by mame (Yusuke Endoh). Indeed. I think that it should raise IOError constantly. Any opinion? Anyone could create a patch, please? -- Yusuke Endoh <mame@tsg.ne.jp> ---------------------------------------- Bug #7231: StringIO inconsistently raises IOError or RuntimeError if the string is frozen https://bugs.ruby-lang.org/issues/7231#change-32439 Author: brixen (Brian Ford) Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: ruby 1.9.3p286 (2012-10-12 revision 37165) [x86_64-darwin10.8.0] StringIO#ungetc, #ungetbyte raise RuntimeError if the data string is frozen. StringIO#write raises IOError. Why? 1.9.3p286 :001 > require 'stringio' => true 1.9.3p286 :002 > s = StringIO.new x = "abc" => #<StringIO:0x00000101020038> 1.9.3p286 :003 > x.freeze => "abc" 1.9.3p286 :004 > s.ungetbyte 0x42 RuntimeError: can't modify frozen String from (irb):4:in `ungetbyte' from (irb):4 from /Users/brian/.rvm/rubies/ruby-1.9.3-p286/bin/irb:16:in `<main>' 1.9.3p286 :005 > s.ungetc "w" RuntimeError: can't modify frozen String from (irb):5:in `ungetc' from (irb):5 from /Users/brian/.rvm/rubies/ruby-1.9.3-p286/bin/irb:16:in `<main>' 1.9.3p286 :006 > s.write "d" IOError: not modifiable string from (irb):6:in `write' from (irb):6 from /Users/brian/.rvm/rubies/ruby-1.9.3-p286/bin/irb:16:in `<main>' Thanks, Brian -- http://bugs.ruby-lang.org/