[MacRuby-devel] [MacRuby] #303: Method :open from 'open-uri' isn't working yet (multibyte problem) (was: Method :open from 'open-uri' gives 'stack level too deep')
MacRuby
ruby-noreply at macosforge.org
Fri Aug 7 10:32:11 PDT 2009
#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/>
More information about the MacRuby-devel
mailing list