Simple and powerful file upload library

Rubygem refile

Total Downloads
Current Version
2015-09-11 00:00:00 UTC
First Release
2014-11-28 00:00:00 UTC
Depends on following gems
Depending Gems

Github elabs/refile

Development activity
Last commit
2015-02-19 21:43:06 UTC
First commit


Attila Györffy wrote 2016-03-09 13:14:15 UTC:

I'm looking into a modern Rails file upload solution. I've taken a look at a few, came across Refile and Shrine and decided to go for Refile because it has an explicit section on testing in the README.

When you are doing TDD, you don't want to having to fiddle around with new gems. Shrine may even be a better or more suitable gem in some contexts but a new gem with testing explained really makes it a favourable choice for me. Something to keep in mind when you publish your hot new library.

Janko Marohnić wrote 2016-04-08 19:04:46 UTC:

@liquid Refile's testing section only shows how to use fake IOs instead of actual files. However, I encourage everyone to use actual files in tests, because this way you're more closely resembling production without any penalty. So I don't think Refile has some advantages over Shrine concerning testing.

The difference between Shrine and Refile is that Refile is more opinionated, while Shrine has more advanced features which are often needed for achieving good user experience. On-the-fly processing can be tricky to scale by yourself, I think it's better to use 3rd-party solutions like Cloudinary (which Shrine supports). Additionally, Shrine took Refile's great design ideas, but is more flexible and featureful.

P.S. I'm the creator of Shrine, and a former maintainer of Refile.

Post a comment

Markdown supported

In order to continue, you must be signed in using your Github account.

If you're signing in using this account for the first time Github will ask for your permission to give access to your public user data to the Ruby Toolbox.

Although the Github Authorization page does not mention it, the request includes read-only access to your verified email address (user:email OAuth scope). This is neccessary so there's a way to notify you about comments, information about your accepted project edits and the like. You can review your notification settings on your account page once you're signed in.