Save permissions structure to Rails.cache if a cache key is passed #21
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.
With a large roles.yml, even if you are using a
UserPermissionCachingDecorator
to intercept db access (or using #20), the calls topermit
can be pretty slow.In an app with ~200 entries in the roles.yml it was taking ~130ms to process all the permit calls.
This change allows a
cache_key
parameter to be passed in, and if it is, the structure that is passed to CanCanCan is cached by rails, saving most of the processing time.Note this should not be a replacement for #20 - which is caching at a different level and should also be implemented.