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

Run validations on attachment assignment

The remote_url validation errors had a bug where if a file was
previously set, for any new remot...

ba1dd735e7644473cf83120c9ab0da89f0587ecf authored over 9 years ago by Janko Marohnić <[email protected]>
Already uploaded file can now be set with a hash

Some web frameworks can parse JSON query parameters into a Hash, so we
want to support this case...

52ce5d3e1c6420810951df39c1ba88f3b914c0cd authored over 9 years ago by Janko Marohnić <[email protected]>
Add ability to upload to a specified location

0e32b6b4bdb8ba6d4c9af0a4b634e63557256d26 authored over 9 years ago by Janko Marohnić <[email protected]>
Implement hash equality for UploadedFile

Now UploadedFiles have hash equality defined, so their identity can be
checked in Hashes, Sets a...

722ef51969d8f7e3dd8f99b58a9afa35c08874dd authored over 9 years ago by Janko Marohnić <[email protected]>
Add the rack_file plugin

c879f14e09b74988e4a5aa4639fd444ba7e720e3 authored over 9 years ago by Janko Marohnić <[email protected]>
Extract context as a method in Attacher

6bfa7dfa8735bd3f7e383a8978368dd1dad089b0 authored over 9 years ago by Janko Marohnić <[email protected]>
An uploader should know if it uploaded a file

5a00c3fe89670a3c994852fd8bd658afd9c38005 authored over 9 years ago by Janko Marohnić <[email protected]>
Extract generic complicated IO stuff into Utils

The Utils module isn't part of the core, and isn't overridable. It
provides a helper for downloa...

684e6c29c52d8a8c1c163873c6000dedcedbeeca authored over 9 years ago by Janko Marohnić <[email protected]>
Add missing test for remove_attachment plugin

ccac6d8e4b28d027c81af55f18589bad7eb1e615 authored over 9 years ago by Janko Marohnić <[email protected]>
Fix bugs with validations

* Validation happens only when attachment is assigned

* Validation is loudly refused when versi...

e73f3f08f3c935c717a77d00babc43a94563da96 authored over 9 years ago by Janko Marohnić <[email protected]>
Add :host option to FileSystem storage for CDNs

540604ed92283fd74f479c2d9779b910ca0379a0 authored over 9 years ago by Janko Marohnić <[email protected]>
Add remote_url plugin

1e75030e2be4c883b7ac33091af6a25e8eaf2dd1 authored over 9 years ago by Janko Marohnić <[email protected]>
A subclass of Uploadie is an "uploader"

3bc05246ae240635bee8869a2fd873f0394f7142 authored over 9 years ago by Janko Marohnić <[email protected]>
Enable passing in custom extractors

We remove the cumbersome checks as well, because if a user doesn't
follow the contract, in any c...

c98852945c6b062c959b13caffaf618190abbb49 authored over 9 years ago by Janko Marohnić <[email protected]>
Make soft_delete work only on #destroy

When people say "soft delete", they mean a scenario where instead of
deleting a record, the reco...

f30a656e8c4431c58015babbc313170c53ccdb4f authored over 9 years ago by Janko Marohnić <[email protected]>
Require user-specified libraries in plugins

It's much more convenient to have the library required by itself,
because it's strange to have t...

40f5ebf2f3bf03196d85c22116fd48c01eb85cdd authored over 9 years ago by Janko Marohnić <[email protected]>
Fix a mistake in Attacher's functionality

Current assumption that attachments are cached in "<attachment>_data"
tag was wrong, because the...

4042a5ca1e4d96540ab1fa64243cef3bd0282236 authored over 9 years ago by Janko Marohnić <[email protected]>
Add Brewfile for easy installing dependencies

f74eada5376205ac42043d10388ccd51f703a0bc authored over 9 years ago by Janko Marohnić <[email protected]>
mime_types => extract_content_type plugin

By generalizing this plugin we could incorporate filemagic as a content
type library as well, an...

ac9e9180f1a2a537684402496ed565e3f5a8cc85 authored over 9 years ago by Janko Marohnić <[email protected]>
Fix some tests

c01d7f27de09ff4c574e1c040042689d67f07b97 authored over 9 years ago by Janko Marohnić <[email protected]>
Remove the ability to pass symbol as :processor

This looks weird and it reminds me of the Rails' style that I don't
like. This doesn't remove an...

d47fef07d3a4f5a6aea8f3abd1b1569d2dc4f138 authored over 9 years ago by Janko Marohnić <[email protected]>
Split processing and versions again

Often people will want to process files without generating versions, and
in that case they shoul...

e6610023f0bc080c71561ddb7df9550a7ce920ff authored over 9 years ago by Janko Marohnić <[email protected]>
Raise error when storage doesn't exist

f4a05e2035bffd6c91f3d3540077fac482a2bdae authored over 9 years ago by Janko Marohnić <[email protected]>
Add delete_cached plugin

2ced3508456dbab855af423e29540313b2d8be5b authored over 9 years ago by Janko Marohnić <[email protected]>
Add soft_deletes plugin

f61cba990f6704115479b8d10183991c9e1f754f authored over 9 years ago by Janko Marohnić <[email protected]>
Add remove_attachment plugin

fb33287520a906303f8d2068a6200b42dbf43967 authored over 9 years ago by Janko Marohnić <[email protected]>
Add test for Attachment inheritance

7c94a4d9c351a1441e59d21ad8828706ecda389f authored over 9 years ago by Janko Marohnić <[email protected]>
Some small test fix

b2ced8156feab7de1452d4a9942af2c38a91f783 authored over 9 years ago by Janko Marohnić <[email protected]>
Update README.md with some interface doodling

1f6185297ec9c9bae1d31ebb9ab91772b4a58aae authored over 9 years ago by Janko Marohnić <[email protected]>
Add mime_types plugin

f7e777ef62d24c52e7ce2314dcb195c46d83f5c6 authored over 9 years ago by Janko Marohnić <[email protected]>
Put storing metadata into core

This is really nice to have out of the box, users may think they don't
need it, until they do an...

c8345d2e8a8fa1e47f0f239880958d8cc22f1ea4 authored over 9 years ago by Janko Marohnić <[email protected]>
Remove the default_url plugin

This plugin also doesn't bring any new functionality, it's simpler to
just override Uploadie#def...

e9c14c1688b07aa505c06d7c62ce0208cd3598e2 authored over 9 years ago by Janko Marohnić <[email protected]>
Remove the location plugin

This plugin didn't add any new functionality, it was only a wrapper for
method overriding. We wa...

2ade097a7716466359dfefd50b9aca10ccc1be9a authored over 9 years ago by Janko Marohnić <[email protected]>
Create store_metadata plugin and add dimensions

ce3e78f0ba7b2e9a803275b304e3396a5306cc6f authored over 9 years ago by Janko Marohnić <[email protected]>
Add the default_url plugin

6a1b5e856cc68de405398b4172774f1532d5728a authored over 9 years ago by Janko Marohnić <[email protected]>
Add <attachment>_url

This is useful for APIs, so that we can reference the URL by a single
method name. It's also use...

69dc048111eb659487c016e37067127e055fd078 authored over 9 years ago by Janko Marohnić <[email protected]>
Merge versions plugin and update attachment

6be8ccdb356a93589626dd61790fbbed4bd2185d authored over 9 years ago by Janko Marohnić <[email protected]>
Add Attachment and Attacher to core

e199b308522cb684e183c33a6b8b84ee30ac2ff8 authored over 9 years ago by Janko Marohnić <[email protected]>
Add validation to core

The reason why we're adding it to core is that the upcoming Attachable
can already count on it, ...

c4da98c56eebc0ebd004e3b63fb8d59ab47add97 authored over 9 years ago by Janko Marohnić <[email protected]>
Add location plugin

This plugin is used to override default generating of locations. The
generator also receives a c...

e183747a4d92106d37fd418910253bd318685b02 authored over 9 years ago by Janko Marohnić <[email protected]>
Pass through a generic context on uploads

Before this change we were able to pass through a type of the image, and
occasionally a version ...

58c977e211426c0bbe0e409871d40def73f79d91 authored over 9 years ago by Janko Marohnić <[email protected]>
Add processing plugin

This plugin allows processing files before uploading. You can either do
1-1 processing where you...

ba45317ced798e925a7f15df56889dc23b211fd9 authored over 9 years ago by Janko Marohnić <[email protected]>
Add versions plugin

This plugin enables passing a hash of file versions, getting the same
hash back, only with the f...

e582d54b3fd82a28a49978302f053b7fc0ad17a4 authored over 9 years ago by Janko Marohnić <[email protected]>
Add multiple_files plugin

Currently this plugin only gives the ability to pass an array of IOs to
Uploadie#upload. But lat...

18f81aa85b4d84c6d6f03a62f4a0192d998c1ca6 authored over 9 years ago by Janko Marohnić <[email protected]>
Make Memory#download return an actual file

It is contract for storages that #download should always return a file
on the filesystem (so tha...

1883c5eb3f07112e61cc0521c119261e62e1db06 authored over 9 years ago by Janko Marohnić <[email protected]>
Reset version to 0.0.0

Accidentally copy-pasted it from MiniMagick.

049794986ebafcbc9fb39a309c9055959522a2ec authored over 9 years ago by Janko Marohnić <[email protected]>
Rewind file after uploading

After uploading we're also potentially extracting metadata, so the file
should be in the same st...

8e5503c187fbcb2afecf2c6f10ced3fabf5d719e authored over 9 years ago by Janko Marohnić <[email protected]>
Storages return URL after uploading

I think this is a good convention, because it can happen that we have a
storage which requires a...

969e8a18286ea776f8cac7a71ab1003837ff9ce1 authored over 9 years ago by Janko Marohnić <[email protected]>
Refactor Base as better ground for future plugins

4c06857fa29768c98a2987a4bc30f935e1052a5c authored over 9 years ago by Janko Marohnić <[email protected]>
Introduce main storages "cache" and "store"

I first thought storages will simply be registered as a hash, and that
users will always specify...

468798cb79a090783c0dbbe35909d4e2085faecb authored over 9 years ago by Janko Marohnić <[email protected]>
Initial commit

e55bd83f94446d9497fcec8fc6a42eb4767da06a authored over 9 years ago by Janko Marohnić <[email protected]>
Introduce a helper method for FakeIO in tests

8fe0a3e7984e02f180848e642536a671d7023e26 authored over 9 years ago by Janko Marohnić <[email protected]>
Storages have to return location on #upload

This convention allows storages to generate their own location,
regardless of what location was ...

bec0dd79e87000e1ca43542fb33b4856ec6ea3a1 authored over 9 years ago by Janko Marohnić <[email protected]>
Improve readability of FileSystem#clear!

dabc5342ddc8bdb75e172d49d92bccf16643ef75 authored over 9 years ago by Janko Marohnić <[email protected]>
Make base and plugin design more future proof

Later we will have a symbol_location plugin, which will allow symbols to
be passed as location, ...

6aa70a2ca16fcead8b34053aa646f64168f52750 authored over 9 years ago by Janko Marohnić <[email protected]>