Dragonfly =========== Dragonfly is a Rack framework for on-the-fly image handling. Ideal for using with Ruby on Rails (2.3 and 3), Sinatra and all that gubbins. For the lazy Rails user... -------------------------- **Gemfile**: gem 'rack-cache', :require => 'rack/cache' gem 'dragonfly', '~>0.8.6' **Initializer** (e.g. config/initializers/dragonfly.rb): require 'dragonfly/rails/images' **Migration**: add_column :albums, :cover_image_uid, :string **Model**: class Album < ActiveRecord::Base image_accessor :cover_image # 'image_accessor' is provided by Dragonfly # this defines a reader/writer for cover_image # ... end **View** (for uploading via a file field): <% form_for @album, :html => {:multipart => true} do |f| %> ... <%= f.file_field :cover_image %> ... <% end %> NB: REMEMBER THE MULTIPART BIT!!! **View** (to display): <%= image_tag @album.cover_image.url %> <%= image_tag @album.cover_image.thumb('400x200#').url %> <%= image_tag @album.cover_image.jpg.url %> <%= image_tag @album.cover_image.process(:greyscale).encode(:tiff).url %> ...etc. The above relies on imagemagick being installed. Dragonfly doesn't depend on it per se, but the default configuration `'dragonfly/rails/images'` uses it. For alternative configurations, see below. If using Capistrano with the above, you probably will want to keep the cache between deploys, so in deploy.rb: namespace :dragonfly do desc "Symlink the Rack::Cache files" task :symlink, :roles => [:app] do run "mkdir -p #{shared_path}/tmp/dragonfly && ln -nfs #{shared_path}/tmp/dragonfly #{release_path}/tmp/dragonfly" end end after 'deploy:update_code', 'dragonfly:symlink' Using outside of rails, custom storage/processing/encoding/analysis, and more... -------------------------------------------------------------------------------- Dragonfly is primarily a Rack app, so you can use it as a standalone app, or with Sinatra, Merb, etc. It's highly customizable, and works with any data type (not just images). For more info, consult the DOCUMENTATION Add-ons ======= For third-party add-ons, see [the Add-ons wiki](http://github.com/markevans/dragonfly/wiki/Dragonfly-add-ons) Issues ====== Please use the github issue tracker if you have any issues. Suggestions/Questions ===================== Google group dragonfly-users Credits ======= - [Mark Evans](http://github.com/markevans) (author) Copyright ======== Copyright (c) 2009-2010 Mark Evans. See LICENSE for details.