inukshuk / bibtex-ruby

A BibTeX library, parser, and converter for Ruby.
http://inukshuk.github.com/bibtex-ruby
GNU General Public License v3.0
155 stars 35 forks source link

bibtex-ruby crashes with NoMethodError inside Names.convert! in Ruby 3.3 #164

Closed amyspark closed 7 months ago

amyspark commented 7 months ago

Hi,

I just ran into the following stacktrace when building my Jekyll blog with Ruby 3.3.0. Going back to 3.2.2 is sufficient to get a working environment again.

/Users/amalia/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/bibtex-ruby-6.0.0/lib/bibtex/names.rb:104:in `block (3 levels) in <class:Names>': undefined method `convert!' for an instance of String (NoMethodError)

        tokens.each { |t| t.send(method_id, *arguments) }
                           ^^^^^
    from /Users/amalia/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/bibtex-ruby-6.0.0/lib/bibtex/names.rb:104:in `each'
    from /Users/amalia/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/bibtex-ruby-6.0.0/lib/bibtex/names.rb:104:in `block (2 levels) in <class:Names>'
    from /Users/amalia/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/bibtex-ruby-6.0.0/lib/bibtex/entry.rb:581:in `block in convert!'
    from /Users/amalia/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/bibtex-ruby-6.0.0/lib/bibtex/entry.rb:580:in `each_pair'
    from /Users/amalia/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/bibtex-ruby-6.0.0/lib/bibtex/entry.rb:580:in `convert!'
    from /Users/amalia/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/bibtex-ruby-6.0.0/lib/bibtex/entry.rb:573:in `convert'
    from /Users/amalia/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/jekyll-scholar-7.1.3/lib/jekyll/scholar/utilities.rb:734:in `block in cite'
    from /Users/amalia/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/jekyll-scholar-7.1.3/lib/jekyll/scholar/utilities.rb:731:in `map'
    from /Users/amalia/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/jekyll-scholar-7.1.3/lib/jekyll/scholar/utilities.rb:731:in `cite'
    from /Users/amalia/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/jekyll-scholar-7.1.3/lib/jekyll/scholar/tags/cite.rb:20:in `render'
inukshuk commented 7 months ago

Thanks for reporting. Please update the bibtex-ruby Gem to version 6.1.0 if you're using Ruby 3.3.

raphaelfournier commented 7 months ago

To be complete, just add gem "bibtex-ruby", "~> 6.1.0" at the end of your Gemfile.

Then, run bundle install, before retrying the bundle exec jekyll serve.