Added
- Add the
metadata_columnoption to record what was stored, so that which versions were created no longer has to be decided again on retrieval (@mshibuya ccac080, #2148, #1926) - Add
#exists?to ask the storage whether the file is actually there (@mshibuya f635d88, #1926) - Make the downloader accept URLs as pasted by end users, stripping surrounding whitespace and embedded newlines and supplying a missing scheme (@mshibuya c2a182e)
- Support test matchers with only Vips (@gaffneyc #2767)
Changed
- [BREAKING CHANGE] Stop asking the storage whether the file is there in
#blank?and#present?, which now only tell whether a file is assigned (@mshibuya f635d88, #2802, #2776, #2784) - [BREAKING CHANGE] Stop percent-decoding the URL on download, keeping
%2Fand/,%2Band+distinct (@mshibuya c2a182e, #858, #2505, #2590, #2800, #2808) - [BREAKING CHANGE] Decode the filename taken from a URL with URI semantics instead of form encoding, so a literal
+no longer becomes a space (@mshibuya c2a182e) - [BREAKING CHANGE] Refuse
process convert: formatwith:if/:unless, as the resulting file extension cannot be worked out again on retrieval (@mshibuya 532da35, #2723) - Defer uploading a cached file to the remote cache storage until it's needed beyond the current request (@mshibuya 6f5d6b8, #2605)
- Defer evaluating the
:if/:unlesscondition of versions until a version is accessed (@mshibuya 556a370, #2461, #2132, #2669) - Raise
ProcessingErrorwhen all frames are filtered out in#manipulate!(@y-yagi #2817)
Removed
Fixed
- Fix a file being stored under a name which doesn't follow from the identifier, leaving it where a later request could never find it. Storing is now refused instead (@mshibuya 532da35)
- Fix a race condition in
Builder#build, where a thread could observe a version class before its options were set (@fwitzke #2799) - Fix the remote storage being asked again on every access when the file is not there (@mshibuya f635d88, #2698, #2793)
- Fix
NoMethodErroron#sizewhen the remote storage reports no content length (@mshibuya f635d88, #2787) - Fix
#process_uribeing called twice on every download attempt (@mshibuya c2a182e)