Spree Dragonfly Extension

Exchange paperclip with dragonfly for image processing in Spree.

Please note

This extension is not maintained anymore


Add the spree_dragonfly gem to your bundler Gemfile:

gem 'spree_dragonfly'

From your spree rails root path:

rails generate spree_dragonfly:install

Customize the dragonfly initializer in config/initializers/dragonfly.rb if necessary.

Include this code in your application.rb:

config.middleware.insert 0, 'Rack::Cache', {
    :verbose     => true,
    :metastore   => URI.encode("file:#{Rails.root}/tmp/dragonfly/cache/meta"),
    :entitystore => URI.encode("file:#{Rails.root}/tmp/dragonfly/cache/body")
config.middleware.insert_after 'Rack::Cache', 'Dragonfly::Middleware', :images


If you want to keep using the default image sizes as defined in the Spree config, you can use:


If you want to use custom thumbnail sizes in your views as custom in dragonfly, you can use any valid dragonfly image processing method. For example:

image.attachment.process(:greyscale).process(:thumb, '40x20#').encode(:gif).url

To apply your own thumbnail sizes to existing views in spree, use deface overrides or override the whole template view file or partial. Example deface override:

Deface::Override.new(:virtual_path => "spree/products/_image",
                     :name => "products_image",
                     :replace => "code[erb-loud]:contains('image_tag image.attachment.product.url, :itemprop => \"description\"')",
                     :text => "<%= image_tag image.attachment.process(:thumb, '400x400>').url, :itemprop => \"description\"') %>")

To implement image attachment validations, create a image_decorator.rb file in app/models of your spree rails app:

Spree::Image.class_eval do
    validates_size_of :attachment, maximum: 500.kilobytes
    # add more...

Copyright (c) 2012 Zweitag GmbH, released under the New BSD License


No comments yet

Please login to add comment.