shrine 2.19.3 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +523 -41
- data/LICENSE.txt +1 -1
- data/README.md +83 -979
- 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 +103 -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 +1156 -0
- data/doc/metadata.md +190 -109
- data/doc/multiple_files.md +93 -30
- 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 +186 -101
- data/doc/plugins/derivatives.md +839 -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 +16 -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 +188 -170
- 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 +5 -1
- 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/release_notes/3.5.0.md +63 -0
- data/doc/release_notes/3.6.0.md +23 -0
- data/doc/retrieving_uploads.md +5 -2
- 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 +122 -78
- data/doc/testing.md +141 -133
- data/doc/upgrading_to_3.md +708 -0
- data/doc/validation.md +54 -90
- data/lib/shrine/attacher.rb +292 -169
- 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 +130 -171
- data/lib/shrine/plugins/derivatives.rb +645 -0
- data/lib/shrine/plugins/determine_mime_type.rb +9 -21
- data/lib/shrine/plugins/download_endpoint.rb +118 -133
- data/lib/shrine/plugins/dynamic_storage.rb +5 -11
- data/lib/shrine/plugins/entity.rb +158 -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 +17 -20
- data/lib/shrine/plugins/instrumentation.rb +59 -43
- 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 +160 -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 +27 -28
- 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 +21 -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 +12 -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 +28 -24
- 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 +35 -58
- 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 +173 -160
- data/lib/shrine/uploaded_file.rb +32 -32
- data/lib/shrine/version.rb +3 -3
- data/lib/shrine.rb +87 -150
- data/shrine.gemspec +11 -12
- metadata +92 -82
- 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,22 +1,504 @@
|
|
|
1
|
-
##
|
|
1
|
+
## 3.6.0 (2024-04-29)
|
|
2
2
|
|
|
3
|
-
*
|
|
3
|
+
* Add Rack 3 support (@tomasc, @janko)
|
|
4
4
|
|
|
5
|
-
*
|
|
5
|
+
* Make a copy of attacher context hash when duplicating the attacher (@reidab)
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
* An uploaded file can be implicitly re-opened after it has been closed (@jrochkind)
|
|
8
8
|
|
|
9
|
-
*
|
|
9
|
+
* Add new `:copy_options` for initializing the S3 storage (@hkdahal)
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
## 3.5.0 (2023-07-06)
|
|
12
12
|
|
|
13
|
-
*
|
|
13
|
+
* Migrate website to Docusaurus v2 (@janko)
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
* `download_endpoint` – Return `400 Bad Request` response when serialized file component is invalid (@janko)
|
|
16
16
|
|
|
17
|
-
*
|
|
17
|
+
* `base` – Stop using obsolete `URI.regexp` in `UploadedFile#extension` (@y-yagi)
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
* `s3` – Add `:encoding` option to `S3#open` to be passed to `Down::ChunkedIO#initialize` (@pond)
|
|
20
|
+
|
|
21
|
+
* `s3` – Add `:max_multipart_parts` option for changing default limit of 10,000 parts (@jpl)
|
|
22
|
+
|
|
23
|
+
* `s3` – Don't inherit S3 object tags when copying from temporary to permanent storage (@jrochkind)
|
|
24
|
+
|
|
25
|
+
* `infer_extension` – Add `infer_extension` instance method to the uploader for convenience (@aried3r)
|
|
26
|
+
|
|
27
|
+
* `derivation_endpoint` – Add `:signer` plugin option for providing a custom URL signer (@thibaudgg)
|
|
28
|
+
|
|
29
|
+
* `derivatives` – Don't leak `versions_compatibility: true` setting into other uploaders (@janko)
|
|
30
|
+
|
|
31
|
+
* `derivatives` – Add `:mutex` plugin option for skipping mutex and making attacher marshallable (@janko)
|
|
32
|
+
|
|
33
|
+
* `remove_attachment` – Fix passing boolean values being broken in Ruby 3.2 (@janko)
|
|
34
|
+
|
|
35
|
+
* `model` – When duplicating a record, make the duplicated attacher reference the duplicated record (@janko)
|
|
36
|
+
|
|
37
|
+
## 3.4.0 (2021-06-14)
|
|
38
|
+
|
|
39
|
+
* `base` – Fix passing options to `Shrine.Attachment` on Ruby 3.0 (@lucianghinda)
|
|
40
|
+
|
|
41
|
+
* `determine_mime_type` – Return correct `image/svg+xml` MIME type for SVGs with `:fastimage` analyzer (@Bandes)
|
|
42
|
+
|
|
43
|
+
* `activerecord` – Fix keyword argument warning when adding errors with options (@janko)
|
|
44
|
+
|
|
45
|
+
* `entity` – Make `Attacher#read` method public (@janko)
|
|
46
|
+
|
|
47
|
+
* `entity` – Reset attachment dirty tracking in `Attacher#reload` (@janko)
|
|
48
|
+
|
|
49
|
+
* `activerecord` – Don't load the attacher on `ActiveRecord::Base#reload` if it hasn't yet been initialized (@janko)
|
|
50
|
+
|
|
51
|
+
* `sequel` – Don't load the attacher on `Sequel::Model#reload` if it hasn't yet been initialized (@janko)
|
|
52
|
+
|
|
53
|
+
## 3.3.0 (2020-10-04)
|
|
54
|
+
|
|
55
|
+
* `s3` - Support new `Aws::S3::EncryptionV2::Client` for client-side encryption (@janko)
|
|
56
|
+
|
|
57
|
+
* `derivation_endpoint` – Reduce possibility of timing attacks when comparing signatures (@esparta)
|
|
58
|
+
|
|
59
|
+
* `derivatives` – Avoid downloading the attached file when calling default no-op processor (@janko)
|
|
60
|
+
|
|
61
|
+
* `derivatives` – Add `:download` processor setting for skipping downloading source file (@jrochkind, @janko)
|
|
62
|
+
|
|
63
|
+
* `derivatives` – Copy non-file source IO objects into local file before passing them to the processor (@jrochkind)
|
|
64
|
+
|
|
65
|
+
* `sequel` – Call `Attacher#reload` in `Sequel::Model#reload`, which keeps rest of attacher state (@janko, @jrochkind)
|
|
66
|
+
|
|
67
|
+
* `activerecord` – Call `Attacher#reload` in `ActiveRecord::Base#reload`, which keeps rest of attacher state (@janko, @jrochkind)
|
|
68
|
+
|
|
69
|
+
* `add_metadata` – Add `:skip_nil` option for excluding metadata keys whose values are nil (@renchap)
|
|
70
|
+
|
|
71
|
+
* `store_dimensions` – Add `:auto_extraction` option for disabling automatically extracting dimensions on upload (@renchap)
|
|
72
|
+
|
|
73
|
+
* `mirroring` – Forward original upload options when mirroring upload (@corneverbruggen)
|
|
74
|
+
|
|
75
|
+
* `derivation_endpoint` – Apply `version` URL option in derivation endpoint (@janko)
|
|
76
|
+
|
|
77
|
+
* `remove_attachment` – Delete removed file if a new file was attached right after removal (@janko)
|
|
78
|
+
|
|
79
|
+
* `upload_endpoint` – Fix `Shrine.upload_response` not working in a Rails controller (@pldavid2)
|
|
80
|
+
|
|
81
|
+
* `presign_endpoint` – Add `OPTIONS` route that newer versions of Uppy check (@janko)
|
|
82
|
+
|
|
83
|
+
* `derivatives` – Add `:create_on_promote` option for auto-creating derivatives on promotion (@janko)
|
|
84
|
+
|
|
85
|
+
* `s3` – Add back support for client-side encryption (@janko)
|
|
86
|
+
|
|
87
|
+
* `memory` – Ensure `Memory#open` returns content in original encoding (@jrochkind)
|
|
88
|
+
|
|
89
|
+
## 3.2.2 (2020-08-05)
|
|
90
|
+
|
|
91
|
+
* `s3` – Fix `S3#open` not working on aws-sdk-core 3.104 and above (@janko)
|
|
92
|
+
|
|
93
|
+
## 3.2.1 (2020-01-12)
|
|
94
|
+
|
|
95
|
+
* `derivation_endpoint` – Use `Rack::Files` constant on Rack >= 2.1 (@janko)
|
|
96
|
+
|
|
97
|
+
* Fix Ruby 2.7 warnings regarding separation of positional and keyword arguments (@janko)
|
|
98
|
+
|
|
99
|
+
* `s3` – Make `S3#open` handle empty S3 objects (@janko)
|
|
100
|
+
|
|
101
|
+
## 3.2.0 (2019-12-17) [[release notes]](https://shrinerb.com/docs/release_notes/3.2.0)
|
|
102
|
+
|
|
103
|
+
* `validation` – Run validation on `Attacher#attach` & `Attacher#attach_cached` instead of `Attacher#change` (@janko)
|
|
104
|
+
|
|
105
|
+
* `remove_invalid` – Activate also when `Attacher#validate` is run manually (@janko)
|
|
106
|
+
|
|
107
|
+
* `remove_invalid` – Fix incompatibility with `derivatives` plugin (@janko)
|
|
108
|
+
|
|
109
|
+
* `type_predicates` – Add new plugin with convenient `UploadedFile` predicate methods based on MIME type (@janko)
|
|
110
|
+
|
|
111
|
+
* `core` – Allow assigning back current attached file data (@janko)
|
|
112
|
+
|
|
113
|
+
* `derivatives` – Fix `:derivative` value inconsistency when derivatives are being promoted (@janko)
|
|
114
|
+
|
|
115
|
+
* `add_metadata` – Add `#add_metadata` method for adding metadata to uploaded files (@janko)
|
|
116
|
+
|
|
117
|
+
* `derivatives` – Add `:io` and `:attacher` values to instrumentation event payload (@janko)
|
|
118
|
+
|
|
119
|
+
## 3.1.0 (2019-11-15) [[release notes]](https://shrinerb.com/docs/release_notes/3.1.0)
|
|
120
|
+
|
|
121
|
+
* `default_storage` – Coerce storage key to symbol in `Attacher#cache_key` & `Attacher#store_key` (@janko)
|
|
122
|
+
|
|
123
|
+
* `core` – Coerce storage key to symbol in `Attacher#cache_key` & `Attacher#store_key` (@janko)
|
|
124
|
+
|
|
125
|
+
* `add_metadata` – Define metadata methods only for the target uploader class (@janko)
|
|
126
|
+
|
|
127
|
+
* `derivatives` – Add `:storage` option to `Attacher#create_derivatives` (@janko)
|
|
128
|
+
|
|
129
|
+
* `store_dimensions` – Propagate exceptions on loading `ruby-vips` in `:vips` analyzer (@janko)
|
|
130
|
+
|
|
131
|
+
* `signature` – Allow skipping rewinding by passing `rewind: false` to `Shrine.signature` (@janko)
|
|
132
|
+
|
|
133
|
+
* `derivatives` – Add `Attacher.derivatives` alias for `Attacher.derivatives_processor` (@janko)
|
|
134
|
+
|
|
135
|
+
## 3.0.1 (2019-10-17) [[release notes]](https://shrinerb.com/docs/release_notes/3.0.1)
|
|
136
|
+
|
|
137
|
+
* `metadata_attributes` – Fix exception being raised when there is no attached file (@janko)
|
|
138
|
+
|
|
139
|
+
* `core` – Simplify `UploadedFile#inspect` output (@janko)
|
|
140
|
+
|
|
141
|
+
## 3.0.0 (2019-10-14) [[release notes]](https://shrinerb.com/docs/release_notes/3.0.0)
|
|
142
|
+
|
|
143
|
+
* `derivation_endpoint` – Pass `action: :derivation` when uploading derivation results (@janko)
|
|
144
|
+
|
|
145
|
+
* `core` – Add `Shrine::Attachment[]` shorthand for `Shrine::Attachment.new` (@janko)
|
|
146
|
+
|
|
147
|
+
* `core` – Add `Storage#delete_prefixed` method for deleting all files in specified directory (@jrochkind)
|
|
148
|
+
|
|
149
|
+
* `linter` – Return `true` in `Storage::Linter#call` so that it can be used with `assert` (@jrochkind)
|
|
150
|
+
|
|
151
|
+
* `linter` – Allow `Storage::Linter` to accept a key that will be used for testing nonexistent file (@janko)
|
|
152
|
+
|
|
153
|
+
* `core` – Infer file extension from `filename` metadata (@janko)
|
|
154
|
+
|
|
155
|
+
* `pretty_location` – Add `:class_underscore` option for underscoring class name (@Uysim)
|
|
156
|
+
|
|
157
|
+
* Update `down` dependency to `~> 5.0` (@janko)
|
|
158
|
+
|
|
159
|
+
* `multi_cache` – Add new plugin for whitelisting additional temporary storages (@janko, @jrochkind)
|
|
160
|
+
|
|
161
|
+
* `sequel` – Extract callback code into attacher methods that can be overridden (@janko)
|
|
162
|
+
|
|
163
|
+
* `activerecord` – Extract callback code into attacher methods that can be overridden (@janko)
|
|
164
|
+
|
|
165
|
+
* `derivation_endpoint` – Stop re-opening `File` objects returned in derivation result (@janko)
|
|
166
|
+
|
|
167
|
+
* `derivation_endpoint` – Allow only `File` or `Tempfile` object as derivation result (@janko)
|
|
168
|
+
|
|
169
|
+
* `download_endpoint` – Add `Shrine.download_response` for calling in controller (@janko)
|
|
170
|
+
|
|
171
|
+
* `core` – Fetch storage object lazily in `Shrine` instance (@janko)
|
|
172
|
+
|
|
173
|
+
* `mirroring` – Add new plugin for replicating uploads and deletes to other storages (@janko)
|
|
174
|
+
|
|
175
|
+
* `sequel` – Rename `:callbacks` option to `:hooks` (@janko)
|
|
176
|
+
|
|
177
|
+
* `model` – Add `Attacher#set_model` for setting model without loading attachment (@janko)
|
|
178
|
+
|
|
179
|
+
* `entity` – Add `Attacher#set_entity` for setting entity without loading attachment (@janko)
|
|
180
|
+
|
|
181
|
+
* `entity` – Define `#<name>_attacher` class method when including `Shrine::Attachment` (@janko)
|
|
182
|
+
|
|
183
|
+
* `derivation_endpoint` – Send only `:derivation` in the instrumentation event payload (@janko)
|
|
184
|
+
|
|
185
|
+
* `default_storage` – Add `Attacher.default_cache` and `Attacher.default_store` for settings (@janko)
|
|
186
|
+
|
|
187
|
+
* `default_storage` – Deprecate `record` & `name` arguments to storage block (@janko)
|
|
188
|
+
|
|
189
|
+
* `default_storage` – Evaluate storage block in context of `Attacher` instance (@janko)
|
|
190
|
+
|
|
191
|
+
* Unify persistence plugin interface (@janko)
|
|
192
|
+
|
|
193
|
+
* `upload_options` – Keep `Shrine#_upload` private (@janko)
|
|
194
|
+
|
|
195
|
+
* `infer_extension` – Keep `Shrine#basic_location` private (@janko)
|
|
196
|
+
|
|
197
|
+
* `model` – Add `#<name>_changed?` method to attachment module (@janko)
|
|
198
|
+
|
|
199
|
+
* Make it easier for plugins to define entity and model attachment methods (@janko)
|
|
200
|
+
|
|
201
|
+
* `form_assign` – Add new plugin for assigning attachment from form params without a form object (@janko)
|
|
202
|
+
|
|
203
|
+
* `derivation_endpoint` – Allow passing generic IO objects to `Derivation#upload` (@janko)
|
|
204
|
+
|
|
205
|
+
* `derivation_endpoint` – Accept additional uploader options in `Derivation#upload` (@janko)
|
|
206
|
+
|
|
207
|
+
* `derivation_endpoint` – Close the uploaded file in `Derivation#upload` (@janko)
|
|
208
|
+
|
|
209
|
+
* `core` – Stop rescuing `IO#close` exceptions in `Shrine#upload` (@janko)
|
|
210
|
+
|
|
211
|
+
* `core` – Add `:delete` option to `Shrine#upload` for deleting uploaded file (@janko)
|
|
212
|
+
|
|
213
|
+
* `s3` – Stop returning `:object` in `Down::ChunkedIO#data` in `S3#open` (@janko)
|
|
214
|
+
|
|
215
|
+
* `s3` – Eliminate `#head_object` request in `S3#open` (@janko)
|
|
216
|
+
|
|
217
|
+
* `download_endpoint` – Remove extra `Storage#exists?` check (@janko)
|
|
218
|
+
|
|
219
|
+
* `derivation_endpoint` – Add `Derivation#opened` for retrieving an opened derivation result (@janko)
|
|
220
|
+
|
|
221
|
+
* `derivation_endpoint` – Remove extra `Storage#exists?` check when `:upload` is enabled but not `:upload_redirect` (@janko)
|
|
222
|
+
|
|
223
|
+
* `derivation_endpoint` - Don't pass source `UploadedFile` object when `:download` is `false` (@janko)
|
|
224
|
+
|
|
225
|
+
* `derivation_endpoint` – Remove `:include_uploaded_file` option (@janko)
|
|
226
|
+
|
|
227
|
+
* `derivation_endpoint` – Evaluate derivation block in context of `Shrine::Derivation` (@janko)
|
|
228
|
+
|
|
229
|
+
* `derivation_endpoint` – Remove `:download_errors` option (@janko)
|
|
230
|
+
|
|
231
|
+
* `memory` – Raise `Shrine::FileNotFound` on nonexistent file in `Memory#open` (@janko)
|
|
232
|
+
|
|
233
|
+
* `file_system` – Raise `Shrine::FileNotFound` on nonexistent file in `FileSystem#open` (@janko)
|
|
234
|
+
|
|
235
|
+
* `s3` – Raise `Shrine::FileNotFound` on nonexistent object in `S3#open` (@janko)
|
|
236
|
+
|
|
237
|
+
* `core` – Add `Shrine::FileNotFound` exception and require storages to raise it on `Storage#open` (janko)
|
|
238
|
+
|
|
239
|
+
* `instrumentation` – Remove `:metadata` from `:options` in `metadata.shrine` event (@janko)
|
|
240
|
+
|
|
241
|
+
* `instrumentation` – Remove `:location`, `:upload_options` and `:metadata` from `:options` in `upload.shrine` event (@janko)
|
|
242
|
+
|
|
243
|
+
* `instrumentation` – Add `:metadata` to the `upload.shrine` event (@janko)
|
|
244
|
+
|
|
245
|
+
* `download_endpoint` – Drop support for legacy `/:storage/:id` URLs (@janko)
|
|
246
|
+
|
|
247
|
+
* `core` – In `UploadedFile#==` require files to be of the same class (@janko)
|
|
248
|
+
|
|
249
|
+
* `core` – Add `:close` option to `Shrine#upload` for preventing closing file after upload (@janko)
|
|
250
|
+
|
|
251
|
+
* `memory` – Add `Shrine::Storage::Memory` from `shrine-memory` gem (@janko)
|
|
252
|
+
|
|
253
|
+
* `default_url_options` – Rename to just `url_options` (@janko)
|
|
254
|
+
|
|
255
|
+
* `delete_raw` – Deprecate plugin in favour of `derivatives` (@janko)
|
|
256
|
+
|
|
257
|
+
* `recache` – Deprecate plugin in favour of `derivatives` (@janko)
|
|
258
|
+
|
|
259
|
+
* `processing` – Deprecate plugin in favour of `derivatives` (@janko)
|
|
260
|
+
|
|
261
|
+
* `versions` – Deprecate plugin in favour of `derivatives` (@janko)
|
|
262
|
+
|
|
263
|
+
* `derivatives` – Add new plugin for storing processed files (@janko)
|
|
264
|
+
|
|
265
|
+
* `derivation_endpoint` – Allow using symbol and string derivation names interchangeably (@janko)
|
|
266
|
+
|
|
267
|
+
* `dynamic_storage` – Remove `Shrine.dynamic_storages` method (@janko)
|
|
268
|
+
|
|
269
|
+
* `core` – Deep duplicate `Shrine.opts` on subclassing (@janko)
|
|
270
|
+
|
|
271
|
+
* `core` – Add `Attacher#file!` which asserts that a file is attached (@janko)
|
|
272
|
+
|
|
273
|
+
* `core` – Change `Shrine.uploaded_file` to raise `ArgumentError` on invalid input (@janko)
|
|
274
|
+
|
|
275
|
+
* `module_include` – Deprecate plugin over overriding core classes directly (@janko)
|
|
276
|
+
|
|
277
|
+
* `core` – Add `Attacher#cache_key` and `Attacher#store_key` which return storage identifiers (@janko)
|
|
278
|
+
|
|
279
|
+
* `linter` – Call `Storage#open` with options as second argument (@janko)
|
|
280
|
+
|
|
281
|
+
* `core` – Allow data hash passed to `UploadedFile.new` to have symbol keys (@janko)
|
|
282
|
+
|
|
283
|
+
* `core` – Change how `Shrine::UploadedFile` sets its state from the given data hash (@janko)
|
|
284
|
+
|
|
285
|
+
* `core` – Deprecate `Storage#open` not accepting additional options (@janko)
|
|
286
|
+
|
|
287
|
+
* `refresh_metadata` – Add `Attacher#refresh_metadata!` method which integrates with `model` plugin (@janko)
|
|
288
|
+
|
|
289
|
+
* `instrumentation` – Instrument any `Storage#open` calls in a new `open.shrine` event (@janko)
|
|
290
|
+
|
|
291
|
+
* `restore_cached_data` – Forward options passed to `Attacher#attach_cached` to metadata extraction (@janko)
|
|
292
|
+
|
|
293
|
+
* `validation` – Allow skipping validations on attaching by passing `validate: false` (@janko)
|
|
294
|
+
|
|
295
|
+
* `validation` – Add `:validate` option to `Attacher#assign` or `Attacher#attach` for passing options to validation block (@janko)
|
|
296
|
+
|
|
297
|
+
* `validation` – Extract validation functionality into the new plugin (@janko)
|
|
298
|
+
|
|
299
|
+
* `upload_options` – Upload options from the block are now merged with passed options instead of replaced (@janko)
|
|
300
|
+
|
|
301
|
+
* `upload_endpoint` – Stop passing `Rack::Request` object to the uploader (@janko)
|
|
302
|
+
|
|
303
|
+
* `remote_url` – Require custom downloaders to raise `Shrine::Plugins::RemoteUrl::DownloadError` for conversion into a validation error (@janko)
|
|
304
|
+
|
|
305
|
+
* `infer_extension` – Fix compatibility with the `pretty_location` plugin (@janko)
|
|
306
|
+
|
|
307
|
+
* `presign_endpoint` – Remove deprecated `Shrine::Plugins::PresignEndpoint::App` constant (@janko)
|
|
308
|
+
|
|
309
|
+
* `keep_files` – Remove the ability to choose whether to keep only destroyed or only replaced files (@janko)
|
|
310
|
+
|
|
311
|
+
* `infer_extension` – Remove `Shrine#infer_extension` method (@janko)
|
|
312
|
+
|
|
313
|
+
* `default_url_options` – Allow overriding passed URL options by deleting them inside the block (@janko)
|
|
314
|
+
|
|
315
|
+
* `cached_attachment_data` – Rename `Attacher#read_cached` to `Attacher#cached_data` (@janko)
|
|
316
|
+
|
|
317
|
+
* `sequel` – Add `Attacher#atomic_promote` and `Attacher#atomic_persist` (@janko)
|
|
318
|
+
|
|
319
|
+
* `sequel` – Remove persistence from `Attacher#promote` (@janko)
|
|
320
|
+
|
|
321
|
+
* `activerecord` – Remove persistence from `Attacher#promote` (@janko)
|
|
322
|
+
|
|
323
|
+
* `atomic_helpers` – Add new plugin with helper methods for atomic promotion and persistence (@janko)
|
|
324
|
+
|
|
325
|
+
* `backgrounding` – Add `Attacher#promote_block` & `Attacher#destroy_block` for overriding class level blocks (@janko)
|
|
326
|
+
|
|
327
|
+
* `backgrounding` – Add `Attacher.promote_block` & `Attacher.destroy_block` on class level (@janko)
|
|
328
|
+
|
|
329
|
+
* `backgrounding` – Remove overriding `Attacher#swap` with atomic promotion (@janko)
|
|
330
|
+
|
|
331
|
+
* `backgrounding` – Remove `Attacher.promote`, `Attacher.delete`, `Attacher.dump`, `Attacher#dump`, `Attacher.load`, `Attacher.load_record` (@janko)
|
|
332
|
+
|
|
333
|
+
* `model` – Allow disabling caching to temporary storage on assignment (@janko)
|
|
334
|
+
|
|
335
|
+
* `model` – Add `Attacher.from_model`, `Attacher#write` (@janko)
|
|
336
|
+
|
|
337
|
+
* `model` – Add new plugin for integrating with mutable structs (@janko)
|
|
338
|
+
|
|
339
|
+
* `entity` – Add `Attacher.from_entity`, `Attacher#reload`, `Attacher#column_values`, `Attacher#attribute` (@janko)
|
|
340
|
+
|
|
341
|
+
* `entity` – Add new plugin for integrating with immutable structs (@janko)
|
|
342
|
+
|
|
343
|
+
* `column` – Allow changing column serializer from default `JSON` library (@janko)
|
|
344
|
+
|
|
345
|
+
* `column` – Add `Attacher#column_data` and `Attacher.from_column` methods (@janko)
|
|
346
|
+
|
|
347
|
+
* `column` – Add new plugin for (de)serializing attacher data (@janko)
|
|
348
|
+
|
|
349
|
+
* `attachment` – Removed any default attachment methods (@janko)
|
|
350
|
+
|
|
351
|
+
* `core` – Require context hash passed as second argument to `Shrine#upload` to have symbol keys (@janko)
|
|
352
|
+
|
|
353
|
+
* `core` – Change `Shrine.uploaded_file` not to yield files anymore (@janko)
|
|
354
|
+
|
|
355
|
+
* `core` – Allow `Shrine.uploaded_file` to accept file data hashes with symbol keys (@janko)
|
|
356
|
+
|
|
357
|
+
* `core` – Remove `Shrine#uploaded?`
|
|
358
|
+
|
|
359
|
+
* `core` – Remove `Shrine#delete`, `Shrine#_delete`, `Shrine#remove` (@janko)
|
|
360
|
+
|
|
361
|
+
* `core` – Remove `Shrine#store`, `Shrine#_store`, `Shrine#put`, `Shrine#copy` (@janko)
|
|
362
|
+
|
|
363
|
+
* `core` – Remove `Shrine#processed`, `Shrine#process` (@janko)
|
|
364
|
+
|
|
365
|
+
* `core` – Don't pass `:phase` anymore on uploads (@janko)
|
|
366
|
+
|
|
367
|
+
* `core` – Read attachment from the record attribute only on initialization (@janko)
|
|
368
|
+
|
|
369
|
+
* `core` – Don't require a temporary storage (@janko)
|
|
370
|
+
|
|
371
|
+
* `core` – Add `Attacher#data` and `Attacher.from_data` for dumping to and loading from a Hash (@janko)
|
|
372
|
+
|
|
373
|
+
* `core` – Change `Attacher#assign` to raise exception when non-cached file is assigned (@janko)
|
|
374
|
+
|
|
375
|
+
* `core` – Enable `Attacher#assign` to accept cached file data as a Hash (@janko)
|
|
376
|
+
|
|
377
|
+
* `core` – Add `Attacher#file` alias for `Attacher#get` (@janko)
|
|
378
|
+
|
|
379
|
+
* `core` – Change `Attacher#attached?` to return whether a file is attached (@janko)
|
|
380
|
+
|
|
381
|
+
* `core` – Change `Attacher#promote` to always only save promoted file in memory (@janko)
|
|
382
|
+
|
|
383
|
+
* `core` – Rename `Attacher#replace` to `Attacher#destroy_previous` (@janko)
|
|
384
|
+
|
|
385
|
+
* `core` – Remove `Attacher#_promote` and `Attacher#_delete`, add `Attacher#promote_cached` and `Attacher#destroy_attached` (@janko)
|
|
386
|
+
|
|
387
|
+
* `core` – Rename `Attacher#set` and `Attacher#_set` to `Attacher#change` and `Attacher#set` (@janko)
|
|
388
|
+
|
|
389
|
+
* `core` – Remove `Attacher#cache!` and `Attacher#store!`, add `Attacher#upload` (@janko)
|
|
390
|
+
|
|
391
|
+
* `core` – Rename `Attacher#validate_block` to `Attacher#_validate` (@janko)
|
|
392
|
+
|
|
393
|
+
* `core` – Add `Attacher#attach`, `Attacher#attach_cached`, extracted from `Attacher#assign` (@janko)
|
|
394
|
+
|
|
395
|
+
* `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)
|
|
396
|
+
|
|
397
|
+
* `core` – Change `Attacher.new` to not accept a model anymore (@janko)
|
|
398
|
+
|
|
399
|
+
* `delete_promoted` – Remove plugin (@janko)
|
|
400
|
+
|
|
401
|
+
* `parsed_json` – Remove plugin (@janko)
|
|
402
|
+
|
|
403
|
+
* `parallelize` – Remove plugin (@janko)
|
|
404
|
+
|
|
405
|
+
* `hooks` – Remove plugin (@janko)
|
|
406
|
+
|
|
407
|
+
* `core` – Remove deprecated `Shrine::IO_METHODS` constant (@janko)
|
|
408
|
+
|
|
409
|
+
* `s3` – Replace source object metadata when copying a file from S3 (@janko)
|
|
410
|
+
|
|
411
|
+
* `core` – Change `UploadedFile#storage_key` to return a Symbol instead of a String (@janko)
|
|
412
|
+
|
|
413
|
+
* `infer_extension` – Make `:mini_mime` the default analyzer (@janko)
|
|
414
|
+
|
|
415
|
+
* Bring back Ruby 2.3 support (@janko)
|
|
416
|
+
|
|
417
|
+
* `versions` – Remove deprecated `:version_names`, `Shrine.version_names` and `Shrine.version?` (@janko)
|
|
418
|
+
|
|
419
|
+
* `validation_helpers` – Remove support for regexes in MIME type or extension validations (@janko)
|
|
420
|
+
|
|
421
|
+
* `validation_helpers` – Don't require `#width` and `#height` methods to be defined on `UploadedFile` (@janko)
|
|
422
|
+
|
|
423
|
+
* `validation_helpers` – Fail dimensions validations when `width` or `height` metadata is missing (@janko)
|
|
424
|
+
|
|
425
|
+
* `upload_endpoint` – Remove deprecated `Shrine::Plugins::UploadEndpoint::App` constant (@janko)
|
|
426
|
+
|
|
427
|
+
* `determine_mime_type` – Remove `Shrine#mime_type_analyzers` method (@janko)
|
|
428
|
+
|
|
429
|
+
* `store_dimensions` – Remove `Shrine#extract_dimensions` and `Shrine#dimensions_analyzers` methods (@janko)
|
|
430
|
+
|
|
431
|
+
* `rack_file` – Remove deprecated `Shrine::Plugins::RackFile::UploadedFile` constant (@janko)
|
|
432
|
+
|
|
433
|
+
* `rack_file` – Drop support for passing file hash to `Shrine#upload` and `Shrine#store` (@janko)
|
|
434
|
+
|
|
435
|
+
* `download_endpoint` – Move `Shrine::Plugins::DownloadEndpoint::App` into `Shrine::DownloadEndpoint` (@janko)
|
|
436
|
+
|
|
437
|
+
* `download_endpoint` – Remove deprecated `Shrine::DownloadEndpoint` constant (@janko)
|
|
438
|
+
|
|
439
|
+
* `download_endpoint` – Remove deprecated `:storages` option (@janko)
|
|
440
|
+
|
|
441
|
+
* `determine_mime_type` – Remove deprecated `:default` analyzer alias (@janko)
|
|
442
|
+
|
|
443
|
+
* `default_url` – Remove deprecated block argument when loading the plugin (@janko)
|
|
444
|
+
|
|
445
|
+
* `data_uri` – Remove deprecated `Shrine::Plugins::DataUri::DataFile` constant (@janko)
|
|
446
|
+
|
|
447
|
+
* `data_uri` – Remove deprecated `:filename` plugin option (@janko)
|
|
448
|
+
|
|
449
|
+
* `cached_attachment_data` – Remove deprecated model setter (@janko)
|
|
450
|
+
|
|
451
|
+
* `file_system` – Remove deprecated `:older_than` option in `FileSystem#clear!` (@janko)
|
|
452
|
+
|
|
453
|
+
* `file_system` – Don't accept a block anymore in `FileSystem#open` (@janko)
|
|
454
|
+
|
|
455
|
+
* `file_system` – Remove deprecated `FileSystem#download` method (@janko)
|
|
456
|
+
|
|
457
|
+
* `file_system` – Make `FileSystem#movable?` and `FileSystem#move` methods private (@janko)
|
|
458
|
+
|
|
459
|
+
* `file_system` – Remove deprecation warning on unrecognized options in `FileSystem#upload` (@janko)
|
|
460
|
+
|
|
461
|
+
* `file_system` – Remove deprecated `:host` option for `FileSystem#initialize` (@janko)
|
|
462
|
+
|
|
463
|
+
* `moving` – Remove deprecated plugin (@janko)
|
|
464
|
+
|
|
465
|
+
* `multi_delete` – Remove deprecated plugin (@janko)
|
|
466
|
+
|
|
467
|
+
* `direct_upload` – Remove deprecated plugin (@janko)
|
|
468
|
+
|
|
469
|
+
* `backup` – Remove deprecated plugin (@janko)
|
|
470
|
+
|
|
471
|
+
* `background_helpers` – Remove deprecated plugin (@janko)
|
|
472
|
+
|
|
473
|
+
* `migration_helpers` – Remove deprecated plugin (@janko)
|
|
474
|
+
|
|
475
|
+
* `copy` – Remove deprecated plugin (@janko)
|
|
476
|
+
|
|
477
|
+
* `logging` – Remove deprecated plugin (@janko)
|
|
478
|
+
|
|
479
|
+
* `s3` – Remove deprecated `S3#download` method (@janko)
|
|
480
|
+
|
|
481
|
+
* `s3` – Remove deprecated `S3#stream` method (@janko)
|
|
482
|
+
|
|
483
|
+
* `presign_endpoint` – Drop support for presign objects that don't respond to `#to_h` (@janko)
|
|
484
|
+
|
|
485
|
+
* `s3` – Return a Hash in `S3#presign` when method is POST (@janko)
|
|
486
|
+
|
|
487
|
+
* `s3` – Remove `:download` option in `S3#url` (@janko)
|
|
488
|
+
|
|
489
|
+
* `s3` – Remove support for non URI-escaped content disposition values (@janko)
|
|
490
|
+
|
|
491
|
+
* `s3` – Remove `S3#s3` method (@janko)
|
|
492
|
+
|
|
493
|
+
* `s3` – Remove support for specifying `:multipart_threshold` as an integer (@janko)
|
|
494
|
+
|
|
495
|
+
* `s3` – Remove `:host` option on `S3#initialize` (@janko)
|
|
496
|
+
|
|
497
|
+
* `s3` – Drop support for `aws-sdk-s3` versions lower than 1.14 (@janko)
|
|
498
|
+
|
|
499
|
+
* `s3` – Drop support for `aws-sdk` 2.x (@janko)
|
|
500
|
+
|
|
501
|
+
## 2.19.0 (2019-07-18) [[release notes]](https://shrinerb.com/docs/release_notes/2.19.0)
|
|
20
502
|
|
|
21
503
|
* `pretty_location` – Allow specifying a different identifier from `id` (@00dav00)
|
|
22
504
|
|
|
@@ -72,7 +554,7 @@
|
|
|
72
554
|
|
|
73
555
|
* `core` – Allow registering storage objects under string keys (@janko)
|
|
74
556
|
|
|
75
|
-
## 2.18.0 (2019-06-24)
|
|
557
|
+
## 2.18.0 (2019-06-24) [[release notes]](https://shrinerb.com/docs/release_notes/2.18.0)
|
|
76
558
|
|
|
77
559
|
* `core` – Add `Shrine.upload` method as a shorthand for `Shrine.new(...).upload(...)` (@janko)
|
|
78
560
|
|
|
@@ -96,7 +578,7 @@
|
|
|
96
578
|
|
|
97
579
|
* `parsed_json` – Fix overriden `Attacher#assign` not accepting second argument (@janko)
|
|
98
580
|
|
|
99
|
-
## 2.17.0 (2019-05-06)
|
|
581
|
+
## 2.17.0 (2019-05-06) [[release notes]](https://shrinerb.com/docs/release_notes/2.17.0)
|
|
100
582
|
|
|
101
583
|
* `data_uri` – Add `Attacher#assign_data_uri` which accepts additional `Shrine#upload` options (@janko)
|
|
102
584
|
|
|
@@ -146,7 +628,7 @@
|
|
|
146
628
|
|
|
147
629
|
* `parsed_json` – Accepts hashes with symbols keys (@aglushkov)
|
|
148
630
|
|
|
149
|
-
## 2.16.0 (2019-02-18)
|
|
631
|
+
## 2.16.0 (2019-02-18) [[release notes]](https://shrinerb.com/docs/release_notes/2.16.0)
|
|
150
632
|
|
|
151
633
|
* `derivation_endpoint` – Add `:upload_open_options` for download option for derivation result (@janko)
|
|
152
634
|
|
|
@@ -172,7 +654,7 @@
|
|
|
172
654
|
|
|
173
655
|
* Fix `store_dimensions` plugin making second argument in `Shrine#extract_metadata` mandatory (@jrochkind)
|
|
174
656
|
|
|
175
|
-
## 2.15.0 (2019-02-08)
|
|
657
|
+
## 2.15.0 (2019-02-08) [[release notes]](https://shrinerb.com/docs/release_notes/2.15.0)
|
|
176
658
|
|
|
177
659
|
* Add `derivation_endpoint` plugin for processing uploaded files on-the-fly (@janko)
|
|
178
660
|
|
|
@@ -182,7 +664,7 @@
|
|
|
182
664
|
|
|
183
665
|
* Yield a new File object on `Shrine.with_file` when `tempfile` plugin is loaded (@janko)
|
|
184
666
|
|
|
185
|
-
## 2.14.0 (2018-12-27)
|
|
667
|
+
## 2.14.0 (2018-12-27) [[release notes]](https://shrinerb.com/docs/release_notes/2.14.0)
|
|
186
668
|
|
|
187
669
|
* Add `tempfile` plugin for easier reusing of the same uploaded file copy on disk (@janko)
|
|
188
670
|
|
|
@@ -252,7 +734,7 @@
|
|
|
252
734
|
|
|
253
735
|
* Use a guard raise cause for `bucket` argument in S3 for an appropriate error message (@ardecvz)
|
|
254
736
|
|
|
255
|
-
## 2.13.0 (2018-11-04)
|
|
737
|
+
## 2.13.0 (2018-11-04) [[release notes]](https://shrinerb.com/docs/release_notes/2.13.0)
|
|
256
738
|
|
|
257
739
|
* Specify UTF-8 charset in `Content-Type` response header in `presign_endpoint` plugin (@janko)
|
|
258
740
|
|
|
@@ -284,7 +766,7 @@
|
|
|
284
766
|
|
|
285
767
|
* In `S3#upload` deprecate using aws-sdk-s3 lower than 1.14 when uploading IO objects of unknown size (@janko)
|
|
286
768
|
|
|
287
|
-
## 2.12.0 (2018-08-22)
|
|
769
|
+
## 2.12.0 (2018-08-22) [[release notes]](https://shrinerb.com/docs/release_notes/2.12.0)
|
|
288
770
|
|
|
289
771
|
* Ignore nil values when assigning files from a remote URL (@janko)
|
|
290
772
|
|
|
@@ -312,7 +794,7 @@
|
|
|
312
794
|
|
|
313
795
|
* Make `UploadedFile#open` always open a new IO object and close the previous one (@janko)
|
|
314
796
|
|
|
315
|
-
## 2.11.0 (2018-04-28)
|
|
797
|
+
## 2.11.0 (2018-04-28) [[release notes]](https://shrinerb.com/docs/release_notes/2.11.0)
|
|
316
798
|
|
|
317
799
|
* Add `Shrine.with_file` for temporarily converting an IO-like object into a file (@janko)
|
|
318
800
|
|
|
@@ -340,7 +822,7 @@
|
|
|
340
822
|
|
|
341
823
|
* Deprecate `direct_upload` plugin in favor of `upload_endpoint` and `presign_endpoint` plugins (@janko)
|
|
342
824
|
|
|
343
|
-
## 2.10.0 (2018-03-28)
|
|
825
|
+
## 2.10.0 (2018-03-28) [[release notes]](https://shrinerb.com/docs/release_notes/2.10.0)
|
|
344
826
|
|
|
345
827
|
* Add `:fastimage` analyzer to `determine_mime_type` plugin (@mokolabs)
|
|
346
828
|
|
|
@@ -362,7 +844,7 @@
|
|
|
362
844
|
|
|
363
845
|
* Inherit the logger on subclassing `Shrine` and make it shared across subclasses (@hmistry)
|
|
364
846
|
|
|
365
|
-
## 2.9.0 (2018-01-27)
|
|
847
|
+
## 2.9.0 (2018-01-27) [[release notes]](https://shrinerb.com/docs/release_notes/2.9.0)
|
|
366
848
|
|
|
367
849
|
* Support arrays of files in `versions` plugin (@janko)
|
|
368
850
|
|
|
@@ -386,7 +868,7 @@
|
|
|
386
868
|
|
|
387
869
|
* Allow passing options to `Model#<attachment>_attacher` for overriding `Attacher` options (@janko)
|
|
388
870
|
|
|
389
|
-
## 2.8.0 (2017-10-11)
|
|
871
|
+
## 2.8.0 (2017-10-11) [[release notes]](https://shrinerb.com/docs/release_notes/2.8.0)
|
|
390
872
|
|
|
391
873
|
* Expand relative directory paths when initializing `Storage::FileSystem` (@janko)
|
|
392
874
|
|
|
@@ -416,7 +898,7 @@
|
|
|
416
898
|
|
|
417
899
|
* Update `direct_upload` plugin to support Roda 3 (@janko)
|
|
418
900
|
|
|
419
|
-
## 2.7.0 (2017-09-11)
|
|
901
|
+
## 2.7.0 (2017-09-11) [[release notes]](https://shrinerb.com/docs/release_notes/2.7.0)
|
|
420
902
|
|
|
421
903
|
* Deprecate the `Shrine::DownloadEndpoint` constant over `Shrine.download_endpoint` (@janko)
|
|
422
904
|
|
|
@@ -484,11 +966,11 @@
|
|
|
484
966
|
|
|
485
967
|
* Don't add a newline at the end of the base64-formatted signature (@janko)
|
|
486
968
|
|
|
487
|
-
## 2.6.1 (2017-04-12)
|
|
969
|
+
## 2.6.1 (2017-04-12) [[release notes]](https://shrinerb.com/docs/release_notes/2.6.1)
|
|
488
970
|
|
|
489
971
|
* Fix `download_endpoint` returning incorrect reponse body in some cases (@janko)
|
|
490
972
|
|
|
491
|
-
## 2.6.0 (2017-04-04)
|
|
973
|
+
## 2.6.0 (2017-04-04) [[release notes]](https://shrinerb.com/docs/release_notes/2.6.0)
|
|
492
974
|
|
|
493
975
|
* Make `Shrine::Storage::FileSystem#path` public which returns path to the file as a `Pathname` object (@janko)
|
|
494
976
|
|
|
@@ -560,7 +1042,7 @@
|
|
|
560
1042
|
|
|
561
1043
|
* Raise `Shrine::Error` when `Shrine#generate_location` returns nil (@janko)
|
|
562
1044
|
|
|
563
|
-
## 2.5.0 (2016-11-11)
|
|
1045
|
+
## 2.5.0 (2016-11-11) [[release notes]](https://shrinerb.com/docs/release_notes/2.5.0)
|
|
564
1046
|
|
|
565
1047
|
* Add `Attacher.default_url` as the idiomatic way of declaring default URLs (@janko)
|
|
566
1048
|
|
|
@@ -586,7 +1068,7 @@
|
|
|
586
1068
|
|
|
587
1069
|
* Make it possible to extract multiple metadata values at once with the `add_metadata` plugin (@janko)
|
|
588
1070
|
|
|
589
|
-
## 2.4.1 (2016-10-17)
|
|
1071
|
+
## 2.4.1 (2016-10-17) [[release notes]](https://shrinerb.com/docs/release_notes/2.4.1)
|
|
590
1072
|
|
|
591
1073
|
* Move back JSON serialization from `Attacher#write` to `Attacher#_set` (@janko)
|
|
592
1074
|
|
|
@@ -596,7 +1078,7 @@
|
|
|
596
1078
|
|
|
597
1079
|
* In `UploadedFile#download` use extension from `#original_filename` if `#id` doesn't have it (@janko)
|
|
598
1080
|
|
|
599
|
-
## 2.4.0 (2016-10-11)
|
|
1081
|
+
## 2.4.0 (2016-10-11) [[release notes]](https://shrinerb.com/docs/release_notes/2.4.0)
|
|
600
1082
|
|
|
601
1083
|
* Add `#convert_before_write` and `#convert_after_read` on the Attacher for data attribute conversion (@janko)
|
|
602
1084
|
|
|
@@ -632,11 +1114,11 @@
|
|
|
632
1114
|
|
|
633
1115
|
* Override `#to_s` in `Shrine::Attachment` for better introspection with `puts` (@janko)
|
|
634
1116
|
|
|
635
|
-
## 2.3.1 (2016-09-01)
|
|
1117
|
+
## 2.3.1 (2016-09-01) [[release notes]](https://shrinerb.com/docs/release_notes/2.3.1)
|
|
636
1118
|
|
|
637
1119
|
* Don't change permissions of existing directories in FileSystem storage (@janko)
|
|
638
1120
|
|
|
639
|
-
## 2.3.0 (2016-08-27)
|
|
1121
|
+
## 2.3.0 (2016-08-27) [[release notes]](https://shrinerb.com/docs/release_notes/2.3.0)
|
|
640
1122
|
|
|
641
1123
|
* Prevent client from caching the presign response in direct_upload plugin (@janko)
|
|
642
1124
|
|
|
@@ -662,7 +1144,7 @@
|
|
|
662
1144
|
|
|
663
1145
|
* Add `:directory_permissions` to `Storage::FileSystem` (@janko)
|
|
664
1146
|
|
|
665
|
-
## 2.2.0 (2016-07-29)
|
|
1147
|
+
## 2.2.0 (2016-07-29) [[release notes]](https://shrinerb.com/docs/release_notes/2.2.0)
|
|
666
1148
|
|
|
667
1149
|
* Soft deprecate `:phase` over `:action` in `context` (@janko)
|
|
668
1150
|
|
|
@@ -694,11 +1176,11 @@
|
|
|
694
1176
|
|
|
695
1177
|
* Avoid an additional HEAD request to determine content length in multipart S3 copy (@janko)
|
|
696
1178
|
|
|
697
|
-
## 2.1.1 (2016-07-14)
|
|
1179
|
+
## 2.1.1 (2016-07-14) [[release notes]](https://shrinerb.com/docs/release_notes/2.1.1)
|
|
698
1180
|
|
|
699
1181
|
* Fix `S3#open` throwing a NameError if `net/http` isn't required (@janko)
|
|
700
1182
|
|
|
701
|
-
## 2.1.0 (2016-06-27)
|
|
1183
|
+
## 2.1.0 (2016-06-27) [[release notes]](https://shrinerb.com/docs/release_notes/2.1.0)
|
|
702
1184
|
|
|
703
1185
|
* Remove `:names` from versions plugin, and deprecate generating versions in :cache phase (@janko)
|
|
704
1186
|
|
|
@@ -714,11 +1196,11 @@
|
|
|
714
1196
|
|
|
715
1197
|
* Deprecate `#cached_<attachment>_data=` over using `<attachment>` for the hidden field (@janko)
|
|
716
1198
|
|
|
717
|
-
## 2.0.1 (2016-05-30)
|
|
1199
|
+
## 2.0.1 (2016-05-30) [[release notes]](https://shrinerb.com/docs/release_notes/2.0.1)
|
|
718
1200
|
|
|
719
1201
|
* Don't override previously set default_url in versions plugin (@janko)
|
|
720
1202
|
|
|
721
|
-
## 2.0.0 (2016-05-19)
|
|
1203
|
+
## 2.0.0 (2016-05-19) [[release notes]](https://shrinerb.com/docs/release_notes/2.0.0)
|
|
722
1204
|
|
|
723
1205
|
* Include query parameters in CDN-ed S3 URLs, making them work for private objects (@janko)
|
|
724
1206
|
|
|
@@ -798,17 +1280,17 @@
|
|
|
798
1280
|
|
|
799
1281
|
* Deprecate loading the backgrounding plugin through the old "background_helpers" alias (@janko)
|
|
800
1282
|
|
|
801
|
-
## 1.4.2 (2016-04-19)
|
|
1283
|
+
## 1.4.2 (2016-04-19) [[release notes]](https://shrinerb.com/docs/release_notes/1.4.2)
|
|
802
1284
|
|
|
803
1285
|
* Removed ActiveRecord's automatic support for optimistic locking as it wasn't stable (@janko)
|
|
804
1286
|
|
|
805
1287
|
* Fixed record's dataset being modified after promoting preventing further updates with the same instance (@janko)
|
|
806
1288
|
|
|
807
|
-
## 1.4.1 (2016-04-18)
|
|
1289
|
+
## 1.4.1 (2016-04-18) [[release notes]](https://shrinerb.com/docs/release_notes/1.4.1)
|
|
808
1290
|
|
|
809
1291
|
* Bring back triggering callbacks on promote in ORM plugins, and add support for optimistic locking (@janko)
|
|
810
1292
|
|
|
811
|
-
## 1.4.0 (2016-04-15)
|
|
1293
|
+
## 1.4.0 (2016-04-15) [[release notes]](https://shrinerb.com/docs/release_notes/1.4.0)
|
|
812
1294
|
|
|
813
1295
|
* Return "Content-Length" response header in download_endpoint plugin (@janko)
|
|
814
1296
|
|
|
@@ -864,7 +1346,7 @@
|
|
|
864
1346
|
|
|
865
1347
|
* Fix keep_files not to spawn a background job when file will not be deleted (@janko)
|
|
866
1348
|
|
|
867
|
-
## 1.3.0 (2016-03-12)
|
|
1349
|
+
## 1.3.0 (2016-03-12) [[release notes]](https://shrinerb.com/docs/release_notes/1.3.0)
|
|
868
1350
|
|
|
869
1351
|
* Add `<attachment>_cached?` and `<attachment>_stored?` to migration_helpers plugin (@janko)
|
|
870
1352
|
|
|
@@ -906,7 +1388,7 @@
|
|
|
906
1388
|
|
|
907
1389
|
* Fix `NameError` when silencing "missing record" errors in backgrounding (@janko)
|
|
908
1390
|
|
|
909
|
-
## 1.2.0 (2016-01-26)
|
|
1391
|
+
## 1.2.0 (2016-01-26) [[release notes]](https://shrinerb.com/docs/release_notes/1.2.0)
|
|
910
1392
|
|
|
911
1393
|
* Make `Shrine::Attacher.promote` and `Shrine::Attacher.delete` return the record in backgrounding plugin (@janko)
|
|
912
1394
|
|
|
@@ -922,7 +1404,7 @@
|
|
|
922
1404
|
|
|
923
1405
|
* Make custom metadata inherited from uploaded files and make `#extract_metadata` called only on caching (@janko)
|
|
924
1406
|
|
|
925
|
-
## 1.1.0 (2015-12-26)
|
|
1407
|
+
## 1.1.0 (2015-12-26) [[release notes]](https://shrinerb.com/docs/release_notes/1.1.0)
|
|
926
1408
|
|
|
927
1409
|
* Rename the "background_helpers" plugin to "backgrounding" (@janko)
|
|
928
1410
|
|
|
@@ -992,7 +1474,7 @@
|
|
|
992
1474
|
|
|
993
1475
|
* Reduce length of URLs generated with pretty_location plugin (@gshaw)
|
|
994
1476
|
|
|
995
|
-
## 1.0.0 (2015-11-27)
|
|
1477
|
+
## 1.0.0 (2015-11-27) [[release notes]](https://shrinerb.com/docs/release_notes/1.0.0)
|
|
996
1478
|
|
|
997
1479
|
* Improve Windows compatibility in the FileSystem storage (@janko)
|
|
998
1480
|
|