New in 3.4.2: * Improvement: Use https for Gemfile urls * Improvement: Updated and more correct documentation * Improvement: Use the -optimize flag on animated GIFs * Improvement: Remove the Gemfile.lock * Improvement: Add #expiring_url as an alias for #url until the storage defines it * Improvement: Remove path clash checking, as it's unnecessary * Bug Fix: Do not rely on checking version numbers for aws-sdk New in 3.4.1: * Improvement: Various documentation fixes and improvements * Bug Fix: Clearing an attachment with `preserve_files` on should still clear the attachment * Bug Fix: Instances are #changed? when a new file is assigned * Bug Fix: Correctly deal with S3 styles when using a lambda * Improvement: Accept and pass :credential_provider option to AWS-SDK * Bug Fix: Sanitize original_filename more correctly in IO Adapters * Improvement: s3_host_name can be a lambda * Improvement: Cache some interpolations for speed * Improvement: Update to latest cocaine * Improvement: Update copyrights, various typos New in 3.4.0: * Bug Fix: Allow UploadedFileAdapter to force the use of `file` * Bug Fix: Close the file handle when dealing with URIs * Bug Fix: Ensure files are closed for writing when we're done. * Bug Fix: Fixed 'type' being nil on Windows 7 error. * Bug Fix: Fixed nil access when no s3 headers are defined * Bug Fix: Fixes auto_orientation * Bug Fix: Prevent a missing method error when switching from aws_sdk to fog * Bug Fix: Properly fail to process invalid attachments * Bug Fix: Server-side encryption is specified correctly * Bug Fix: fog_public returned to true by default * Bug Fix: Check attachment paths for duplicates, not URLs * Feature: Add Attachment#blank? * Feature: Add support for blacklisting certain content_types * Feature: Add support for style-specific s3 headers and meta data * Feature: Allow only_process to be a lambda * Feature: Allow setting of escape url as a default option * Feature: Create :override_file_permissions option for filesystem attachments * Improvement: Add Attachment#as_json * Improvement: Evaluate lambdas for fog_file properties * Improvement: Extract geometry parsing into factories * Improvement: Fixed various typos * Improvement: Refactored some tests * Improvement: Reuse S3 connections New In 3.3.1: * Bug Fix: Moved Filesystem's copy_to_local_file to the right place. New in 3.3.0: * Improvement: Upgrade cocaine to 0.4 New in 3.2.0: * Bug Fix: Use the new correct Amazon S3 encryption header. * Bug Fix: The rake task respects the updated_at column. * Bug Fix: Strip newline from content type. * Feature: Fog file visibility can be specified per style. * Feature: Automatically rotate images. * Feature: Reduce class-oriented programming of the attachment definitions. New in 3.1.4: * Bug Fix: Allow user to be able to set path without `:style` attribute and not raising an error. This is a regression introduced in 3.1.3, and that feature will be postponed to another minor release instead. * Feature: Allow for URI Adapter as an optional paperclip io adapter. New in 3.1.3: * Bug Fix: Copy empty attachment between instances is now working. * Bug Fix: Correctly rescue Fog error. * Bug Fix: Using default path and url options in Fog storage now work as expected. * Bug Fix: `Attachment#s3_protocol` now returns a protocol without colon suffix. * Feature: Paperclip will now raise an error if multiple styles are defined but no `:style` interpolation exists in `:path`. * Feature: Add support for `#{attachment}_created_at` field * Bug Fix: Paperclip now gracefully handles msising file command. * Bug Fix: `StringIOAdapter` now accepts content type. New in 3.1.2: * Bug Fix: #remove_attachment on 3.1.0 and 3.1.1 mistakenly trying to remove the column that has the same name as data type (such as :string, :datetime, :interger.) You're advised to update to Paperclip 3.1.2 as soon as possible. New in 3.1.1: * Bug Fix: Paperclip will only load Paperclip::Schema only when Active Record is available. New in 3.1.0: * Feature: Paperclip now support new migration syntax (sexy migration) that reads better: class AddAttachmentToUsers < ActiveRecord::Migration def self.up create_table :users do |t| t.attachment :avatar end end end Also, schema-definition level syntax has been added: add_attachment :users, :avatar remove_attachment :users, :avatar * Feature: Migration now support Rails 3.2+ `change` method. * API CHANGE: Old `t.has_attached_file` and `drop_attached_file` are now deprecated. You're advised to update your migration file before the next MAJOR version. * Bug Fix: Tempfile now rewinded before generating fingerprint * API CHANGE: Tempfiles are now unlinked after `after_flush_writes` If you need to interact with the generated tempfiles, please define an `after_flush_writes` method in your model. You'll be able to access files via `@queue_for_write` instance variable. * Bug Fix: `:s3_protocol` can now be defined as either String or Symbol * Bug Fix: Tempfiles are now rewinded before get passed into `after_flush_writes` * Feature: Added expiring_url method to Fog Storage * API CHANGE: Paperclip now tested against AWS::SDK 1.5.2 onward * Bug Fix: Improved the output of the content_type validator so the actual failure is displayed * Feature: Animated formats now identified using ImageMagick. * Feature: AttachmentAdapter now support fetching attachment with specific style. * Feature: Paperclip default options can now be configured in Rails.configuration. * Feature: add Geometry#resize_to to calculate dimensions of new source. * Bug Fix: Fixed a bug whereby a file type with multiple mime types but no official type would cause the best_content_type to throw an error on trying nil.content_type. * Bug Fix: Fix problem when the gem cannot be installed on the system that has Asepsis installed. New in 3.0.4: * Feature: Adds support for S3 scheme-less URL generation. New in 3.0.3: * Bug Fix: ThumbnailProcessor now correctly detects and preserve animated GIF. * Bug Fix: File extension is now preserved in generated Tempfile from adapter. * Bug Fix: Uploading file with unicode file name now won't raise an error when logging in the AWS is turned on. * Bug Fix: Task "paperclip:refresh:missing_styles" now work correctly. * Bug Fix: Handle the case when :restricted_characters is nil. * Bug Fix: Don't delete all the existing styles if we reprocess. * Bug Fix: Content type is now ensured to not having a new line character. * API CHANGE: Non-Rails usage should include Paperclip::Glue directly. `Paperclip::Railtie` was intended to be used with Ruby on Rails only. If you're using Paperclip without Rails, you should include `Paperclip::Glue` into `ActiveRecord::Base` instead of requiring `paperclip/railtie`: ActiveRecord::Base.send :include, Paperclip::Glue * Bug Fix: AttachmentContentTypeValidator now allow you to specify :allow_blank/:allow_nil * Bug Fix: Make sure content type always a String. * Bug Fix: Fix attachment.reprocess! when using storage providers fog and s3. * Bug Fix: Fix a problem with incorrect content_type detected with 'file' command for an empty file on Mac. New in 3.0.2: * API CHANGE: Generated migration class name is now plural (AddAttachmentToUsers instead of AddAttachmentToUser) * API CHANGE: Remove Rails plugin initialization code. * API CHANGE: Explicitly require Ruby 1.9.2 in the Gemfile. * Bug Fix: Fixes AWS::S3::Errors::RequestTimeout on Model#save. * Bug Fix: Fix a problem when there's no logger specified. * Bug Fix: Fix a problem when attaching Rack::Test::UploadedFile instance. New in 3.0.1: * Feature: Introduce Paperlip IO adapter. * Bug Fix: Regression in AttachmentContentTypeValidator has been fixed. * API CHANGE: #to_file has been removed. Use the #copy_to_local_file method instead. New in 3.0.0: * API CHANGE: Paperclip now requires at least Ruby on Rails version 3.0.0 * API CHANGE: The default :url and :path have changed. The new scheme avoids filesystem conflicts and scales to handle larger numbers of uploads. The easiest way to upgrade is to add an explicit :url and :path to your has_attached_file calls: has_attached_file :avatar, :path => ":rails_root/public/system/:attachment/:id/:style/:filename", :url => "/system/:attachment/:id/:style/:filename" * Feature: Adding Rails 3 style validators, and adding `validates_attachment` method as a shorthand. * Bug Fix: Paperclip's rake tasks now loading records in batch. * Bug Fix: Attachment style name with leading number now not raising an error. * Bug Fix: File given to S3 and Fog storage will now be rewinded after flush_write. * Feature: You can now pass addional parameter to S3 expiring URL, such as :content_type. New in 2.7.0: * Bug Fix: Checking the existence of a file on S3 handles all AWS errors. * Bug Fix: Clear the fingerprint when removing an attachment. * Bug Fix: Attachment size validation message reads more nicely now. * Feature: Style names can be either symbols or strings. * Compatibility: Support for ActiveSupport < 2.3.12. * Compatibility: Support for Rails 3.2. New in 2.6.0: * Bug Fix: Files are re-wound after reading. * Feature: Remove Rails dependency from specs that need Paperclip. * Feature: Validation matchers support conditionals. New in 2.5.2: * Bug Fix: Can be installed on Windows. * Feature: The Fog bucket name, authentication, and host can be determined at runtime via Proc. * Feature: Special characters are replaced with underscores in #url and #path. New in 2.5.1: * Feature: After we've computed the content type, pass it to Fog. * Feature: S3 encryption with the new :s3_server_side_encryption option. * Feature: Works without ActiveRecord, allowing for e.g. mongo backends. New in 2.5.0: * Performance: Only connect to S3 when absolutely needed. * Bug Fix: STI with cached classes respect new options. * Bug Fix: conditional validations broke, and now work again. * Feature: URL generation is now parameterized and can be changed with plugins or custom code. * Feature: :convert_options and :source_file_options to control the ImageMagick processing. * Performance: String geometry specifications now parse more quickly. * Bug Fix: Handle files with question marks in the filename. * Bug Fix: Don't raise an error when generating an expiring URL on an unassigned attachment. * Bug Fix: The rake task runs over all instances of an ActiveRecord model, ignoring default scopes. * Feature: DB migration has_attached_file and drop_attached_file methods. * Bug Fix: Switch from AWS::S3 to AWS::SDK for the S3 backend. * Bug Fix: URL generator uses '?' in the URL unless it already appears and there is no prior '='. * Bug Fix: Always convert the content type to a string before stripping blanks. * Feature: The :keep_old_files option preserves the files in storage even when the attachment is cleared or changed. * Performance: Optimize Fog's public_url access by avoiding it when possible. * Bug Fix: Avoid a runtime error when generating the ID partition for an unsaved attachment. * Performance: Do not calculate the fingerprint if it is never persisted. * Bug Fix: Process the :original style before all others, in case of a dependency. * Feature: S3 headers can be set at runtime by passing a proc object as the value. * Bug Fix: Generating missing attachment styles for a model which has had its attachment changed should not raise. * Bug Fix: Do not collide with the built-in Ruby hashing method.