Smarter Paperclip
Paperclip with some additional cool stuff. This Paperclip version uses old Paperclip but it is tweaked up to work with Rails 3.2.
Collection of Paperclip extensions:
validates_attachment_minimum_resolution
validates_attachment_if_included
has_interpolated_attached_file
Works with Ruby 1.8.7, 1.8.7 EE, 1.9.2, 1.9.3 Works with Rails3
Install
gem install smarter_paperclip
and in your Gemfile:
gem 'smarter_paperclip'
Usage
validates_attachment_minimum_resolution
- Picture minimal resolution validation. Parameters:
- width - minimal picture width
- height - minimal picture height
- message - error message - can be a Proc
- other params - std like for other validations (like if, unless, etc)
validates_attachment_if_included
- It force attachment validation only if attachment (file) was send. If file was not send - it will not validate it (will pass without errors)
has_interpolated_attached_file
- Allows you to use interpolations embed to object instance without worrying about file renaming. It rename them for you. Just use it instead of has_attached_file. Parameters same as with has_attached_file.
Of course you can use it instead of has_attached_file all the time, because with standard (not interpolated) models - it works same as has_attached_file.
Example
Interpolation
Paperclip.interpolates :instance_name do |attachment, style|
attachment.instance.name.to_url
end
Model
class Biography < ActiveRecord::Base
has_interpolated_attached_file :photo,
:url => "/images/models/biographies/:id/:instance_name_:style.:extension"
validates_attachment_if_included :photo,
validates_attachment_minimum_resolution :photo, :width => 500, :height => 500
end
Note on Patches/Pull Requests
- Fork the project.
- Make your feature addition or bug fix.
- Add tests for it. This is important so I don't break it in a future version unintentionally.
- Commit, do not mess with Rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
- Send me a pull request. Bonus points for topic branches.
Copyright
Copyright (c) 2011 Maciej Mensfeld. See LICENSE for details.