Add caching support for external data files #94
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.
Currently, Sushi models are only cached when the
$rows
property is used. This is because the alternative is usually to return data from an API usinggetRows()
, and caching would mean this data could be out of date.This PR introduces support to override that behaviour.
First of all, instead of only checking the model file for its last updated timestamp, return a different file path from
getDataPath()
. I frequently like to store Sushi data in config / CSV files instead and return fromgetRows()
, and this feature allows the cache to know when it is out of date.To allow these external sources to be cached, I've also introduced the
isCached()
method. This allows you to enable the cache at will when usinggetRows()
, while preserving original behaviour.Thanks!