shrine 2.19.4 → 3.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +485 -43
- data/LICENSE.txt +1 -1
- data/README.md +81 -977
- data/doc/advantages.md +231 -204
- data/doc/attacher.md +304 -153
- data/doc/carrierwave.md +297 -226
- data/doc/changing_derivatives.md +308 -0
- data/doc/changing_location.md +102 -21
- data/doc/changing_storage.md +110 -0
- data/doc/creating_persistence_plugins.md +132 -0
- data/doc/creating_plugins.md +43 -23
- data/doc/creating_storages.md +19 -5
- data/doc/design.md +147 -97
- data/doc/direct_s3.md +38 -28
- data/doc/external/articles.md +63 -0
- data/doc/external/extensions.md +53 -0
- data/doc/external/misc.md +32 -0
- data/doc/getting_started.md +1115 -0
- data/doc/metadata.md +190 -109
- data/doc/multiple_files.md +62 -34
- data/doc/paperclip.md +384 -262
- data/doc/plugins/activerecord.md +177 -46
- data/doc/plugins/add_metadata.md +139 -38
- data/doc/plugins/atomic_helpers.md +217 -0
- data/doc/plugins/backgrounding.md +156 -98
- data/doc/plugins/cached_attachment_data.md +7 -5
- data/doc/plugins/column.md +121 -0
- data/doc/plugins/data_uri.md +23 -22
- data/doc/plugins/default_storage.md +36 -10
- data/doc/plugins/default_url.md +30 -13
- data/doc/plugins/delete_raw.md +4 -2
- data/doc/plugins/derivation_endpoint.md +162 -101
- data/doc/plugins/derivatives.md +829 -0
- data/doc/plugins/determine_mime_type.md +4 -2
- data/doc/plugins/download_endpoint.md +64 -8
- data/doc/plugins/dynamic_storage.md +5 -3
- data/doc/plugins/entity.md +263 -0
- data/doc/plugins/form_assign.md +55 -0
- data/doc/plugins/included.md +31 -8
- data/doc/plugins/infer_extension.md +21 -10
- data/doc/plugins/instrumentation.md +38 -16
- data/doc/plugins/keep_files.md +14 -17
- data/doc/plugins/metadata_attributes.md +42 -13
- data/doc/plugins/mirroring.md +118 -0
- data/doc/plugins/model.md +210 -0
- data/doc/plugins/module_include.md +4 -2
- data/doc/plugins/multi_cache.md +24 -0
- data/doc/plugins/persistence.md +101 -0
- data/doc/plugins/presign_endpoint.md +9 -4
- data/doc/plugins/pretty_location.md +16 -3
- data/doc/plugins/processing.md +4 -2
- data/doc/plugins/rack_file.md +8 -2
- data/doc/plugins/rack_response.md +6 -2
- data/doc/plugins/recache.md +4 -2
- data/doc/plugins/refresh_metadata.md +49 -9
- data/doc/plugins/remote_url.md +84 -47
- data/doc/plugins/remove_attachment.md +27 -6
- data/doc/plugins/remove_invalid.md +21 -6
- data/doc/plugins/restore_cached_data.md +11 -3
- data/doc/plugins/sequel.md +159 -35
- data/doc/plugins/signature.md +16 -5
- data/doc/plugins/store_dimensions.md +14 -2
- data/doc/plugins/tempfile.md +4 -2
- data/doc/plugins/type_predicates.md +96 -0
- data/doc/plugins/upload_endpoint.md +13 -13
- data/doc/plugins/upload_options.md +6 -4
- data/doc/plugins/{default_url_options.md → url_options.md} +9 -7
- data/doc/plugins/validation.md +97 -0
- data/doc/plugins/validation_helpers.md +16 -13
- data/doc/plugins/versions.md +15 -19
- data/doc/processing.md +438 -221
- data/doc/refile.md +185 -167
- data/doc/release_notes/1.0.0.md +4 -0
- data/doc/release_notes/1.1.0.md +6 -2
- data/doc/release_notes/1.2.0.md +4 -0
- data/doc/release_notes/1.3.0.md +4 -0
- data/doc/release_notes/1.4.0.md +4 -0
- data/doc/release_notes/1.4.1.md +4 -0
- data/doc/release_notes/1.4.2.md +4 -0
- data/doc/release_notes/2.0.0.md +4 -0
- data/doc/release_notes/2.0.1.md +4 -0
- data/doc/release_notes/2.1.0.md +4 -0
- data/doc/release_notes/2.1.1.md +4 -0
- data/doc/release_notes/2.10.0.md +4 -0
- data/doc/release_notes/2.10.1.md +4 -0
- data/doc/release_notes/2.11.0.md +4 -0
- data/doc/release_notes/2.12.0.md +4 -0
- data/doc/release_notes/2.13.0.md +4 -0
- data/doc/release_notes/2.14.0.md +5 -1
- data/doc/release_notes/2.15.0.md +11 -7
- data/doc/release_notes/2.16.0.md +4 -0
- data/doc/release_notes/2.17.0.md +4 -0
- data/doc/release_notes/2.18.0.md +4 -0
- data/doc/release_notes/2.19.0.md +6 -3
- data/doc/release_notes/2.2.0.md +4 -0
- data/doc/release_notes/2.3.0.md +4 -0
- data/doc/release_notes/2.3.1.md +4 -0
- data/doc/release_notes/2.4.0.md +4 -0
- data/doc/release_notes/2.4.1.md +4 -0
- data/doc/release_notes/2.5.0.md +4 -0
- data/doc/release_notes/2.6.0.md +4 -0
- data/doc/release_notes/2.6.1.md +4 -0
- data/doc/release_notes/2.7.0.md +4 -0
- data/doc/release_notes/2.8.0.md +4 -0
- data/doc/release_notes/2.9.0.md +4 -0
- data/doc/release_notes/3.0.0.md +981 -0
- data/doc/release_notes/3.0.1.md +22 -0
- data/doc/release_notes/3.1.0.md +73 -0
- data/doc/release_notes/3.2.0.md +96 -0
- data/doc/release_notes/3.2.1.md +31 -0
- data/doc/release_notes/3.2.2.md +14 -0
- data/doc/release_notes/3.3.0.md +105 -0
- data/doc/release_notes/3.4.0.md +35 -0
- data/doc/retrieving_uploads.md +4 -1
- data/doc/securing_uploads.md +60 -37
- data/doc/storage/file_system.md +20 -3
- data/doc/storage/memory.md +19 -0
- data/doc/storage/s3.md +117 -83
- data/doc/testing.md +124 -144
- data/doc/upgrading_to_3.md +710 -0
- data/doc/validation.md +54 -90
- data/lib/shrine/attacher.rb +287 -171
- data/lib/shrine/attachment.rb +13 -46
- data/lib/shrine/plugins/_persistence.rb +93 -0
- data/lib/shrine/plugins/activerecord.rb +77 -34
- data/lib/shrine/plugins/add_metadata.rb +25 -17
- data/lib/shrine/plugins/atomic_helpers.rb +119 -0
- data/lib/shrine/plugins/backgrounding.rb +77 -113
- data/lib/shrine/plugins/cached_attachment_data.rb +6 -15
- data/lib/shrine/plugins/column.rb +102 -0
- data/lib/shrine/plugins/data_uri.rb +38 -36
- data/lib/shrine/plugins/default_storage.rb +45 -15
- data/lib/shrine/plugins/default_url.rb +12 -24
- data/lib/shrine/plugins/default_url_options.rb +3 -30
- data/lib/shrine/plugins/delete_raw.rb +10 -16
- data/lib/shrine/plugins/derivation_endpoint.rb +89 -134
- data/lib/shrine/plugins/derivatives.rb +637 -0
- data/lib/shrine/plugins/determine_mime_type.rb +9 -21
- data/lib/shrine/plugins/download_endpoint.rb +109 -133
- data/lib/shrine/plugins/dynamic_storage.rb +5 -11
- data/lib/shrine/plugins/entity.rb +152 -0
- data/lib/shrine/plugins/form_assign.rb +108 -0
- data/lib/shrine/plugins/included.rb +6 -6
- data/lib/shrine/plugins/infer_extension.rb +13 -20
- data/lib/shrine/plugins/instrumentation.rb +54 -42
- data/lib/shrine/plugins/keep_files.rb +3 -15
- data/lib/shrine/plugins/metadata_attributes.rb +28 -19
- data/lib/shrine/plugins/mirroring.rb +142 -0
- data/lib/shrine/plugins/model.rb +158 -0
- data/lib/shrine/plugins/module_include.rb +3 -3
- data/lib/shrine/plugins/multi_cache.rb +27 -0
- data/lib/shrine/plugins/presign_endpoint.rb +18 -22
- data/lib/shrine/plugins/pretty_location.rb +15 -9
- data/lib/shrine/plugins/processing.rb +22 -9
- data/lib/shrine/plugins/rack_file.rb +2 -42
- data/lib/shrine/plugins/rack_response.rb +15 -10
- data/lib/shrine/plugins/recache.rb +6 -5
- data/lib/shrine/plugins/refresh_metadata.rb +13 -11
- data/lib/shrine/plugins/remote_url.rb +49 -49
- data/lib/shrine/plugins/remove_attachment.rb +10 -6
- data/lib/shrine/plugins/remove_invalid.rb +19 -8
- data/lib/shrine/plugins/restore_cached_data.rb +13 -7
- data/lib/shrine/plugins/sequel.rb +86 -36
- data/lib/shrine/plugins/signature.rb +10 -16
- data/lib/shrine/plugins/store_dimensions.rb +35 -40
- data/lib/shrine/plugins/tempfile.rb +1 -3
- data/lib/shrine/plugins/type_predicates.rb +113 -0
- data/lib/shrine/plugins/upload_endpoint.rb +25 -23
- data/lib/shrine/plugins/upload_options.rb +14 -15
- data/lib/shrine/plugins/url_options.rb +31 -0
- data/lib/shrine/plugins/validation.rb +80 -0
- data/lib/shrine/plugins/validation_helpers.rb +34 -57
- data/lib/shrine/plugins/versions.rb +107 -87
- data/lib/shrine/plugins.rb +22 -0
- data/lib/shrine/storage/file_system.rb +46 -64
- data/lib/shrine/storage/linter.rb +42 -7
- data/lib/shrine/storage/memory.rb +49 -0
- data/lib/shrine/storage/s3.rb +154 -158
- data/lib/shrine/uploaded_file.rb +28 -30
- data/lib/shrine/version.rb +3 -3
- data/lib/shrine.rb +86 -149
- data/shrine.gemspec +9 -10
- metadata +79 -83
- data/doc/migrating_storage.md +0 -76
- data/doc/plugins/backup.md +0 -31
- data/doc/plugins/copy.md +0 -24
- data/doc/plugins/delete_promoted.md +0 -12
- data/doc/plugins/direct_upload.md +0 -172
- data/doc/plugins/hooks.md +0 -58
- data/doc/plugins/logging.md +0 -42
- data/doc/plugins/migration_helpers.md +0 -60
- data/doc/plugins/moving.md +0 -19
- data/doc/plugins/multi_delete.md +0 -20
- data/doc/plugins/parallelize.md +0 -16
- data/doc/plugins/parsed_json.md +0 -23
- data/doc/regenerating_versions.md +0 -143
- data/lib/shrine/plugins/background_helpers.rb +0 -5
- data/lib/shrine/plugins/backup.rb +0 -90
- data/lib/shrine/plugins/copy.rb +0 -50
- data/lib/shrine/plugins/delete_promoted.rb +0 -20
- data/lib/shrine/plugins/direct_upload.rb +0 -217
- data/lib/shrine/plugins/hooks.rb +0 -90
- data/lib/shrine/plugins/logging.rb +0 -142
- data/lib/shrine/plugins/migration_helpers.rb +0 -70
- data/lib/shrine/plugins/moving.rb +0 -57
- data/lib/shrine/plugins/multi_delete.rb +0 -32
- data/lib/shrine/plugins/parallelize.rb +0 -78
- data/lib/shrine/plugins/parsed_json.rb +0 -29
data/CHANGELOG.md
CHANGED
@@ -1,26 +1,468 @@
|
|
1
|
-
##
|
1
|
+
## 3.4.0 (2021-06-14)
|
2
2
|
|
3
|
-
*
|
3
|
+
* `base` – Fix passing options to `Shrine.Attachment` on Ruby 3.0 (@lucianghinda)
|
4
4
|
|
5
|
-
|
5
|
+
* `determine_mime_type` – Return correct `image/svg+xml` MIME type for SVGs with `:fastimage` analyzer (@Bandes)
|
6
6
|
|
7
|
-
* `
|
7
|
+
* `activerecord` – Fix keyword argument warning when adding errors with options (@janko)
|
8
8
|
|
9
|
-
* `
|
9
|
+
* `entity` – Make `Attacher#read` method public (@janko)
|
10
10
|
|
11
|
-
|
11
|
+
* `entity` – Reset attachment dirty tracking in `Attacher#reload` (@janko)
|
12
12
|
|
13
|
-
* `
|
13
|
+
* `activerecord` – Don't load the attacher on `ActiveRecord::Base#reload` if it hasn't yet been initialized (@janko)
|
14
14
|
|
15
|
-
* `
|
15
|
+
* `sequel` – Don't load the attacher on `Sequel::Model#reload` if it hasn't yet been initialized (@janko)
|
16
16
|
|
17
|
-
|
17
|
+
## 3.3.0 (2020-10-04)
|
18
18
|
|
19
|
-
|
19
|
+
* `s3` - Support new `Aws::S3::EncryptionV2::Client` for client-side encryption (@janko)
|
20
20
|
|
21
|
-
*
|
21
|
+
* `derivation_endpoint` – Reduce possibility of timing attacks when comparing signatures (@esparta)
|
22
22
|
|
23
|
-
|
23
|
+
* `derivatives` – Avoid downloading the attached file when calling default no-op processor (@janko)
|
24
|
+
|
25
|
+
* `derivatives` – Add `:download` processor setting for skipping downloading source file (@jrochkind, @janko)
|
26
|
+
|
27
|
+
* `derivatives` – Copy non-file source IO objects into local file before passing them to the processor (@jrochkind)
|
28
|
+
|
29
|
+
* `sequel` – Call `Attacher#reload` in `Sequel::Model#reload`, which keeps rest of attacher state (@janko, @jrochkind)
|
30
|
+
|
31
|
+
* `activerecord` – Call `Attacher#reload` in `ActiveRecord::Base#reload`, which keeps rest of attacher state (@janko, @jrochkind)
|
32
|
+
|
33
|
+
* `add_metadata` – Add `:skip_nil` option for excluding metadata keys whose values are nil (@renchap)
|
34
|
+
|
35
|
+
* `store_dimensions` – Add `:auto_extraction` option for disabling automatically extracting dimensions on upload (@renchap)
|
36
|
+
|
37
|
+
* `mirroring` – Forward original upload options when mirroring upload (@corneverbruggen)
|
38
|
+
|
39
|
+
* `derivation_endpoint` – Apply `version` URL option in derivation endpoint (@janko)
|
40
|
+
|
41
|
+
* `remove_attachment` – Delete removed file if a new file was attached right after removal (@janko)
|
42
|
+
|
43
|
+
* `upload_endpoint` – Fix `Shrine.upload_response` not working in a Rails controller (@pldavid2)
|
44
|
+
|
45
|
+
* `presign_endpoint` – Add `OPTIONS` route that newer versions of Uppy check (@janko)
|
46
|
+
|
47
|
+
* `derivatives` – Add `:create_on_promote` option for auto-creating derivatives on promotion (@janko)
|
48
|
+
|
49
|
+
* `s3` – Add back support for client-side encryption (@janko)
|
50
|
+
|
51
|
+
* `memory` – Ensure `Memory#open` returns content in original encoding (@jrochkind)
|
52
|
+
|
53
|
+
## 3.2.2 (2020-08-05)
|
54
|
+
|
55
|
+
* `s3` – Fix `S3#open` not working on aws-sdk-core 3.104 and above (@janko)
|
56
|
+
|
57
|
+
## 3.2.1 (2020-01-12)
|
58
|
+
|
59
|
+
* `derivation_endpoint` – Use `Rack::Files` constant on Rack >= 2.1 (@janko)
|
60
|
+
|
61
|
+
* Fix Ruby 2.7 warnings regarding separation of positional and keyword arguments (@janko)
|
62
|
+
|
63
|
+
* `s3` – Make `S3#open` handle empty S3 objects (@janko)
|
64
|
+
|
65
|
+
## 3.2.0 (2019-12-17) [[release notes]](https://shrinerb.com/docs/release_notes/3.2.0)
|
66
|
+
|
67
|
+
* `validation` – Run validation on `Attacher#attach` & `Attacher#attach_cached` instead of `Attacher#change` (@janko)
|
68
|
+
|
69
|
+
* `remove_invalid` – Activate also when `Attacher#validate` is run manually (@janko)
|
70
|
+
|
71
|
+
* `remove_invalid` – Fix incompatibility with `derivatives` plugin (@janko)
|
72
|
+
|
73
|
+
* `type_predicates` – Add new plugin with convenient `UploadedFile` predicate methods based on MIME type (@janko)
|
74
|
+
|
75
|
+
* `core` – Allow assigning back current attached file data (@janko)
|
76
|
+
|
77
|
+
* `derivatives` – Fix `:derivative` value inconsistency when derivatives are being promoted (@janko)
|
78
|
+
|
79
|
+
* `add_metadata` – Add `#add_metadata` method for adding metadata to uploaded files (@janko)
|
80
|
+
|
81
|
+
* `derivatives` – Add `:io` and `:attacher` values to instrumentation event payload (@janko)
|
82
|
+
|
83
|
+
## 3.1.0 (2019-11-15) [[release notes]](https://shrinerb.com/docs/release_notes/3.1.0)
|
84
|
+
|
85
|
+
* `default_storage` – Coerce storage key to symbol in `Attacher#cache_key` & `Attacher#store_key` (@janko)
|
86
|
+
|
87
|
+
* `core` – Coerce storage key to symbol in `Attacher#cache_key` & `Attacher#store_key` (@janko)
|
88
|
+
|
89
|
+
* `add_metadata` – Define metadata methods only for the target uploader class (@janko)
|
90
|
+
|
91
|
+
* `derivatives` – Add `:storage` option to `Attacher#create_derivatives` (@janko)
|
92
|
+
|
93
|
+
* `store_dimensions` – Propagate exceptions on loading `ruby-vips` in `:vips` analyzer (@janko)
|
94
|
+
|
95
|
+
* `signature` – Allow skipping rewinding by passing `rewind: false` to `Shrine.signature` (@janko)
|
96
|
+
|
97
|
+
* `derivatives` – Add `Attacher.derivatives` alias for `Attacher.derivatives_processor` (@janko)
|
98
|
+
|
99
|
+
## 3.0.1 (2019-10-17) [[release notes]](https://shrinerb.com/docs/release_notes/3.0.1)
|
100
|
+
|
101
|
+
* `metadata_attributes` – Fix exception being raised when there is no attached file (@janko)
|
102
|
+
|
103
|
+
* `core` – Simplify `UploadedFile#inspect` output (@janko)
|
104
|
+
|
105
|
+
## 3.0.0 (2019-10-14) [[release notes]](https://shrinerb.com/docs/release_notes/3.0.0)
|
106
|
+
|
107
|
+
* `derivation_endpoint` – Pass `action: :derivation` when uploading derivation results (@janko)
|
108
|
+
|
109
|
+
* `core` – Add `Shrine::Attachment[]` shorthand for `Shrine::Attachment.new` (@janko)
|
110
|
+
|
111
|
+
* `core` – Add `Storage#delete_prefixed` method for deleting all files in specified directory (@jrochkind)
|
112
|
+
|
113
|
+
* `linter` – Return `true` in `Storage::Linter#call` so that it can be used with `assert` (@jrochkind)
|
114
|
+
|
115
|
+
* `linter` – Allow `Storage::Linter` to accept a key that will be used for testing nonexistent file (@janko)
|
116
|
+
|
117
|
+
* `core` – Infer file extension from `filename` metadata (@janko)
|
118
|
+
|
119
|
+
* `pretty_location` – Add `:class_underscore` option for underscoring class name (@Uysim)
|
120
|
+
|
121
|
+
* Update `down` dependency to `~> 5.0` (@janko)
|
122
|
+
|
123
|
+
* `multi_cache` – Add new plugin for whitelisting additional temporary storages (@janko, @jrochkind)
|
124
|
+
|
125
|
+
* `sequel` – Extract callback code into attacher methods that can be overridden (@janko)
|
126
|
+
|
127
|
+
* `activerecord` – Extract callback code into attacher methods that can be overridden (@janko)
|
128
|
+
|
129
|
+
* `derivation_endpoint` – Stop re-opening `File` objects returned in derivation result (@janko)
|
130
|
+
|
131
|
+
* `derivation_endpoint` – Allow only `File` or `Tempfile` object as derivation result (@janko)
|
132
|
+
|
133
|
+
* `download_endpoint` – Add `Shrine.download_response` for calling in controller (@janko)
|
134
|
+
|
135
|
+
* `core` – Fetch storage object lazily in `Shrine` instance (@janko)
|
136
|
+
|
137
|
+
* `mirroring` – Add new plugin for replicating uploads and deletes to other storages (@janko)
|
138
|
+
|
139
|
+
* `sequel` – Rename `:callbacks` option to `:hooks` (@janko)
|
140
|
+
|
141
|
+
* `model` – Add `Attacher#set_model` for setting model without loading attachment (@janko)
|
142
|
+
|
143
|
+
* `entity` – Add `Attacher#set_entity` for setting entity without loading attachment (@janko)
|
144
|
+
|
145
|
+
* `entity` – Define `#<name>_attacher` class method when including `Shrine::Attachment` (@janko)
|
146
|
+
|
147
|
+
* `derivation_endpoint` – Send only `:derivation` in the instrumentation event payload (@janko)
|
148
|
+
|
149
|
+
* `default_storage` – Add `Attacher.default_cache` and `Attacher.default_store` for settings (@janko)
|
150
|
+
|
151
|
+
* `default_storage` – Deprecate `record` & `name` arguments to storage block (@janko)
|
152
|
+
|
153
|
+
* `default_storage` – Evaluate storage block in context of `Attacher` instance (@janko)
|
154
|
+
|
155
|
+
* Unify persistence plugin interface (@janko)
|
156
|
+
|
157
|
+
* `upload_options` – Keep `Shrine#_upload` private (@janko)
|
158
|
+
|
159
|
+
* `infer_extension` – Keep `Shrine#basic_location` private (@janko)
|
160
|
+
|
161
|
+
* `model` – Add `#<name>_changed?` method to attachment module (@janko)
|
162
|
+
|
163
|
+
* Make it easier for plugins to define entity and model attachment methods (@janko)
|
164
|
+
|
165
|
+
* `form_assign` – Add new plugin for assigning attachment from form params without a form object (@janko)
|
166
|
+
|
167
|
+
* `derivation_endpoint` – Allow passing generic IO objects to `Derivation#upload` (@janko)
|
168
|
+
|
169
|
+
* `derivation_endpoint` – Accept additional uploader options in `Derivation#upload` (@janko)
|
170
|
+
|
171
|
+
* `derivation_endpoint` – Close the uploaded file in `Derivation#upload` (@janko)
|
172
|
+
|
173
|
+
* `core` – Stop rescuing `IO#close` exceptions in `Shrine#upload` (@janko)
|
174
|
+
|
175
|
+
* `core` – Add `:delete` option to `Shrine#upload` for deleting uploaded file (@janko)
|
176
|
+
|
177
|
+
* `s3` – Stop returning `:object` in `Down::ChunkedIO#data` in `S3#open` (@janko)
|
178
|
+
|
179
|
+
* `s3` – Eliminate `#head_object` request in `S3#open` (@janko)
|
180
|
+
|
181
|
+
* `download_endpoint` – Remove extra `Storage#exists?` check (@janko)
|
182
|
+
|
183
|
+
* `derivation_endpoint` – Add `Derivation#opened` for retrieving an opened derivation result (@janko)
|
184
|
+
|
185
|
+
* `derivation_endpoint` – Remove extra `Storage#exists?` check when `:upload` is enabled but not `:upload_redirect` (@janko)
|
186
|
+
|
187
|
+
* `derivation_endpoint` - Don't pass source `UploadedFile` object when `:download` is `false` (@janko)
|
188
|
+
|
189
|
+
* `derivation_endpoint` – Remove `:include_uploaded_file` option (@janko)
|
190
|
+
|
191
|
+
* `derivation_endpoint` – Evaluate derivation block in context of `Shrine::Derivation` (@janko)
|
192
|
+
|
193
|
+
* `derivation_endpoint` – Remove `:download_errors` option (@janko)
|
194
|
+
|
195
|
+
* `memory` – Raise `Shrine::FileNotFound` on nonexistent file in `Memory#open` (@janko)
|
196
|
+
|
197
|
+
* `file_system` – Raise `Shrine::FileNotFound` on nonexistent file in `FileSystem#open` (@janko)
|
198
|
+
|
199
|
+
* `s3` – Raise `Shrine::FileNotFound` on nonexistent object in `S3#open` (@janko)
|
200
|
+
|
201
|
+
* `core` – Add `Shrine::FileNotFound` exception and require storages to raise it on `Storage#open` (janko)
|
202
|
+
|
203
|
+
* `instrumentation` – Remove `:metadata` from `:options` in `metadata.shrine` event (@janko)
|
204
|
+
|
205
|
+
* `instrumentation` – Remove `:location`, `:upload_options` and `:metadata` from `:options` in `upload.shrine` event (@janko)
|
206
|
+
|
207
|
+
* `instrumentation` – Add `:metadata` to the `upload.shrine` event (@janko)
|
208
|
+
|
209
|
+
* `download_endpoint` – Drop support for legacy `/:storage/:id` URLs (@janko)
|
210
|
+
|
211
|
+
* `core` – In `UploadedFile#==` require files to be of the same class (@janko)
|
212
|
+
|
213
|
+
* `core` – Add `:close` option to `Shrine#upload` for preventing closing file after upload (@janko)
|
214
|
+
|
215
|
+
* `memory` – Add `Shrine::Storage::Memory` from `shrine-memory` gem (@janko)
|
216
|
+
|
217
|
+
* `default_url_options` – Rename to just `url_options` (@janko)
|
218
|
+
|
219
|
+
* `delete_raw` – Deprecate plugin in favour of `derivatives` (@janko)
|
220
|
+
|
221
|
+
* `recache` – Deprecate plugin in favour of `derivatives` (@janko)
|
222
|
+
|
223
|
+
* `processing` – Deprecate plugin in favour of `derivatives` (@janko)
|
224
|
+
|
225
|
+
* `versions` – Deprecate plugin in favour of `derivatives` (@janko)
|
226
|
+
|
227
|
+
* `derivatives` – Add new plugin for storing processed files (@janko)
|
228
|
+
|
229
|
+
* `derivation_endpoint` – Allow using symbol and string derivation names interchangeably (@janko)
|
230
|
+
|
231
|
+
* `dynamic_storage` – Remove `Shrine.dynamic_storages` method (@janko)
|
232
|
+
|
233
|
+
* `core` – Deep duplicate `Shrine.opts` on subclassing (@janko)
|
234
|
+
|
235
|
+
* `core` – Add `Attacher#file!` which asserts that a file is attached (@janko)
|
236
|
+
|
237
|
+
* `core` – Change `Shrine.uploaded_file` to raise `ArgumentError` on invalid input (@janko)
|
238
|
+
|
239
|
+
* `module_include` – Deprecate plugin over overriding core classes directly (@janko)
|
240
|
+
|
241
|
+
* `core` – Add `Attacher#cache_key` and `Attacher#store_key` which return storage identifiers (@janko)
|
242
|
+
|
243
|
+
* `linter` – Call `Storage#open` with options as second argument (@janko)
|
244
|
+
|
245
|
+
* `core` – Allow data hash passed to `UploadedFile.new` to have symbol keys (@janko)
|
246
|
+
|
247
|
+
* `core` – Change how `Shrine::UploadedFile` sets its state from the given data hash (@janko)
|
248
|
+
|
249
|
+
* `core` – Deprecate `Storage#open` not accepting additional options (@janko)
|
250
|
+
|
251
|
+
* `refresh_metadata` – Add `Attacher#refresh_metadata!` method which integrates with `model` plugin (@janko)
|
252
|
+
|
253
|
+
* `instrumentation` – Instrument any `Storage#open` calls in a new `open.shrine` event (@janko)
|
254
|
+
|
255
|
+
* `restore_cached_data` – Forward options passed to `Attacher#attach_cached` to metadata extraction (@janko)
|
256
|
+
|
257
|
+
* `validation` – Allow skipping validations on attaching by passing `validate: false` (@janko)
|
258
|
+
|
259
|
+
* `validation` – Add `:validate` option to `Attacher#assign` or `Attacher#attach` for passing options to validation block (@janko)
|
260
|
+
|
261
|
+
* `validation` – Extract validation functionality into the new plugin (@janko)
|
262
|
+
|
263
|
+
* `upload_options` – Upload options from the block are now merged with passed options instead of replaced (@janko)
|
264
|
+
|
265
|
+
* `upload_endpoint` – Stop passing `Rack::Request` object to the uploader (@janko)
|
266
|
+
|
267
|
+
* `remote_url` – Require custom downloaders to raise `Shrine::Plugins::RemoteUrl::DownloadError` for conversion into a validation error (@janko)
|
268
|
+
|
269
|
+
* `infer_extension` – Fix compatibility with the `pretty_location` plugin (@janko)
|
270
|
+
|
271
|
+
* `presign_endpoint` – Remove deprecated `Shrine::Plugins::PresignEndpoint::App` constant (@janko)
|
272
|
+
|
273
|
+
* `keep_files` – Remove the ability to choose whether to keep only destroyed or only replaced files (@janko)
|
274
|
+
|
275
|
+
* `infer_extension` – Remove `Shrine#infer_extension` method (@janko)
|
276
|
+
|
277
|
+
* `default_url_options` – Allow overriding passed URL options by deleting them inside the block (@janko)
|
278
|
+
|
279
|
+
* `cached_attachment_data` – Rename `Attacher#read_cached` to `Attacher#cached_data` (@janko)
|
280
|
+
|
281
|
+
* `sequel` – Add `Attacher#atomic_promote` and `Attacher#atomic_persist` (@janko)
|
282
|
+
|
283
|
+
* `sequel` – Remove persistence from `Attacher#promote` (@janko)
|
284
|
+
|
285
|
+
* `activerecord` – Remove persistence from `Attacher#promote` (@janko)
|
286
|
+
|
287
|
+
* `atomic_helpers` – Add new plugin with helper methods for atomic promotion and persistence (@janko)
|
288
|
+
|
289
|
+
* `backgrounding` – Add `Attacher#promote_block` & `Attacher#destroy_block` for overriding class level blocks (@janko)
|
290
|
+
|
291
|
+
* `backgrounding` – Add `Attacher.promote_block` & `Attacher.destroy_block` on class level (@janko)
|
292
|
+
|
293
|
+
* `backgrounding` – Remove overriding `Attacher#swap` with atomic promotion (@janko)
|
294
|
+
|
295
|
+
* `backgrounding` – Remove `Attacher.promote`, `Attacher.delete`, `Attacher.dump`, `Attacher#dump`, `Attacher.load`, `Attacher.load_record` (@janko)
|
296
|
+
|
297
|
+
* `model` – Allow disabling caching to temporary storage on assignment (@janko)
|
298
|
+
|
299
|
+
* `model` – Add `Attacher.from_model`, `Attacher#write` (@janko)
|
300
|
+
|
301
|
+
* `model` – Add new plugin for integrating with mutable structs (@janko)
|
302
|
+
|
303
|
+
* `entity` – Add `Attacher.from_entity`, `Attacher#reload`, `Attacher#column_values`, `Attacher#attribute` (@janko)
|
304
|
+
|
305
|
+
* `entity` – Add new plugin for integrating with immutable structs (@janko)
|
306
|
+
|
307
|
+
* `column` – Allow changing column serializer from default `JSON` library (@janko)
|
308
|
+
|
309
|
+
* `column` – Add `Attacher#column_data` and `Attacher.from_column` methods (@janko)
|
310
|
+
|
311
|
+
* `column` – Add new plugin for (de)serializing attacher data (@janko)
|
312
|
+
|
313
|
+
* `attachment` – Removed any default attachment methods (@janko)
|
314
|
+
|
315
|
+
* `core` – Require context hash passed as second argument to `Shrine#upload` to have symbol keys (@janko)
|
316
|
+
|
317
|
+
* `core` – Change `Shrine.uploaded_file` not to yield files anymore (@janko)
|
318
|
+
|
319
|
+
* `core` – Allow `Shrine.uploaded_file` to accept file data hashes with symbol keys (@janko)
|
320
|
+
|
321
|
+
* `core` – Remove `Shrine#uploaded?`
|
322
|
+
|
323
|
+
* `core` – Remove `Shrine#delete`, `Shrine#_delete`, `Shrine#remove` (@janko)
|
324
|
+
|
325
|
+
* `core` – Remove `Shrine#store`, `Shrine#_store`, `Shrine#put`, `Shrine#copy` (@janko)
|
326
|
+
|
327
|
+
* `core` – Remove `Shrine#processed`, `Shrine#process` (@janko)
|
328
|
+
|
329
|
+
* `core` – Don't pass `:phase` anymore on uploads (@janko)
|
330
|
+
|
331
|
+
* `core` – Read attachment from the record attribute only on initialization (@janko)
|
332
|
+
|
333
|
+
* `core` – Don't require a temporary storage (@janko)
|
334
|
+
|
335
|
+
* `core` – Add `Attacher#data` and `Attacher.from_data` for dumping to and loading from a Hash (@janko)
|
336
|
+
|
337
|
+
* `core` – Change `Attacher#assign` to raise exception when non-cached file is assigned (@janko)
|
338
|
+
|
339
|
+
* `core` – Enable `Attacher#assign` to accept cached file data as a Hash (@janko)
|
340
|
+
|
341
|
+
* `core` – Add `Attacher#file` alias for `Attacher#get` (@janko)
|
342
|
+
|
343
|
+
* `core` – Change `Attacher#attached?` to return whether a file is attached (@janko)
|
344
|
+
|
345
|
+
* `core` – Change `Attacher#promote` to always only save promoted file in memory (@janko)
|
346
|
+
|
347
|
+
* `core` – Rename `Attacher#replace` to `Attacher#destroy_previous` (@janko)
|
348
|
+
|
349
|
+
* `core` – Remove `Attacher#_promote` and `Attacher#_delete`, add `Attacher#promote_cached` and `Attacher#destroy_attached` (@janko)
|
350
|
+
|
351
|
+
* `core` – Rename `Attacher#set` and `Attacher#_set` to `Attacher#change` and `Attacher#set` (@janko)
|
352
|
+
|
353
|
+
* `core` – Remove `Attacher#cache!` and `Attacher#store!`, add `Attacher#upload` (@janko)
|
354
|
+
|
355
|
+
* `core` – Rename `Attacher#validate_block` to `Attacher#_validate` (@janko)
|
356
|
+
|
357
|
+
* `core` – Add `Attacher#attach`, `Attacher#attach_cached`, extracted from `Attacher#assign` (@janko)
|
358
|
+
|
359
|
+
* `core` – Remove `Attacher#swap`, `Attacher#update`, `Attacher#read`, `Attacher#write`, `Attacher#data_attribute`, `Attacher#convert_to_data`, `Attacher#convert_before_write`, and `Attacher#convert_after_read` (@janko)
|
360
|
+
|
361
|
+
* `core` – Change `Attacher.new` to not accept a model anymore (@janko)
|
362
|
+
|
363
|
+
* `delete_promoted` – Remove plugin (@janko)
|
364
|
+
|
365
|
+
* `parsed_json` – Remove plugin (@janko)
|
366
|
+
|
367
|
+
* `parallelize` – Remove plugin (@janko)
|
368
|
+
|
369
|
+
* `hooks` – Remove plugin (@janko)
|
370
|
+
|
371
|
+
* `core` – Remove deprecated `Shrine::IO_METHODS` constant (@janko)
|
372
|
+
|
373
|
+
* `s3` – Replace source object metadata when copying a file from S3 (@janko)
|
374
|
+
|
375
|
+
* `core` – Change `UploadedFile#storage_key` to return a Symbol instead of a String (@janko)
|
376
|
+
|
377
|
+
* `infer_extension` – Make `:mini_mime` the default analyzer (@janko)
|
378
|
+
|
379
|
+
* Bring back Ruby 2.3 support (@janko)
|
380
|
+
|
381
|
+
* `versions` – Remove deprecated `:version_names`, `Shrine.version_names` and `Shrine.version?` (@janko)
|
382
|
+
|
383
|
+
* `validation_helpers` – Remove support for regexes in MIME type or extension validations (@janko)
|
384
|
+
|
385
|
+
* `validation_helpers` – Don't require `#width` and `#height` methods to be defined on `UploadedFile` (@janko)
|
386
|
+
|
387
|
+
* `validation_helpers` – Fail dimensions validations when `width` or `height` metadata is missing (@janko)
|
388
|
+
|
389
|
+
* `upload_endpoint` – Remove deprecated `Shrine::Plugins::UploadEndpoint::App` constant (@janko)
|
390
|
+
|
391
|
+
* `determine_mime_type` – Remove `Shrine#mime_type_analyzers` method (@janko)
|
392
|
+
|
393
|
+
* `store_dimensions` – Remove `Shrine#extract_dimensions` and `Shrine#dimensions_analyzers` methods (@janko)
|
394
|
+
|
395
|
+
* `rack_file` – Remove deprecated `Shrine::Plugins::RackFile::UploadedFile` constant (@janko)
|
396
|
+
|
397
|
+
* `rack_file` – Drop support for passing file hash to `Shrine#upload` and `Shrine#store` (@janko)
|
398
|
+
|
399
|
+
* `download_endpoint` – Move `Shrine::Plugins::DownloadEndpoint::App` into `Shrine::DownloadEndpoint` (@janko)
|
400
|
+
|
401
|
+
* `download_endpoint` – Remove deprecated `Shrine::DownloadEndpoint` constant (@janko)
|
402
|
+
|
403
|
+
* `download_endpoint` – Remove deprecated `:storages` option (@janko)
|
404
|
+
|
405
|
+
* `determine_mime_type` – Remove deprecated `:default` analyzer alias (@janko)
|
406
|
+
|
407
|
+
* `default_url` – Remove deprecated block argument when loading the plugin (@janko)
|
408
|
+
|
409
|
+
* `data_uri` – Remove deprecated `Shrine::Plugins::DataUri::DataFile` constant (@janko)
|
410
|
+
|
411
|
+
* `data_uri` – Remove deprecated `:filename` plugin option (@janko)
|
412
|
+
|
413
|
+
* `cached_attachment_data` – Remove deprecated model setter (@janko)
|
414
|
+
|
415
|
+
* `file_system` – Remove deprecated `:older_than` option in `FileSystem#clear!` (@janko)
|
416
|
+
|
417
|
+
* `file_system` – Don't accept a block anymore in `FileSystem#open` (@janko)
|
418
|
+
|
419
|
+
* `file_system` – Remove deprecated `FileSystem#download` method (@janko)
|
420
|
+
|
421
|
+
* `file_system` – Make `FileSystem#movable?` and `FileSystem#move` methods private (@janko)
|
422
|
+
|
423
|
+
* `file_system` – Remove deprecation warning on unrecognized options in `FileSystem#upload` (@janko)
|
424
|
+
|
425
|
+
* `file_system` – Remove deprecated `:host` option for `FileSystem#initialize` (@janko)
|
426
|
+
|
427
|
+
* `moving` – Remove deprecated plugin (@janko)
|
428
|
+
|
429
|
+
* `multi_delete` – Remove deprecated plugin (@janko)
|
430
|
+
|
431
|
+
* `direct_upload` – Remove deprecated plugin (@janko)
|
432
|
+
|
433
|
+
* `backup` – Remove deprecated plugin (@janko)
|
434
|
+
|
435
|
+
* `background_helpers` – Remove deprecated plugin (@janko)
|
436
|
+
|
437
|
+
* `migration_helpers` – Remove deprecated plugin (@janko)
|
438
|
+
|
439
|
+
* `copy` – Remove deprecated plugin (@janko)
|
440
|
+
|
441
|
+
* `logging` – Remove deprecated plugin (@janko)
|
442
|
+
|
443
|
+
* `s3` – Remove deprecated `S3#download` method (@janko)
|
444
|
+
|
445
|
+
* `s3` – Remove deprecated `S3#stream` method (@janko)
|
446
|
+
|
447
|
+
* `presign_endpoint` – Drop support for presign objects that don't respond to `#to_h` (@janko)
|
448
|
+
|
449
|
+
* `s3` – Return a Hash in `S3#presign` when method is POST (@janko)
|
450
|
+
|
451
|
+
* `s3` – Remove `:download` option in `S3#url` (@janko)
|
452
|
+
|
453
|
+
* `s3` – Remove support for non URI-escaped content disposition values (@janko)
|
454
|
+
|
455
|
+
* `s3` – Remove `S3#s3` method (@janko)
|
456
|
+
|
457
|
+
* `s3` – Remove support for specifying `:multipart_threshold` as an integer (@janko)
|
458
|
+
|
459
|
+
* `s3` – Remove `:host` option on `S3#initialize` (@janko)
|
460
|
+
|
461
|
+
* `s3` – Drop support for `aws-sdk-s3` versions lower than 1.14 (@janko)
|
462
|
+
|
463
|
+
* `s3` – Drop support for `aws-sdk` 2.x (@janko)
|
464
|
+
|
465
|
+
## 2.19.0 (2019-07-18) [[release notes]](https://shrinerb.com/docs/release_notes/2.19.0)
|
24
466
|
|
25
467
|
* `pretty_location` – Allow specifying a different identifier from `id` (@00dav00)
|
26
468
|
|
@@ -76,7 +518,7 @@
|
|
76
518
|
|
77
519
|
* `core` – Allow registering storage objects under string keys (@janko)
|
78
520
|
|
79
|
-
## 2.18.0 (2019-06-24)
|
521
|
+
## 2.18.0 (2019-06-24) [[release notes]](https://shrinerb.com/docs/release_notes/2.18.0)
|
80
522
|
|
81
523
|
* `core` – Add `Shrine.upload` method as a shorthand for `Shrine.new(...).upload(...)` (@janko)
|
82
524
|
|
@@ -100,7 +542,7 @@
|
|
100
542
|
|
101
543
|
* `parsed_json` – Fix overriden `Attacher#assign` not accepting second argument (@janko)
|
102
544
|
|
103
|
-
## 2.17.0 (2019-05-06)
|
545
|
+
## 2.17.0 (2019-05-06) [[release notes]](https://shrinerb.com/docs/release_notes/2.17.0)
|
104
546
|
|
105
547
|
* `data_uri` – Add `Attacher#assign_data_uri` which accepts additional `Shrine#upload` options (@janko)
|
106
548
|
|
@@ -150,7 +592,7 @@
|
|
150
592
|
|
151
593
|
* `parsed_json` – Accepts hashes with symbols keys (@aglushkov)
|
152
594
|
|
153
|
-
## 2.16.0 (2019-02-18)
|
595
|
+
## 2.16.0 (2019-02-18) [[release notes]](https://shrinerb.com/docs/release_notes/2.16.0)
|
154
596
|
|
155
597
|
* `derivation_endpoint` – Add `:upload_open_options` for download option for derivation result (@janko)
|
156
598
|
|
@@ -176,7 +618,7 @@
|
|
176
618
|
|
177
619
|
* Fix `store_dimensions` plugin making second argument in `Shrine#extract_metadata` mandatory (@jrochkind)
|
178
620
|
|
179
|
-
## 2.15.0 (2019-02-08)
|
621
|
+
## 2.15.0 (2019-02-08) [[release notes]](https://shrinerb.com/docs/release_notes/2.15.0)
|
180
622
|
|
181
623
|
* Add `derivation_endpoint` plugin for processing uploaded files on-the-fly (@janko)
|
182
624
|
|
@@ -186,7 +628,7 @@
|
|
186
628
|
|
187
629
|
* Yield a new File object on `Shrine.with_file` when `tempfile` plugin is loaded (@janko)
|
188
630
|
|
189
|
-
## 2.14.0 (2018-12-27)
|
631
|
+
## 2.14.0 (2018-12-27) [[release notes]](https://shrinerb.com/docs/release_notes/2.14.0)
|
190
632
|
|
191
633
|
* Add `tempfile` plugin for easier reusing of the same uploaded file copy on disk (@janko)
|
192
634
|
|
@@ -256,7 +698,7 @@
|
|
256
698
|
|
257
699
|
* Use a guard raise cause for `bucket` argument in S3 for an appropriate error message (@ardecvz)
|
258
700
|
|
259
|
-
## 2.13.0 (2018-11-04)
|
701
|
+
## 2.13.0 (2018-11-04) [[release notes]](https://shrinerb.com/docs/release_notes/2.13.0)
|
260
702
|
|
261
703
|
* Specify UTF-8 charset in `Content-Type` response header in `presign_endpoint` plugin (@janko)
|
262
704
|
|
@@ -288,7 +730,7 @@
|
|
288
730
|
|
289
731
|
* In `S3#upload` deprecate using aws-sdk-s3 lower than 1.14 when uploading IO objects of unknown size (@janko)
|
290
732
|
|
291
|
-
## 2.12.0 (2018-08-22)
|
733
|
+
## 2.12.0 (2018-08-22) [[release notes]](https://shrinerb.com/docs/release_notes/2.12.0)
|
292
734
|
|
293
735
|
* Ignore nil values when assigning files from a remote URL (@janko)
|
294
736
|
|
@@ -316,7 +758,7 @@
|
|
316
758
|
|
317
759
|
* Make `UploadedFile#open` always open a new IO object and close the previous one (@janko)
|
318
760
|
|
319
|
-
## 2.11.0 (2018-04-28)
|
761
|
+
## 2.11.0 (2018-04-28) [[release notes]](https://shrinerb.com/docs/release_notes/2.11.0)
|
320
762
|
|
321
763
|
* Add `Shrine.with_file` for temporarily converting an IO-like object into a file (@janko)
|
322
764
|
|
@@ -344,7 +786,7 @@
|
|
344
786
|
|
345
787
|
* Deprecate `direct_upload` plugin in favor of `upload_endpoint` and `presign_endpoint` plugins (@janko)
|
346
788
|
|
347
|
-
## 2.10.0 (2018-03-28)
|
789
|
+
## 2.10.0 (2018-03-28) [[release notes]](https://shrinerb.com/docs/release_notes/2.10.0)
|
348
790
|
|
349
791
|
* Add `:fastimage` analyzer to `determine_mime_type` plugin (@mokolabs)
|
350
792
|
|
@@ -366,7 +808,7 @@
|
|
366
808
|
|
367
809
|
* Inherit the logger on subclassing `Shrine` and make it shared across subclasses (@hmistry)
|
368
810
|
|
369
|
-
## 2.9.0 (2018-01-27)
|
811
|
+
## 2.9.0 (2018-01-27) [[release notes]](https://shrinerb.com/docs/release_notes/2.9.0)
|
370
812
|
|
371
813
|
* Support arrays of files in `versions` plugin (@janko)
|
372
814
|
|
@@ -390,7 +832,7 @@
|
|
390
832
|
|
391
833
|
* Allow passing options to `Model#<attachment>_attacher` for overriding `Attacher` options (@janko)
|
392
834
|
|
393
|
-
## 2.8.0 (2017-10-11)
|
835
|
+
## 2.8.0 (2017-10-11) [[release notes]](https://shrinerb.com/docs/release_notes/2.8.0)
|
394
836
|
|
395
837
|
* Expand relative directory paths when initializing `Storage::FileSystem` (@janko)
|
396
838
|
|
@@ -420,7 +862,7 @@
|
|
420
862
|
|
421
863
|
* Update `direct_upload` plugin to support Roda 3 (@janko)
|
422
864
|
|
423
|
-
## 2.7.0 (2017-09-11)
|
865
|
+
## 2.7.0 (2017-09-11) [[release notes]](https://shrinerb.com/docs/release_notes/2.7.0)
|
424
866
|
|
425
867
|
* Deprecate the `Shrine::DownloadEndpoint` constant over `Shrine.download_endpoint` (@janko)
|
426
868
|
|
@@ -488,11 +930,11 @@
|
|
488
930
|
|
489
931
|
* Don't add a newline at the end of the base64-formatted signature (@janko)
|
490
932
|
|
491
|
-
## 2.6.1 (2017-04-12)
|
933
|
+
## 2.6.1 (2017-04-12) [[release notes]](https://shrinerb.com/docs/release_notes/2.6.1)
|
492
934
|
|
493
935
|
* Fix `download_endpoint` returning incorrect reponse body in some cases (@janko)
|
494
936
|
|
495
|
-
## 2.6.0 (2017-04-04)
|
937
|
+
## 2.6.0 (2017-04-04) [[release notes]](https://shrinerb.com/docs/release_notes/2.6.0)
|
496
938
|
|
497
939
|
* Make `Shrine::Storage::FileSystem#path` public which returns path to the file as a `Pathname` object (@janko)
|
498
940
|
|
@@ -564,7 +1006,7 @@
|
|
564
1006
|
|
565
1007
|
* Raise `Shrine::Error` when `Shrine#generate_location` returns nil (@janko)
|
566
1008
|
|
567
|
-
## 2.5.0 (2016-11-11)
|
1009
|
+
## 2.5.0 (2016-11-11) [[release notes]](https://shrinerb.com/docs/release_notes/2.5.0)
|
568
1010
|
|
569
1011
|
* Add `Attacher.default_url` as the idiomatic way of declaring default URLs (@janko)
|
570
1012
|
|
@@ -590,7 +1032,7 @@
|
|
590
1032
|
|
591
1033
|
* Make it possible to extract multiple metadata values at once with the `add_metadata` plugin (@janko)
|
592
1034
|
|
593
|
-
## 2.4.1 (2016-10-17)
|
1035
|
+
## 2.4.1 (2016-10-17) [[release notes]](https://shrinerb.com/docs/release_notes/2.4.1)
|
594
1036
|
|
595
1037
|
* Move back JSON serialization from `Attacher#write` to `Attacher#_set` (@janko)
|
596
1038
|
|
@@ -600,7 +1042,7 @@
|
|
600
1042
|
|
601
1043
|
* In `UploadedFile#download` use extension from `#original_filename` if `#id` doesn't have it (@janko)
|
602
1044
|
|
603
|
-
## 2.4.0 (2016-10-11)
|
1045
|
+
## 2.4.0 (2016-10-11) [[release notes]](https://shrinerb.com/docs/release_notes/2.4.0)
|
604
1046
|
|
605
1047
|
* Add `#convert_before_write` and `#convert_after_read` on the Attacher for data attribute conversion (@janko)
|
606
1048
|
|
@@ -636,11 +1078,11 @@
|
|
636
1078
|
|
637
1079
|
* Override `#to_s` in `Shrine::Attachment` for better introspection with `puts` (@janko)
|
638
1080
|
|
639
|
-
## 2.3.1 (2016-09-01)
|
1081
|
+
## 2.3.1 (2016-09-01) [[release notes]](https://shrinerb.com/docs/release_notes/2.3.1)
|
640
1082
|
|
641
1083
|
* Don't change permissions of existing directories in FileSystem storage (@janko)
|
642
1084
|
|
643
|
-
## 2.3.0 (2016-08-27)
|
1085
|
+
## 2.3.0 (2016-08-27) [[release notes]](https://shrinerb.com/docs/release_notes/2.3.0)
|
644
1086
|
|
645
1087
|
* Prevent client from caching the presign response in direct_upload plugin (@janko)
|
646
1088
|
|
@@ -666,7 +1108,7 @@
|
|
666
1108
|
|
667
1109
|
* Add `:directory_permissions` to `Storage::FileSystem` (@janko)
|
668
1110
|
|
669
|
-
## 2.2.0 (2016-07-29)
|
1111
|
+
## 2.2.0 (2016-07-29) [[release notes]](https://shrinerb.com/docs/release_notes/2.2.0)
|
670
1112
|
|
671
1113
|
* Soft deprecate `:phase` over `:action` in `context` (@janko)
|
672
1114
|
|
@@ -698,11 +1140,11 @@
|
|
698
1140
|
|
699
1141
|
* Avoid an additional HEAD request to determine content length in multipart S3 copy (@janko)
|
700
1142
|
|
701
|
-
## 2.1.1 (2016-07-14)
|
1143
|
+
## 2.1.1 (2016-07-14) [[release notes]](https://shrinerb.com/docs/release_notes/2.1.1)
|
702
1144
|
|
703
1145
|
* Fix `S3#open` throwing a NameError if `net/http` isn't required (@janko)
|
704
1146
|
|
705
|
-
## 2.1.0 (2016-06-27)
|
1147
|
+
## 2.1.0 (2016-06-27) [[release notes]](https://shrinerb.com/docs/release_notes/2.1.0)
|
706
1148
|
|
707
1149
|
* Remove `:names` from versions plugin, and deprecate generating versions in :cache phase (@janko)
|
708
1150
|
|
@@ -718,11 +1160,11 @@
|
|
718
1160
|
|
719
1161
|
* Deprecate `#cached_<attachment>_data=` over using `<attachment>` for the hidden field (@janko)
|
720
1162
|
|
721
|
-
## 2.0.1 (2016-05-30)
|
1163
|
+
## 2.0.1 (2016-05-30) [[release notes]](https://shrinerb.com/docs/release_notes/2.0.1)
|
722
1164
|
|
723
1165
|
* Don't override previously set default_url in versions plugin (@janko)
|
724
1166
|
|
725
|
-
## 2.0.0 (2016-05-19)
|
1167
|
+
## 2.0.0 (2016-05-19) [[release notes]](https://shrinerb.com/docs/release_notes/2.0.0)
|
726
1168
|
|
727
1169
|
* Include query parameters in CDN-ed S3 URLs, making them work for private objects (@janko)
|
728
1170
|
|
@@ -802,17 +1244,17 @@
|
|
802
1244
|
|
803
1245
|
* Deprecate loading the backgrounding plugin through the old "background_helpers" alias (@janko)
|
804
1246
|
|
805
|
-
## 1.4.2 (2016-04-19)
|
1247
|
+
## 1.4.2 (2016-04-19) [[release notes]](https://shrinerb.com/docs/release_notes/1.4.2)
|
806
1248
|
|
807
1249
|
* Removed ActiveRecord's automatic support for optimistic locking as it wasn't stable (@janko)
|
808
1250
|
|
809
1251
|
* Fixed record's dataset being modified after promoting preventing further updates with the same instance (@janko)
|
810
1252
|
|
811
|
-
## 1.4.1 (2016-04-18)
|
1253
|
+
## 1.4.1 (2016-04-18) [[release notes]](https://shrinerb.com/docs/release_notes/1.4.1)
|
812
1254
|
|
813
1255
|
* Bring back triggering callbacks on promote in ORM plugins, and add support for optimistic locking (@janko)
|
814
1256
|
|
815
|
-
## 1.4.0 (2016-04-15)
|
1257
|
+
## 1.4.0 (2016-04-15) [[release notes]](https://shrinerb.com/docs/release_notes/1.4.0)
|
816
1258
|
|
817
1259
|
* Return "Content-Length" response header in download_endpoint plugin (@janko)
|
818
1260
|
|
@@ -868,7 +1310,7 @@
|
|
868
1310
|
|
869
1311
|
* Fix keep_files not to spawn a background job when file will not be deleted (@janko)
|
870
1312
|
|
871
|
-
## 1.3.0 (2016-03-12)
|
1313
|
+
## 1.3.0 (2016-03-12) [[release notes]](https://shrinerb.com/docs/release_notes/1.3.0)
|
872
1314
|
|
873
1315
|
* Add `<attachment>_cached?` and `<attachment>_stored?` to migration_helpers plugin (@janko)
|
874
1316
|
|
@@ -910,7 +1352,7 @@
|
|
910
1352
|
|
911
1353
|
* Fix `NameError` when silencing "missing record" errors in backgrounding (@janko)
|
912
1354
|
|
913
|
-
## 1.2.0 (2016-01-26)
|
1355
|
+
## 1.2.0 (2016-01-26) [[release notes]](https://shrinerb.com/docs/release_notes/1.2.0)
|
914
1356
|
|
915
1357
|
* Make `Shrine::Attacher.promote` and `Shrine::Attacher.delete` return the record in backgrounding plugin (@janko)
|
916
1358
|
|
@@ -926,7 +1368,7 @@
|
|
926
1368
|
|
927
1369
|
* Make custom metadata inherited from uploaded files and make `#extract_metadata` called only on caching (@janko)
|
928
1370
|
|
929
|
-
## 1.1.0 (2015-12-26)
|
1371
|
+
## 1.1.0 (2015-12-26) [[release notes]](https://shrinerb.com/docs/release_notes/1.1.0)
|
930
1372
|
|
931
1373
|
* Rename the "background_helpers" plugin to "backgrounding" (@janko)
|
932
1374
|
|
@@ -996,7 +1438,7 @@
|
|
996
1438
|
|
997
1439
|
* Reduce length of URLs generated with pretty_location plugin (@gshaw)
|
998
1440
|
|
999
|
-
## 1.0.0 (2015-11-27)
|
1441
|
+
## 1.0.0 (2015-11-27) [[release notes]](https://shrinerb.com/docs/release_notes/1.0.0)
|
1000
1442
|
|
1001
1443
|
* Improve Windows compatibility in the FileSystem storage (@janko)
|
1002
1444
|
|