Ecosyste.ms: OpenCollective
An open API service for software projects hosted on Open Collective.
github.com/shrinerb/shrine
File Attachment toolkit for Ruby applications
https://github.com/shrinerb/shrine
a8d78a1d49fa4a8ad13779a0a30713ebdedbdaa4 authored almost 8 years ago by Janko Marohnić <[email protected]>
Fixes #149
4cc08f4c98a67bef0356fed644e5ecc431fd65d0 authored almost 8 years ago by Janko Marohnić <[email protected]>
We currently expose Storage::S3#s3 as the only way to retrieved the
configured Aws instance, in ...
856466eeff209594803a41389db2610b92dad187 authored almost 8 years ago by Janko Marohnić <[email protected]>
8ae45913c969615ee209e6c704b12ea074bb2aea authored almost 8 years ago by Janko Marohnić <[email protected]>
0f84b45616fa355b9732953783cc81ce68d6330b authored almost 8 years ago by Janko Marohnić <[email protected]>
The delete_raw plugin was intended and documented to delete any file
objects that are uploaded. ...
Plain deprecation message can easily get lost in other logs, so we
emphasize the deprecation war...
This file is about migrating from Paperclip to Shrine.
In one sentence, however, documentatio...
fe29f628b35f7971b038d96363010ca8c3c0dcac authored almost 8 years ago by Daniel Powell <[email protected]>e504409f46dc29fd376faad236eb0ab2462ba022 authored almost 8 years ago by Janko Marohnić <[email protected]>
88edc193f88f78de2f1e955a3fbaee43ebfb63b4 authored almost 8 years ago by Janko Marohnić <[email protected]>
Fixes #139
4b49a405190c12175313970d0104f7a6cd1f9c69 authored almost 8 years ago by Janko Marohnić <[email protected]>
The only way to make sure that all features are working each validation
method is that we write ...
289ca4124af8164839bd63cee1df4cd0af679fd6 authored almost 8 years ago by Janko Marohnić <[email protected]>
We are using Tempfile in `UploadedFile#download` in lib/shrine.rb, but
we weren't requiring the ...
Fixes #131
07f4c90f63af0c5479ecf47b86db541964343041 authored almost 8 years ago by Janko Marohnić <[email protected]>1ba22ea93e63248222a88a6bd2d19eca3cd6206e authored about 8 years ago by Janko Marohnić <[email protected]>
09251a385694a4f25e12cf827099e5fb4d677fb1 authored about 8 years ago by Bruno Wego <[email protected]>
Fixes #117
38714e32bde27551f2fbbd80bfdd63570c35a713 authored about 8 years ago by Janko Marohnić <[email protected]>
If someone uploads a malformed image for which extracting dimensions
fails and remains nil, we d...
Shrine currently supports regexes in type/extension
whitelists/blacklists in `validation_helpers...
Blacklists are normally used for uploads of files that would be
malicious to the storage. In thi...
aaf4234edb649d8a0e5e17f20ba1759968653524 authored about 8 years ago by Janko Marohnić <[email protected]>
There is no need to load the Benchmark standard library only for using
`Benchmark.realtime` - we...
The purpose of the `remove_invalid` plugin is to remove new files that
have been uploaded by the...
Previously this logic was in Attacher#assign, because historically the
way that you would handle...
The Attacher#attached? method returns whether the attachment has
changed, in other words when th...
50ce05ae842a8ff9ab5087d70ca232b66c3215c0 authored about 8 years ago by Janko Marohnić <[email protected]>
The ORM plugins call `Attacher#finalize` under the condition that
`Attacher#changed?` returns tr...
This makes it much easier to fetch the S3 object for custom logic.
976d6baca31cce62f833500aecc5961a94171f74 authored about 8 years ago by Janko Marohnić <[email protected]>
Running Shrine::Storage::Linter is slow, since it tests each storage
method. Because we are runn...
As explained in [0], aws-sdk autoloads its components to keep the load
time low. That isn't enti...
d41496db150ce31682ed55e2b14e9d16a525acd4 authored about 8 years ago by Janko Marohnić <[email protected]>
f855aca252913259f168ebc75e0723c350ea4e3a authored about 8 years ago by Hal M. Spitz <[email protected]>
Since user can override `Shrine#generate_location`, it can happen that
due to a mistake in writi...
90b9a4ed301ff778a6b65b51766ff058fca915c9 authored about 8 years ago by Janko Marohnić <[email protected]>
Previously the way to declare the default URL was
plugin :default_url do |context|
# ...
...
Previously loading the `rack_file` plugin would enable the attacher to
accept Rack uploaded file...
07d6338ab78538b6fed615b3fe678cf7436f7aaf authored about 8 years ago by Janko Marohnić <[email protected]>
7996cf887868ff64e92613b976389cefa858e998 authored about 8 years ago by Janko Marohnić <[email protected]>
Sometimes it can happen that, due to a mistake in writing the processing
code, a hash of version...
edbc3b07681c30f9ebdbda51edd4316c1a653d76 authored about 8 years ago by Janko Marohnić <[email protected]>
Previously the backgrounding plugin only worked for model instances that
represent database reco...
f01e820127adcba37be1910c63ffde9537a74147 authored about 8 years ago by Janko Marohnić <[email protected]>
42a433190c0fcb1fa99472ff5dacb67623e630b2 authored about 8 years ago by Janko Marohnić <[email protected]>
Sometimes we want to do certain validations only if another validation
was successful. For examp...
c9681b883331138d275b6e9989a66bb904591900 authored about 8 years ago by Janko Marohnić <[email protected]>
1b6daf3a597ac932194d744f93b57c4b84e5a8eb authored about 8 years ago by Janko Marohnić <[email protected]>
46ce1fc308ef155a4583a2e0c17758b87a233ba8 authored about 8 years ago by Janko Marohnić <[email protected]>
In Shrine 3 the Tempile returned in S3#download won't have
`#content_type` anymore, so we should...
8a8bf559d232eb8093db00fd7a9577e0b18b5d2e authored about 8 years ago by Janko Marohnić <[email protected]>
a062068a0b396763f1fe331b318955eaa5c6810b authored about 8 years ago by Jonas Heinrich <[email protected]>
87ce874a9f71bc02bb93a17c34a3383db4a90248 authored about 8 years ago by Janko Marohnić <[email protected]>
The point of `remove_invalid` plugin is, when the assigned file is
invalid, to deassign the file...
It can happen that someone sends a JSON representation of the uploaded
file with a key missing o...
e5d43fbe8fba3d057c80ac66784737eaa9898634 authored about 8 years ago by Janko Marohnić <[email protected]>
c503106eecfc9dec3c67d05bc7f0bff0b8559d45 authored about 8 years ago by Janko Marohnić <[email protected]>
4729e6d8dac77c9bbccfd25af7ecb9e0642ec9bf authored about 8 years ago by Janko Marohnić <[email protected]>
aee0f3c9a10abfa6cf7ae92089680092cd708fe8 authored about 8 years ago by Janko Marohnić <[email protected]>
2775ec25c126b3e260aebf8c210ef16ec80e11a3 authored about 8 years ago by Jonas Heinrich <[email protected]>
When versions are processed in a background job, requesting the version
URL via `Attacher#url` b...
c517e594e3fea1e9e0b87c2f914820fd053d45c2 authored about 8 years ago by Janko Marohnić <[email protected]>
Using a custom id generated by `SecureRandom.hex` breaks tests for
GridFS storage, since Mongo r...
After we deprecated this method, the storage linter wasn't testing it
anymore, so our tests didn...
Some tools extract multiple metadata values at once (streamio-ffmpeg,
MiniMagick etc). Previousl...
We add #dimensions method to UploadedFile just as a convenient way of
fetching both dimensions a...
ea3e106238cded01756f19b62cd530eb6e025433 authored about 8 years ago by Janko Marohnić <[email protected]>
ce5e2a16b5d347b2b64f9f21960ba2a043338d72 authored about 8 years ago by Janko Marohnić <[email protected]>
ed7c7b65ee39374d3b7fa21fafd54be858568035 authored about 8 years ago by Janko Marohnić <[email protected]>
a88bfb4fd52bb9f5a43438e511f7b7f3f9ba0c9d authored about 8 years ago by Janko Marohnić <[email protected]>
00efae8a39326e8b838bd2ab859b274df1ad3a13 authored about 8 years ago by Janko Marohnić <[email protected]>
fea4b245f66208b1256274cbd2c4db10a96cf996 authored about 8 years ago by Janko Marohnić <[email protected]>
Prior to version 2.4.0, the JSON conversion of data was performed in
Attacher#_set. In Shrine 2....
No other reason other than that it's shorter.
c5ca7449bfb4cb0da7601e1189ba7603ed24be09 authored about 8 years ago by Janko Marohnić <[email protected]>
Previously if the assigned file was invalid, it would get deleted and
`nil` will get assigned in...
fa23d77840ba0d1722e3518776fc8d3fe4bb859d authored about 8 years ago by Janko Marohnić <[email protected]>
88921f8fc7fe7a5a56a01722d06ca9ba27b25d9e authored about 8 years ago by Janko Marohnić <[email protected]>
Currently each class RDoc file is linking to the containing file RDoc,
which is always empty. Th...
I've never managed to automatize website publishing via `git subtree`. I
probably will at some p...
ad88400189a81145730bb989a0133adc42bfc879 authored about 8 years ago by Janko Marohnić <[email protected]>
We don't need to use it, we can create an empty Tempfile directly.
5396d29825444b0b317e452bea2552471acf2348 authored about 8 years ago by Janko Marohnić <[email protected]>
Since UploadedFile#download implements its own downloading (which is
behaviourally equivalent to...
This also accounts for the case when #id doesn't have an extension, but
\#original_filename does.
1ac07ca3a111c5cdf51b2caf2dc0af077725d082 authored about 8 years ago by Janko Marohnić <[email protected]>
ae3b4ac6641cd7fef5c83dbd22c6cc866d5200a6 authored about 8 years ago by Janko Marohnić <[email protected]>
They aren't useful because they aren't actually testing that the plugins
support these columns i...
* We convert the data URI to the base64 format, because inserting binary
data into a UTF-8 str...
f93cbfe7ed24e4ccb02256f216bc29052f302673 authored over 8 years ago by Janko Marohnić <[email protected]>
9eb3b6a47533b8d8bc55da0c9d924611ff259106 authored over 8 years ago by Janko Marohnić <[email protected]>
e06e00df98bc5db7b0bd3b704afebf0244cb15be authored over 8 years ago by Janko Marohnić <[email protected]>
ad10882af85a9bd973926f487d1a05a720914302 authored over 8 years ago by Janko Marohnić <[email protected]>
76d82e6182b7a9533f35ebbe8f535953ca086f75 authored over 8 years ago by Janko Marohnić <[email protected]>
* `convert_data_write` and `convert_data_read` have been renamed to
`convert_before_write` and...
2a2ed73fe12088218e53e6e720d0464dd27bb99b authored over 8 years ago by Vladimir Lyzo <[email protected]>
This allows users to change the attribute on the model instance that
will be used for storing in...
We want to ensure that we're nowhere assuming that a column is in fact
present, and that we're l...
Unlike Sequel, which accepts values as JSON strings on a JSON/JSONB
Postgres column, ActiveRecor...
For escaping/unescaping it's enough to require just cgi/util.rb, so we
can save memory and load ...
10e1b73ece8eb047775a604ceba45d002f73153d authored over 8 years ago by Janko Marohnić <[email protected]>
Filenames can have double quotes, which clash with the double quotes in
the Content-Disposition ...