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

Grape::Util::Accept::Header : empty range in char class: /^([a-z*]+)\/([a-z0-9*&\^\- #2457

Closed
dblock opened this issue Jun 22, 2024 · 2 comments · Fixed by #2458
Closed

Grape::Util::Accept::Header : empty range in char class: /^([a-z*]+)\/([a-z0-9*&\^\- #2457

dblock opened this issue Jun 22, 2024 · 2 comments · Fixed by #2458
Labels

Comments

@dblock
Copy link
Member

dblock commented Jun 22, 2024

Coming from kaminari/kaminari-grape#1, that gem throws empty range in char class.

RegexpError:
  empty range in char class: /^([a-z*]+)\/([a-z0-9*&\^\-_cannot load such file -- kaminari-grape.+]+)(?:;([a-z0-9=;]+))?$/
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/grape-2.1.0/lib/grape/util/accept/header.rb:7:in `<module:Header>'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/grape-2.1.0/lib/grape/util/accept/header.rb:6:in `<module:Accept>'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/grape-2.1.0/lib/grape/util/accept/header.rb:5:in `<module:Util>'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/grape-2.1.0/lib/grape/util/accept/header.rb:4:in `<module:Grape>'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/grape-2.1.0/lib/grape/util/accept/header.rb:3:in `<top (required)>'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/zeitwerk-2.6.16/lib/zeitwerk/kernel.rb:26:in `require'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/zeitwerk-2.6.16/lib/zeitwerk/kernel.rb:26:in `require'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/zeitwerk-2.6.16/lib/zeitwerk/cref.rb:91:in `const_get'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/zeitwerk-2.6.16/lib/zeitwerk/cref.rb:91:in `get'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/zeitwerk-2.6.16/lib/zeitwerk/loader/eager_load.rb:173:in `block in actual_eager_load_dir'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/zeitwerk-2.6.16/lib/zeitwerk/loader/helpers.rb:47:in `block in ls'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/zeitwerk-2.6.16/lib/zeitwerk/loader/helpers.rb:25:in `each'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/zeitwerk-2.6.16/lib/zeitwerk/loader/helpers.rb:25:in `ls'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/zeitwerk-2.6.16/lib/zeitwerk/loader/eager_load.rb:168:in `actual_eager_load_dir'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/zeitwerk-2.6.16/lib/zeitwerk/loader/eager_load.rb:17:in `block (2 levels) in eager_load'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/zeitwerk-2.6.16/lib/zeitwerk/loader/eager_load.rb:16:in `each'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/zeitwerk-2.6.16/lib/zeitwerk/loader/eager_load.rb:16:in `block in eager_load'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/zeitwerk-2.6.16/lib/zeitwerk/loader/eager_load.rb:10:in `synchronize'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/zeitwerk-2.6.16/lib/zeitwerk/loader/eager_load.rb:10:in `eager_load'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/grape-2.1.0/lib/grape.rb:74:in `<top (required)>'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/zeitwerk-2.6.16/lib/zeitwerk/kernel.rb:34:in `require'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/zeitwerk-2.6.16/lib/zeitwerk/kernel.rb:34:in `require'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/kaminari-grape-1.0.1/lib/kaminari/grape.rb:4:in `<top (required)>'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/zeitwerk-2.6.16/lib/zeitwerk/kernel.rb:34:in `require'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/zeitwerk-2.6.16/lib/zeitwerk/kernel.rb:34:in `require'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/bundler-2.3.26/lib/bundler.rb:186:in `require'
# ./slack-gamebot.rb:4:in `<top (required)>'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/zeitwerk-2.6.16/lib/zeitwerk/kernel.rb:34:in `require'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/zeitwerk-2.6.16/lib/zeitwerk/kernel.rb:34:in `require'
# ./spec/spec_helper.rb:11:in `<top (required)>'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/zeitwerk-2.6.16/lib/zeitwerk/kernel.rb:34:in `require'
# /Users/dblock/.rvm/gems/ruby-3.0.5/gems/zeitwerk-2.6.16/lib/zeitwerk/kernel.rb:34:in `require'
# ./spec/slack-gamebot/version_spec.rb:1:in `<top (required)>'
# ------------------
# --- Caused by: ---
# LoadError:
#   cannot load such file -- kaminari-grape
#   /Users/dblock/.rvm/gems/ruby-3.0.5/gems/zeitwerk-2.6.16/lib/zeitwerk/kernel.rb:34:in `require'

Not sure why/how it happens, but it's caused by this line which may be incorrect.

ALLOWED_CHARACTERS = %r{^([a-z*]+)/([a-z0-9*&\^\-_#{$ERROR_INFO}.+]+)(?:;([a-z0-9=;]+))?$}.freeze
@dblock dblock added the bug? label Jun 22, 2024
@dblock
Copy link
Member Author

dblock commented Jun 22, 2024

@ericproulx this was introduced in #2363 I believe

@ericproulx
Copy link
Contributor

I'll remove the class. Its not used anymore since #2389

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants