skryukov / skooma

Skooma is a Ruby library for validating API implementations against OpenAPI documents.
MIT License
134 stars 5 forks source link

Zeitwerk::NameError when enabling config eager_load in Rails #3

Closed mateusodd closed 9 months ago

mateusodd commented 9 months ago

When attempting to enable config.eager_load in the Rails test environment, I encounter an error related to Zeitwerk. The specific error points to the absence of the expected constant definition in a specific file of the 'json_skooma' gem.

An error occurred while loading rails_helper.
Failure/Error: require File.expand_path("../config/environment", __dir__)

Zeitwerk::NameError:
  expected file /usr/local/rvm/gems/default/gems/json_skooma-0.1.0/lib/json_skooma/version.rb to define constant JSONSkooma::Version, but didn't

        raise Zeitwerk::NameError.new(msg, cref.last)
        ^^^^^
# /usr/local/rvm/gems/default/gems/zeitwerk-2.6.12/lib/zeitwerk/loader/callbacks.rb:33:in `on_file_autoloaded'
# /usr/local/rvm/gems/default/gems/zeitwerk-2.6.12/lib/zeitwerk/kernel.rb:31:in `require'
# /usr/local/rvm/gems/default/gems/zeitwerk-2.6.12/lib/zeitwerk/loader/helpers.rb:135:in `const_get'
# /usr/local/rvm/gems/default/gems/zeitwerk-2.6.12/lib/zeitwerk/loader/helpers.rb:135:in `cget'
# /usr/local/rvm/gems/default/gems/zeitwerk-2.6.12/lib/zeitwerk/loader/eager_load.rb:175:in `block in actual_eager_load_dir'
# /usr/local/rvm/gems/default/gems/zeitwerk-2.6.12/lib/zeitwerk/loader/helpers.rb:40:in `block in ls'
# /usr/local/rvm/gems/default/gems/zeitwerk-2.6.12/lib/zeitwerk/loader/helpers.rb:25:in `each'
# /usr/local/rvm/gems/default/gems/zeitwerk-2.6.12/lib/zeitwerk/loader/helpers.rb:25:in `ls'
# /usr/local/rvm/gems/default/gems/zeitwerk-2.6.12/lib/zeitwerk/loader/eager_load.rb:170:in `actual_eager_load_dir'
# /usr/local/rvm/gems/default/gems/zeitwerk-2.6.12/lib/zeitwerk/loader/eager_load.rb:17:in `block (2 levels) in eager_load'
# /usr/local/rvm/gems/default/gems/zeitwerk-2.6.12/lib/zeitwerk/loader/eager_load.rb:16:in `each'
# /usr/local/rvm/gems/default/gems/zeitwerk-2.6.12/lib/zeitwerk/loader/eager_load.rb:16:in `block in eager_load'
# /usr/local/rvm/gems/default/gems/zeitwerk-2.6.12/lib/zeitwerk/loader/eager_load.rb:10:in `synchronize'
# /usr/local/rvm/gems/default/gems/zeitwerk-2.6.12/lib/zeitwerk/loader/eager_load.rb:10:in `eager_load'
# /usr/local/rvm/gems/default/gems/zeitwerk-2.6.12/lib/zeitwerk/loader.rb:379:in `block in eager_load_all'
# /usr/local/rvm/gems/default/gems/zeitwerk-2.6.12/lib/zeitwerk/loader.rb:377:in `each'
# /usr/local/rvm/gems/default/gems/zeitwerk-2.6.12/lib/zeitwerk/loader.rb:377:in `eager_load_all'
# /usr/local/rvm/gems/default/gems/railties-7.0.8/lib/rails/application/finisher.rb:74:in `block in <module:Finisher>'
# /usr/local/rvm/gems/default/gems/railties-7.0.8/lib/rails/initializable.rb:32:in `instance_exec'
# /usr/local/rvm/gems/default/gems/railties-7.0.8/lib/rails/initializable.rb:32:in `run'
# /usr/local/rvm/gems/default/gems/railties-7.0.8/lib/rails/initializable.rb:61:in `block in run_initializers'
# /usr/local/rvm/gems/default/gems/railties-7.0.8/lib/rails/initializable.rb:60:in `run_initializers'
# /usr/local/rvm/gems/default/gems/railties-7.0.8/lib/rails/application.rb:372:in `initialize!'
# ./config/environment.rb:5:in `<top (required)>'
# ./spec/rails_helper.rb:14:in `<top (required)>'
No examples found.

Environment Configuration

skryukov commented 9 months ago

Hey, @mateusodd

Thanks for the report, I just released Skooma 0.2.0 which should fix that issue!