Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TypeError: no implicit conversion of Array into String when using --additional-file-patterns #802

Open
jimmynguyc opened this issue May 3, 2020 · 1 comment · May be fixed by #943
Open

Comments

@jimmynguyc
Copy link

Commands

$ annotate --additional-file-patterns whatever-you-put-here
TypeError: no implicit conversion of Array into String
  /Users/jimmy/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/annotate-3.1.1/lib/annotate/parser.rb:59:in `[]='
  /Users/jimmy/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/annotate-3.1.1/lib/annotate/parser.rb:59:in `block in add_options_to_parser'
  /Users/jimmy/.rbenv/versions/2.6.6/lib/ruby/2.6.0/optparse.rb:1582:in `block in parse_in_order'
  /Users/jimmy/.rbenv/versions/2.6.6/lib/ruby/2.6.0/optparse.rb:1568:in `catch'
  /Users/jimmy/.rbenv/versions/2.6.6/lib/ruby/2.6.0/optparse.rb:1568:in `parse_in_order'
  /Users/jimmy/.rbenv/versions/2.6.6/lib/ruby/2.6.0/optparse.rb:1562:in `order!'
  /Users/jimmy/.rbenv/versions/2.6.6/lib/ruby/2.6.0/optparse.rb:1656:in `permute!'
  /Users/jimmy/.rbenv/versions/2.6.6/lib/ruby/2.6.0/optparse.rb:1678:in `parse!'
  /Users/jimmy/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/annotate-3.1.1/lib/annotate/parser.rb:30:in `parse'
  /Users/jimmy/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/annotate-3.1.1/lib/annotate/parser.rb:7:in `parse'
  /Users/jimmy/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/annotate-3.1.1/bin/annotate:22:in `<top (required)>'
  /Users/jimmy/.rbenv/versions/2.6.6/bin/annotate:23:in `load'
  /Users/jimmy/.rbenv/versions/2.6.6/bin/annotate:23:in `<top (required)>'

option_parser.on('--additional-file-patterns path1,path2,path3',
Array,
"Additional file paths or globs to annotate, separated by commas (e.g. `/foo/bar/%model_name%/*.rb,/baz/%model_name%.rb`)") do |additional_file_patterns|
ENV['additional_file_patterns'] = additional_file_patterns
end

I believe saving an array into the ENV variable on line 59 is causing the issue.

Version

  • annotate version
    3.1.1
  • rails version
    6.0.2.2
  • ruby version
    ruby 2.6.6p146 (2020-03-31 revision 67876) [x86_64-darwin19]
@twwright
Copy link

My immediate suspicion is that line 59 should read env['additional_file_patterns'] = additional_file_patterns not ENV[...]. This is how all the other option_parser.on ... end blocks are now written in the parser.rb file before the env hash gets passed to the commit method. Looks like this might be a simple fix?

It looks like this may have gotten left out of this refactor of the parser? @drwl might be able to diagnose this quickly if that's the case!

@j-mutter j-mutter linked a pull request Mar 22, 2022 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants