rabbit-shocker/rabbit

Works OK - 2.7.4, Not working - Ruby 3.0.0+

Closed this issue · 2 comments

I opened #142 and mentioned that Rabbit is not working for me > Ruby 3.0.0

My Ruby versions are all installed via RVM.

It works great at 2.7.4 and below. The error messages that are printed are below. The window opens and it displays as a black pane only, there is no change if I right click and go to fullscreen. The context menu does work. It is responsive to input and quits successfully on ESC. There is no hard crash, but this noise is emitted on the terminal on start also.

$ be rake
[ERROR]
TypeError: no implicit conversion of URI::HTTPS into String
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/parser/ext/image.rb:112:in `open'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/parser/ext/image.rb:112:in `setup_image_file'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/parser/ext/image.rb:106:in `other_uri_filename'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/parser/ext/image.rb:80:in `uri_to_image_filename'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/parser/ext/image.rb:69:in `uri_string_to_image_filename'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/parser/ext/image.rb:31:in `make_image'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/parser/markdown/converter.rb:366:in `convert_img'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/parser/markdown/converter.rb:46:in `convert'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/parser/markdown/converter.rb:53:in `block in convert_container'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/parser/markdown/converter.rb:52:in `each'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/parser/markdown/converter.rb:52:in `convert_container'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/parser/markdown/converter.rb:166:in `convert_p'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/parser/markdown/converter.rb:46:in `convert'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/parser/markdown/converter.rb:53:in `block in convert_container'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/parser/markdown/converter.rb:52:in `each'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/parser/markdown/converter.rb:52:in `convert_container'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/parser/markdown/converter.rb:67:in `convert_root'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/parser/markdown/converter.rb:46:in `convert'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/parser/markdown.rb:124:in `parse'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/parser.rb:38:in `parse'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/canvas.rb:356:in `block in parse'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/canvas.rb:783:in `keep_index'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/canvas.rb:353:in `parse'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/frame.rb:55:in `parse'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/command/rabbit.rb:703:in `parse'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/command/rabbit.rb:865:in `do_display'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/command/rabbit.rb:61:in `block (2 levels) in run'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/command/rabbit.rb:59:in `catch'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/command/rabbit.rb:59:in `block in run'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/gobject-introspection-3.4.9/lib/gobject-introspection/loader.rb:616:in `invoke'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/gobject-introspection-3.4.9/lib/gobject-introspection/loader.rb:616:in `invoke'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/gobject-introspection-3.4.9/lib/gobject-introspection/loader.rb:529:in `block in define_method'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/command/rabbit.rb:54:in `block in run'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/gobject-introspection-3.4.9/lib/gobject-introspection/loader.rb:616:in `invoke'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/gobject-introspection-3.4.9/lib/gobject-introspection/loader.rb:616:in `invoke'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/gobject-introspection-3.4.9/lib/gobject-introspection/loader.rb:529:in `block in define_method'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/command/rabbit.rb:67:in `run'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/command/rabbit.rb:29:in `run'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/task/slide.rb:238:in `rabbit'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rabbit-3.0.0/lib/rabbit/task/slide.rb:100:in `block in define_run_task'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rake-13.0.6/lib/rake/task.rb:281:in `block in execute'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rake-13.0.6/lib/rake/task.rb:281:in `each'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rake-13.0.6/lib/rake/task.rb:281:in `execute'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rake-13.0.6/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rake-13.0.6/lib/rake/task.rb:199:in `synchronize'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rake-13.0.6/lib/rake/task.rb:199:in `invoke_with_call_chain'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rake-13.0.6/lib/rake/task.rb:243:in `block in invoke_prerequisites'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rake-13.0.6/lib/rake/task.rb:241:in `each'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rake-13.0.6/lib/rake/task.rb:241:in `invoke_prerequisites'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rake-13.0.6/lib/rake/task.rb:218:in `block in invoke_with_call_chain'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rake-13.0.6/lib/rake/task.rb:199:in `synchronize'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rake-13.0.6/lib/rake/task.rb:199:in `invoke_with_call_chain'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rake-13.0.6/lib/rake/task.rb:188:in `invoke'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rake-13.0.6/lib/rake/application.rb:160:in `invoke_task'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rake-13.0.6/lib/rake/application.rb:116:in `block (2 levels) in top_level'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rake-13.0.6/lib/rake/application.rb:116:in `each'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rake-13.0.6/lib/rake/application.rb:116:in `block in top_level'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rake-13.0.6/lib/rake/application.rb:125:in `run_with_threads'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rake-13.0.6/lib/rake/application.rb:110:in `top_level'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rake-13.0.6/lib/rake/application.rb:83:in `block in run'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rake-13.0.6/lib/rake/application.rb:186:in `standard_exception_handling'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rake-13.0.6/lib/rake/application.rb:80:in `run'
/home/kingdon/.rvm/gems/ruby-3.0.2/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/home/kingdon/.rvm/gems/ruby-3.0.2/bin/rake:23:in `load'
/home/kingdon/.rvm/gems/ruby-3.0.2/bin/rake:23:in `<main>'
/home/kingdon/.rvm/gems/ruby-3.0.2/bin/ruby_executable_hooks:22:in `eval'
/home/kingdon/.rvm/gems/ruby-3.0.2/bin/ruby_executable_hooks:22:in `<main>'

My workstation is a qemu-virgl VM but I have not had any problem reproducing this on any Ubuntu variant, on any hardware. I can also try Debian Linux later on. It is the LTS distro:

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.3 LTS"
kingdon@qemu-kingdon:~/Desktop/powerofthree$ uname -a
Linux qemu-kingdon 5.11.0-36-generic #40~20.04.1-Ubuntu SMP Sat Sep 18 02:14:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Screen Shot 2021-09-24 at 9 13 56 PM

I may be slow to correspond about this because everything is working on 2.7.4 and there is no issue which requires me to upgrade, but I am following up because you mentioned that it works for you. Now I have to go work on my slides 🤣😸🎂

kou commented

Thanks.
It seems that #133 solved this.

Could you try Rabbit 3.0.1?

It does solve this whole issue! Thank you, and sorry for the noise. I am working now, with Ruby 3.0.2 and Rabbit 3.0.1

The terminal noise is also gone.

Screen Shot 2021-09-24 at 11 25 34 PM

I think that 3.0.1 requires ruby 3, perhaps, and I forgot to run bundle update after switching to Ruby 3 👍

Have a great afternoon! (Closing)