#303: Method :open from 'open-uri' isn't working yet (multibyte problem) ----------------------------+----------------------------------------------- Reporter: wijet@… | Owner: lsansonetti@… Type: defect | Status: new Priority: major | Milestone: MacRuby 0.5 Component: MacRuby | Keywords: open-uri stdlib ----------------------------+----------------------------------------------- Changes (by mattaimonetti@…): * milestone: MacRuby 0.4 => MacRuby 0.5 Old description:
There seems to be a problem with method 'open' in open-uri lib. Following command: {{{ macruby -r 'open-uri' -e 'open "http://ruby-lang.org"' }}}
produces
{{{ /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in `respond_to?': stack level too deep (SystemStackError) from /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in `respond_to?' from /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in `respond_to?' from /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in `respond_to?' from /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in `respond_to?' from /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in `respond_to?' from /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in `respond_to?' from /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in `respond_to?' from /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in `respond_to?' ... 2922 levels... from /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1 /open-uri.rb:146:in `open_uri' from /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1 /open-uri.rb:669:in `open' from /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1 /open-uri.rb:33:in `open' from -e:1:in `<main>'
}}}
New description: MacRuby 0.5 {{{ $ macruby -r 'open-uri' -e 'open "http://ruby-lang.org"' too short escaped multibyte character: /(?:;(?-mix:[\r\n\t ]+)?(?-mix:[^\x00- ()<>@,;:\\"/\[\]?={}\x7f]+)(?-mix:[\r\n\t ]+)?=(?-mix:[\r\n\t ]+)?(?:(?-mix:[^\x00- ()<>@,;:\\"/\[\]?={}\x7f]+)|(?-mix:"(?:[\r\n\t !#-\[\]-~\x80-\xff]|\\[\x00-\x7f])*"))(?-mix:[\r\n\t ]+)?)*/d{2,}|-)-\d{2}-\d{2}| ([-+]?\d{2,})?-\d{3}| (\d{2}|\d{4})?-w\d{2}-\d| -w-\d) (t \d{2}:\d{2}(:\d{2}([,.]\d+)?)? (z|[-+]\d{2}(:?\d{2})?)?)?\s*\z (RegexpError) }}} MacRuby 0.4 There seems to be a problem with method 'open' in open-uri lib. Following command: {{{ macruby -r 'open-uri' -e 'open "http://ruby-lang.org"' }}} produces {{{ /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in `respond_to?': stack level too deep (SystemStackError) from /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in `respond_to?' from /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in `respond_to?' from /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in `respond_to?' from /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in `respond_to?' from /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in `respond_to?' from /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in `respond_to?' from /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in `respond_to?' from /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in `respond_to?' ... 2922 levels... from /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1 /open-uri.rb:146:in `open_uri' from /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1 /open-uri.rb:669:in `open' from /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1 /open-uri.rb:33:in `open' from -e:1:in `<main>' }}} -- Comment: We are currently working on the std lib for MacRuby 0.5 and are getting pretty close to get open uri working (even though nobody worked on it really). {{{ $ macruby -r 'open-uri' -e 'open "http://ruby-lang.org"' too short escaped multibyte character: /(?:;(?-mix:[\r\n\t ]+)?(?-mix:[^\x00- ()<>@,;:\\"/\[\]?={}\x7f]+)(?-mix:[\r\n\t ]+)?=(?-mix:[\r\n\t ]+)?(?:(?-mix:[^\x00- ()<>@,;:\\"/\[\]?={}\x7f]+)|(?-mix:"(?:[\r\n\t !#-\[\]-~\x80-\xff]|\\[\x00-\x7f])*"))(?-mix:[\r\n\t ]+)?)*/d{2,}|-)-\d{2}-\d{2}| ([-+]?\d{2,})?-\d{3}| (\d{2}|\d{4})?-w\d{2}-\d| -w-\d) (t \d{2}:\d{2}(:\d{2}([,.]\d+)?)? (z|[-+]\d{2}(:?\d{2})?)?)?\s*\z (RegexpError) }}} In the mean time, you might want to use a Cocoa method like NSURLRequest etc.. or check my http wrapper: http://github.com/mattetti/macruby- httpwrapper/tree/master -- Ticket URL: <http://www.macruby.org/trac/ticket/303#comment:1> MacRuby <http://macruby.org/>