What are projects using for file upload? Paperclip?
Most continue to use Paperclip, though a few projects have
successfully used Carrierwave. Carrierwave apparently has better mongo support.
I tried to setup ruby and rails, and installed the latest
mysql gem and I get warning messages about the mysql gem.
Others have experienced this too and offered to help. The main answer
seemed to be “the warnings are lies, it will work.”
- Checkout Pry. It’s an irb replacement that includes tab
completion and cd and ls for navigating scopes.
Many people use the ultra popular Paperclip library to handle file attachments in Rails. Unfortunately the Paperclip documentation does not cover how to stub out calls to ImageMagick in your test suite. Without the proper stubs in place a test suite that uses Paperclip will take much, much longer to run.
In the grease your suite presentation by Nick Gauthier it has a slide titled Quickerclip that describes what needs to be done to spend up Paperclip in tests, basically you need to keep it from shelling out to ImageMagick. Alas, the presentation does include code for how to achieve Quickerclip.
As the presentation shows Paperclip.run is the method that needs to be changed. The first parameter passed to Paperclip.run is the ImageMagick command be executed. Paperclip uses the identify and convert commands. The
identify command is used to determine the dimensions of an image. The
convert command is the really heavy one that does image manipulation and thumbnail generation. Here is a redefinition of Paperclip.run with sensible behavior for tests.
def self.run cmd, params = "", expected_outcodes = 0
post_process in Paperclip::Attachment is an optional additional optimization. In Paperclip,
post_process eventually calls
Paperclip.run("convert") and by short-circuiting the method earlier in the chain we save a few cycles.