Ruby Glimmer、Glimmer サンプルを実行するとスタックトレースが生成される
概要
私はここで詳しく説明されている RubyConf ワークショップのプレゼンテーションに従っています: https://github.com/AndyObtiva/how-to-build-desktop-applications-in-ruby ですが、すでに 2 番目のコマンドで行き詰まっています。 gem install glimmer-dsl-libui を発行すると、正常に実行され glimmer (2.7.6) と glimmer-dsl-libui (0.11.8) がインストールされましたが、コマンド glimmer の例では次の例外が発生します。
Traceback (most recent call last):
27: from /Users/marion/.rvm/gems/ruby-2.7.6/bin/glimmer:23:in `<main>'
26: from /Users/marion/.rvm/gems/ruby-2.7.6/bin/glimmer:23:in `load'
25: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/bin/glimmer:24:in `<top (required)>'
24: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/bin/glimmer:24:in `require_relative'
23: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer-dsl-libui.rb:39:in `<top (required)>'
22: from /Users/marion/.rvm/rubies/ruby-2.7.6/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
21: from /Users/marion/.rvm/rubies/ruby-2.7.6/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
20: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/dsl/libui/dsl.rb:23:in `<top (required)>'
19: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/dsl/libui/dsl.rb:23:in `each'
18: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/dsl/libui/dsl.rb:23:in `block in <top (required)>'
17: from /Users/marion/.rvm/rubies/ruby-2.7.6/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
16: from /Users/marion/.rvm/rubies/ruby-2.7.6/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
15: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/dsl/libui/tab_item_expression.rb:23:in `<top (required)>'
14: from /Users/marion/.rvm/rubies/ruby-2.7.6/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
13: from /Users/marion/.rvm/rubies/ruby-2.7.6/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
12: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/libui/control_proxy/tab_item_proxy.rb:22:in `<top (required)>'
11: from /Users/marion/.rvm/rubies/ruby-2.7.6/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
10: from /Users/marion/.rvm/rubies/ruby-2.7.6/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
9: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/libui/control_proxy.rb:425:in `<top (required)>'
8: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/libui/control_proxy.rb:425:in `each'
7: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/libui/control_proxy.rb:425:in `block in <top (required)>'
6: from /Users/marion/.rvm/rubies/ruby-2.7.6/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
5: from /Users/marion/.rvm/rubies/ruby-2.7.6/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
4: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/libui/control_proxy/text_proxy.rb:27:in `<top (required)>'
3: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/libui/control_proxy/text_proxy.rb:28:in `<module:Glimmer>'
2: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/libui/control_proxy/text_proxy.rb:29:in `<module:LibUI>'
1: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/libui/control_proxy/text_proxy.rb:33:in `<class:ControlProxy>'
/Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/libui/control_proxy/text_proxy.rb:35:in `<class:TextProxy>': uninitialized constant Glimmer::LibUI::ControlProxy::TextProxy::PerfectShaped (NameError)
何が間違っていたのでしょうか?
解決策
Glimmer の説明の状態に注意してください
Ruby 2.6.1 で問題が発生しましたが、Ruby 3.3.0 では次のようにするだけで正常に動作します。
gem install glimmer-dsl-libui
したがって、Ruby 3.x を試す必要があるかもしれません。