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
Fixes #28
bfc43d67aff4b6e25278a4363f7051816cc589be authored about 9 years ago by Janko Marohnić <[email protected]>39b7bd93f720f203b48d04ad8c2d522e5df7517e authored about 9 years ago by Janko Marohnić <[email protected]>
7d622dc97bd96b065546d9d41170f91c36944882 authored about 9 years ago by Janko Marohnić <[email protected]>
The new name more concisely and accurately describes the plugin, because
the plugin also changes...
Not limiting removing only to cached files can cause stored files to get
deleted if validations ...
"Subdirectory" never did sound quite right and was too long, and
"prefix" is consistent with the...
f25c742032f159c8a084776716ce1c42073cab06 authored about 9 years ago by Janko Marohnić <[email protected]>
Because rack-test_app is awesome and maintained.
b452c2c3710dab09ac71b256bff2fe72be2b42d9 authored about 9 years ago by Janko Marohnić <[email protected]>55cb60f20fca2946eb3f29d0330c3067fd75cd03 authored about 9 years ago by Janko Marohnić <[email protected]>
Firstly, it's not "Fastimage", it's "FastImage", and secondly,
`FastImage.size` returns the dime...
d0eaa190ca75490b279b990e9e4441eeb57ba34a authored about 9 years ago by Janko Marohnić <[email protected]>
This does introduce a small backwards incompatibility if people were
relying that :name and :rec...
It is very unlikely that Tempfile won't be required, especially since
Rack requires it, and most...
cf02a253410784b23f0d23a60464d52b222bb0b1 authored about 9 years ago by Janko Marohnić <[email protected]>
This is a fair amount of extra code which isn't necessary to load,
because we can still achieve ...
Currently the return value of calling around_* hooks would be whatever
was returned in the corre...
Currently we exposed only the generated Rack app, which is a Proc
object. This had several probl...
1f4de0494f7dc692196aa50b48bc76e486b3ddc0 authored about 9 years ago by Janko Marohnić <[email protected]>
310d8edbc10a4f24ad064a80cba3c63e65d26570 authored about 9 years ago by Janko Marohnić <[email protected]>
a6160b79b926931144446bb5d3c76b93bb434316 authored about 9 years ago by Janko Marohnić <[email protected]>
688a2d28df82a6f85a9e8cec3d45e31d38ef9a25 authored about 9 years ago by Janko Marohnić <[email protected]>
No reason to make it frozen, that may be use cases where you would want
to modify the hash, for ...
f4df199f4e9f56f950fff4b1050285103b67f8d9 authored about 9 years ago by Janko Marohnić <[email protected]>
`object(id).get.body` is a StringIO, so instead of returning a copy of
the underlying string, we...
f1c8e59af0f5f97b6d9ea3b5eae8e9ed5ac73a08 authored about 9 years ago by Janko Marohnić <[email protected]>
d3798fc8278e4ee62b7868686d71343957d0ad71 authored about 9 years ago by Janko Marohnić <[email protected]>
The latest version didn't download the file in an optimal way. Down
works in a way that it first...
Some storages generate their own ID on upload (SQL, Flickr, GridFS) in a
way that the extension ...
If the underlying storage implements `#open` by creating Tempfiles, when
the UploadedFile is clo...
ActiveJob raises an error when we try to give it a symbol (unlike other
backgrounding libraries ...
The most efficient way of retrieving the contents of the file is to use
Storage#read, because fi...
31e6fc9cde76692709a5fbd564cfdeadb52194e9 authored about 9 years ago by Janko Marohnić <[email protected]>
903b8bf637dd42a7708d6eb88dad066eb9ff9194 authored about 9 years ago by Janko Marohnić <[email protected]>
9d54974295c4a9e510052aecf5f70e9035c18353 authored about 9 years ago by Janko Marohnić <[email protected]>
For example, a user can want to apply different S3 options to different
versions (e.g. setting `...
91781cd2839ed68d241c288d80049dba52178673 authored about 9 years ago by Janko Marohnić <[email protected]>
d1a02c5be0dce839a32369de11145df3a4bb3f4d authored about 9 years ago by Janko Marohnić <[email protected]>
27b316ffdb3aae5c7a090f109551184c0ed7c73f authored about 9 years ago by Janko Marohnić <[email protected]>
c6fb52c16e2e2dac064113389ef43084bb3c5267 authored about 9 years ago by Janko Marohnić <[email protected]>
b0e8723b1752f8f972d4eb248022dc36c9c2a927 authored about 9 years ago by Janko Marohnić <[email protected]>
5efbb5df9d2889e45a22c830be1252d196e9edf1 authored about 9 years ago by Janko Marohnić <[email protected]>
e430e4d54acf636b8993a45e89b3136797a117a2 authored about 9 years ago by Janko Marohnić <[email protected]>
ea1a64229f57564409ecae63135b1f3281ba9328 authored about 9 years ago by Janko Marohnić <[email protected]>
Some storages modify the id after uploading, so we make the linter
register it.
950ac39d9a9dda9c8d9fcc5ae6e6d9866fd7ef0d authored about 9 years ago by Janko Marohnić <[email protected]>
04c934ef48cb4f27133672b11ae2f39ef709fd15 authored about 9 years ago by Janko Marohnić <[email protected]>
Versions older than that leave an extra opened temporary file when
downloading a URL.
4caf5d11c47d8a90585ece3ea68d1580a693c59b authored about 9 years ago by Janko Marohnić <[email protected]>
We shouldn't use `File.join` to connect host with the path, because on
Windows this will generat...
07bc79b80e938a42ee04d7475703f73fb2eb3818 authored about 9 years ago by Janko Marohnić <[email protected]>
This is for better integration with upload libraries such as Faraday and
rest-client, which sear...
8df3658176a2d362823fc4702773e03ea9dee223 authored about 9 years ago by Janko Marohnić <[email protected]>
If files are local and small, sometimes it is more performant for the
browser to render them as ...
For example the MIME type of JSON API specification,
"application/vnd.api+json", has a "+" in it...
Data URIs doesn't have to be base64 encoded (common example are for
SVGs), and we want the data_...
67d4d1d2dac449d92fd9ee1a42d17f33837fde97 authored about 9 years ago by Janko Marohnić <[email protected]>
It's strange that we're not doing this already. We want to always close
the files that we are up...
e01cb94ba57104d05756b68718961d5ddcd73d0f authored about 9 years ago by Janko Marohnić <[email protected]>
4ad4b2b9273d9c5500ec03a4495056f06131fe74 authored about 9 years ago by Janko Marohnić <[email protected]>
1fb9fea5a2e3886d23999fd27bbc0eebbd95ad29 authored about 9 years ago by Janko Marohnić <[email protected]>
07dbdd9296c48e97153ac742efdba1fa00aed54a authored about 9 years ago by Janko Marohnić <[email protected]>
Some uploaders (Cloudinary gem) automatically close the files after
uploading, and since we can'...
78a5f8c29e9a0773c2dedf27d20da4e8f04cee02 authored about 9 years ago by Janko Marohnić <[email protected]>
If a string or an array is given a range of indices which don't exist,
nil will be returned, whi...
d6b48dfd4984683fb66dcbf590efa7aea64342d5 authored about 9 years ago by Janko Marohnić <[email protected]>
Firstly we add the ability to pass a custom IO factory. This is because
some storages only accep...
Some services like Cloudinary by defaul accept uploading only images, so
in the tests for shrine...
937115c9b43a850235dabc4570dac4b85a7bf4ae authored about 9 years ago by Janko Marohnić <[email protected]>
ba4ea05fae76135d81700edff8a2f48db98acde8 authored about 9 years ago by Janko Marohnić <[email protected]>
31b7a06979c78088555469e8b0a5e02101cf5b00 authored about 9 years ago by Janko Marohnić <[email protected]>
d434f46e8cbc54dd6cab45d6f59905a0bd946d52 authored about 9 years ago by Janko Marohnić <[email protected]>
Security is about layers, this layer won't limit the filesize of files
uploaded with the form, b...
We want to print deprecation warnings only of `#default_url` returns
something, because that's w...
69f21eacb6d50163d1779e374cfd96037f96e6c2 authored about 9 years ago by Janko Marohnić <[email protected]>
b1b16d0ad0e21d00f6a0181d67b10a76e22f460e authored about 9 years ago by Janko Marohnić <[email protected]>
This is not essential functionality so we should extract it into a
separate plugin. The only iss...
* We make backed up files deleted by default, unless `delete: false` is
passed in.
* We make ...
7d3a14474fbbbf3036430b9c0baf420e191bf550 authored about 9 years ago by Janko Marohnić <[email protected]>1419ca1c4374a23dfde199a8819780ae3d45cd2d authored about 9 years ago by Janko Marohnić <[email protected]>
f6f4ecdcbcdb4b534c6fa7ff53bdd7653728eda5 authored about 9 years ago by Janko Marohnić <[email protected]>
We want to make sure that this never happens, both by the user or
internally, because that would...
412263e0775aeff39de45890e7365242b3607dc2 authored about 9 years ago by Janko Marohnić <[email protected]>
98b18bc5d3ebbc924f24163801ca83f265f41113 authored about 9 years ago by Matija Marohnić <[email protected]>
63eb7c173b9a1ead7c3140e6633cd33b61d4a569 authored about 9 years ago by Janko Marohnić <[email protected]>
161a934e2066c0fbf0ae101853dd1aca5a3556f1 authored about 9 years ago by Janko Marohnić <[email protected]>
36aa6c1de7b48d57b2e43e5ba5040e26cca13757 authored about 9 years ago by Janko Marohnić <[email protected]>
5c7c9b075a0ab4474d7ab4d1c6317c97504a4d79 authored about 9 years ago by Janko Marohnić <[email protected]>
38909047a34e3c044f54ebd3f11e0183800e3bbc authored about 9 years ago by Janko Marohnić <[email protected]>
5c1e73a6bf438a2823093366af183a15be6fd886 authored about 9 years ago by Janko Marohnić <[email protected]>
4f2b872d05e16e2da8a449b868d66eeb7ef9ec4e authored about 9 years ago by Janko Marohnić <[email protected]>
5617e064675ad44e7afdfea9b05fde4621fd5889 authored about 9 years ago by Janko Marohnić <[email protected]>
Instead of requiring that every storage rewinds the file, we can make
Shrine itself always rewin...
Now that we're not running tests on S3 anymore, we can remove the prefix
and we can now run the ...
39c045174f49236041dd1cd3f2e53a21e4170e59 authored about 9 years ago by Janko Marohnić <[email protected]>
- it allows the usage of custom endpoints for presigning files
1f41cee5ac9273ec6192776020dc817d6ffe7f5f authored about 9 years ago by Razvan Ciocanel <[email protected]>
When the moving plugin does an actual move on the storage, the
parallelize plugin works fine wit...
098e7dc5730fab464c2510a7565cc5604803b559 authored about 9 years ago by Janko Marohnić <[email protected]>
721ee401412be790d50b288a89f1cdef3524cec9 authored about 9 years ago by Janko Marohnić <[email protected]>
b6941f51984b37dc991a8d7f03918bb9b9187c2c authored about 9 years ago by Janko Marohnić <[email protected]>
We don't want to be doing anything clever there, this may not work all
the times, it's better to...
54c4e011addfe9484ec2498b9373f5cc742d8a22 authored about 9 years ago by Janko Marohnić <[email protected]>