Add method to VersioningService to detect support #6239
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.
Right now
Hyrax::VersioningService
does some silent coersion of versioning information in the case that versioning is not supported by the storage adapter. But, it might be good to actively provide a different UI to users in some cases depending on whether multiple versions of a file can actually be stored.This commit adds a
supports_multiple_versions?
method toHyrax::VersioningService
which returnstrue
iff theresource
is non‐nil and not aFileMetadata
object, or if it is aFileMetadata
object and the storage adapter supports versioning.This check requires having both a resource and a storage adapter in‐hand. My guess is that this is reasonable, but if we need to detect versioning support more generally (without a specific resource), a different solution may be desirable (altho
Hyrax.storage_adapter.try?(:"supports?", :versions)
works in this case.)Related to #6211 in the sense of being a prerequisite for disabling this functionality in the UI in cases where it will definitely not work.