paperclip
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 :keep_old_files
to 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 nil
.
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).
fake_braintree
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).
suspenders
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).
shoulda-matchers
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.
bourbon
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).