Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Mar 30, 2012
  1. @sikachu
  2. @jyurek

    Removed pry

    jyurek authored
  3. @jyurek

    Adds IO adapters to abstract the things that can be assigned.

    jyurek authored
    Needs work for S3 Attachments.
Commits on Mar 23, 2012
  1. @sikachu

    Add AttachementSizeValidator

    sikachu authored
  2. @sikachu
Commits on Mar 9, 2012
  1. @mike-burns

    Change the default :url and :path to avoid conflicts. Closes #727.

    mike-burns authored
    The new default :path and :include include the name of the model and
    also nests the model ID under a series of subdirectories, improving
    filesystem access speed when more than 1024 models have saved
    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"
Commits on Feb 3, 2012
  1. @Sporky023
  2. @Sporky023
Commits on Dec 12, 2011
  1. @sikachu

    Use Net::HTTP instead of curl

    sikachu authored
    There was some problem with command line parsing with a special character.
Commits on Nov 16, 2011
  1. @mike-burns
Commits on Nov 12, 2011
  1. @gabebw

    Use Bundler gem conventions.

    gabebw authored
    This also removes Pry.
Commits on Oct 29, 2011
  1. @mike-burns

    Separate the UrlGenerator out from the Attachment. Some example plugi…

    mike-burns authored mike-burns committed
    …ns that could be written include generating thumbnails on the fly for different thumbnail sizes, or delaying the thumbnail generation until it is first called.
Commits on Oct 28, 2011
  1. @mike-burns

    Fix the fixture issue.

    mike-burns authored
Commits on Oct 21, 2011
  1. @mike-burns
  2. @Overbryd @mike-burns

    Added a test for Attachment#uploaded_file

    Overbryd authored mike-burns committed
Commits on Oct 19, 2011
  1. @momolog

    require pathname

    momolog authored
    formulate assert conditions
Commits on Oct 15, 2011
Commits on Sep 30, 2011
  1. @jyurek
Commits on Sep 23, 2011
  1. @asanghi @sikachu

    fixes #588 . Attempt to log warning message when 2 models use same at…

    asanghi authored sikachu committed
    …tachment name with default url interpolation
Commits on Sep 3, 2011
  1. @sikachu
Commits on Aug 25, 2011
  1. @murbanski
Commits on Aug 24, 2011
  1. @jyurek

    Rakes green

    jyurek authored
Commits on Jun 29, 2011
  1. @alexgodin
Commits on May 23, 2011
  1. @sikachu
Commits on Feb 10, 2011
  1. @jmileham
Commits on Nov 22, 2010
  1. @jyurek
Commits on Nov 9, 2010
  1. @lardawge
Commits on Aug 19, 2010
  1. @jyurek
Commits on Aug 16, 2010
  1. @mbailey @jyurek

    Added fingerprinting support

    mbailey authored jyurek committed
    Leverage browser caching and proxy caching by setting far future Expires
    headers and changing filenames when file contents change. This can make
    your web app faster for users and also reduce your bandwidth costs.
    By adding the column :avatar_fingerprint to our db table and including
    :fingerprint in the attachment filename, we ensure the filename will
    change whenever the file contents do.
      has_attached_file :avatar,
        :styles => { :medium => "300x300>", :thumb => "100x100>" },
        :path => "users/:id/:attachment/:fingerprint-:style.:extension",
        :storage => :s3,
        :s3_headers => {'Expires' => 1.year.from_now.httpdate},
        :s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
        :include_updated_timestamp => false
    This enables us to set far future expire headers so that browsers
    don't need to check for a newer version. If a change does occur,
    say because a user uploads a new avatar, the new filename will
    be rendered in your html and the cached version will be ignored.
    The example above will set Expires headers in S3. If you're using
    local storage you can configure your webserver to do something similar.
    We disable the timestamped query string because some proxies refuse
    to cache items with query strings.
    For more info on optimizing for caching:
  2. @jyurek
Commits on Aug 1, 2010
  1. @jyurek
Commits on Jul 11, 2010
  1. @jyurek
  2. @jyurek
Commits on Jun 7, 2010
  1. @joshuaclayton

    Clean up whitespace

    joshuaclayton authored
  2. @joshuaclayton

    Fix spelling error

    joshuaclayton authored
Something went wrong with that request. Please try again.