Move convenience class into new file #2307
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR moves the
Grape::Types::InvalidValue
class definition into a separate file so that it can be lazy loaded in projects that use zeitwerk file structure conventions.In environments that do not eager load, referencing the
Grape::Validations::Types::InvalidValue
class beforeGrape::Types::InvalidValue
causes a load error due to the fact that both classes were defined in the same file.Testing?! Yes! Kind of...
I haven't come up with a good way to write a new rspec example for this change, but one test did fail on my branch before I updated
lib/grape.rb
. This failure occurred incoerce_spec.rb:271
becauseGrape::Types::InvalidValue
was no longer being autoloaded. (It raised the sameuninitialized constant Grape::Types
exception that you'll see in my example below.)For now, in lieu of tests, I created a simple gist that demonstrates the issue I'm seeing in a private Rails application. Here are the results on both my branch and master: