Much of the work over the past week was done in paperclip, so now you can upload files to your Rails apps with more flare and style!
It now supports an option for keeping old files, so you can pass
has_attached_file and, when you destroy an attachment (
@user.avatar.destroy) it won’t actually delete the underlying files (345ec74). Many people find this useful for S3 storage, which hints that there may be a deeper problem elsewhere. This is thanks to Eike Bernhardt (teefax) but was originally
Christoph Lupprich (kitto) saw a quick way to speed up the
#public_url method for Fog storage using AWS as the provider, so he did (989ec0e).
I’ve long wanted a migration helper, and Daniel Schierbeck (dasch) wrote it with some git cleanup from Alexey Mahotkin (693b528, b922111, f82c0d9, f3eacd2, e0a6732, ffbfc24, )“>500f1bb, b70ffbc, 65a6ae8).
It looks like this:
class AddAvatarColumnsToUser < ActiveRecord::Migration def self.up change_table :users do |t| t.has_attached_file :avatar end end def self.down drop_attached_file :users, :avatar end end
There were also some important internal changes. For example, Prem Sichanugrist (sikachu) replaced the AWS::S3 gem with AWS::SDK (1df1b03, 81129ad, 88a8af9, 75f413d, 2cf7378). He called out AWS (amazonwebservices) and Trevor Rowe (trevorrowe) for helping, and John Joseph Bachir (jjb) updated the docs appropriately (308f1a0).
Prem also got Paperclip passing on Rubinius (001fd99).
In bug fixes, base URLs with a
? but no
= will produce Paperclip URLs using
? (128d664 and [bb22be3](http://github.com/thoughtbot/paperclip/commit/bb22be301a783b2e2ab58f7904231ffd8211766c "Use Net::HTTP instead of curl
There was some problem with command line parsing with a special character.”)). Prem thinks that’s the right behavior now, but it’s tricky to nail down.
Nick Padgett (npadgett) found an edgecase where we were calling
strip on a non-string object, sometimes, and fixed that (34913f1).
Dimitrij Denissenko (dim) handled the case where using the
:id_partition pattern in a URL or path pattern raises a
NoMethodError on an unsaved resource (ac82244). He and I are now enemies for life for his use of
Prem fixed another bug: if you have a path or URL pattern with
:class in it it will show a warning. He removed this warning ([b4ff2c5](http://github.com/thoughtbot/paperclip/commit/b4ff2c5777df6ac3b0942dc645cfde2d1ace62c8 “Do not show warning if :class exists in the interpolation URL
This fixes #660”)).
Prem worked with Steve Richert (laserlemon) to show the Gemnasium results in the README (3e20907 and [777ac90](http://github.com/thoughtbot/paperclip/commit/777ac90092cc2ad7f71ea4b3633ac0372df22f35 “Update Cucumber dependency
This is necessary so Gemnesium will be green.”)), and Prem also updated the README to be more readable (adcd03c).
The fake credit card processor, fake_braintree, hit 0.0.6 (eed875e and 0934f1e) this week as Ben Orenstein (r00k) added support for discounted subscriptions (757c0aa) and Gabe Berke-Williams (gabebw) exposed the transactions that have run (8dde09c and ab93137).
Taking a stance on whether we play along with the little Open Directory Project game, suspenders now defaults to
NOODP on every page which, as Matt Jankowski (mjankowski) points out, tells Web crawlers to never bother looking for ODP details (6275d0f).
The sweet shoulda-matchers collection of RSpec matchers now has more accurate error messages for the
allow_value matcher (25c2623), thanks to Clemens Helm (clemenshelm). It uses the underlying internationalization information to generate this.
Another documentation update on bourbon as Phil LaPier (plapier) explained that multiple background images with shorthand notation are unsupported (798aa1c), after clarifying that multiple background images themselves have fancy comma-separated syntax (aa66831).