Remove namespace_stackable and namespace_inheritable from public API #2607
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.
Remove namespace_stackable and namespace_inheritable from public API
Summary
This PR refactors the internal implementation of Grape's namespace configuration system by removing public access to
namespace_stackable
andnamespace_inheritable
methods while maintaining backward compatibility for public-facing APIs.Changes Made
Core Refactoring
cascade
method implementation to useinheritable_setting
directlyeql?
,==
,hash
) for better object comparisonFiles Modified
lib/grape/api/instance.rb
- Refactored cascade method and removed public access methodslib/grape/namespace.rb
- Added equality methods for proper namespace comparisonlib/grape/dsl/*.rb
- Updated DSL modules to use internal configurationlib/grape/endpoint.rb
- Refactored to use internal configuration accesslib/grape/middleware/auth/dsl.rb
- Updated authentication DSLlib/grape/validations/*.rb
- Updated validation modulesTest Updates
Benefits
Breaking Changes
None - This is an internal refactoring that maintains backward compatibility for all public APIs.
Testing
Migration Guide
No migration required - this change is transparent to end users of the Grape gem.
Related Issues
This refactoring addresses internal code organization and API cleanliness without affecting external functionality.