ruby-gettext / gettext

Gettext gem is a pure Ruby Localization(L10n) library and tool which is modeled after the GNU gettext package.
https://ruby-gettext.github.io/
68 stars 28 forks source link

LoadError with ruby 3.1.0 #92

Closed Na0ki closed 2 years ago

Na0ki commented 2 years ago

mathn LoadError occures when calling GetText::Tools::MsgFmt.run with ruby 3.1.0.

/home/ahiru/work/ruby/gettext-ruby3.1.0/vendor/bundle/ruby/3.1.0/gems/gettext-3.4.1/lib/gettext/mo.rb:178:in `require': cannot load such file -- mathn (LoadError)
        from /home/ahiru/work/ruby/gettext-ruby3.1.0/vendor/bundle/ruby/3.1.0/gems/gettext-3.4.1/lib/gettext/mo.rb:178:in `next_prime'
        from /home/ahiru/work/ruby/gettext-ruby3.1.0/vendor/bundle/ruby/3.1.0/gems/gettext-3.4.1/lib/gettext/mo.rb:217:in `save_to_stream'
        from /home/ahiru/work/ruby/gettext-ruby3.1.0/vendor/bundle/ruby/3.1.0/gems/gettext-3.4.1/lib/gettext/mo.rb:292:in `block in save_to_file'
        from /home/ahiru/work/ruby/gettext-ruby3.1.0/vendor/bundle/ruby/3.1.0/gems/gettext-3.4.1/lib/gettext/mo.rb:292:in `open'
        from /home/ahiru/work/ruby/gettext-ruby3.1.0/vendor/bundle/ruby/3.1.0/gems/gettext-3.4.1/lib/gettext/mo.rb:292:in `save_to_file'
        from /home/ahiru/work/ruby/gettext-ruby3.1.0/vendor/bundle/ruby/3.1.0/gems/gettext-3.4.1/lib/gettext/tools/msgfmt.rb:58:in `run'
        from /home/ahiru/work/ruby/gettext-ruby3.1.0/vendor/bundle/ruby/3.1.0/gems/gettext-3.4.1/lib/gettext/tools/msgfmt.rb:38:in `run'
        from app.rb:3:in `<main>'

It looks like because ruby 3.1.0 extracted prime from default gem to bundled gem. that causes LoadError when requiring prime gem, then fallback to rescue block and causing mathn LoadError.

Tested gettext 3.4.1 with ruby 3.1.0, 3.0.3. 3.0.3 works fine without LoadError.

kou commented 2 years ago

Good catch!

Na0ki commented 2 years ago

Tried 3.4.2 and confirmed that it works fine. Thank you very much for your quick action!