require 'dragonfly' module Refinery module Images module Dragonfly class << self def setup! app_images = ::Dragonfly[:refinery_images] app_images.define_macro(::Refinery::Image, :image_accessor) app_images.analyser.register(::Dragonfly::ImageMagick::Analyser) app_images.analyser.register(::Dragonfly::Analysis::FileCommandAnalyser) end def configure! app_images = ::Dragonfly[:refinery_images] app_images.configure_with(:imagemagick) app_images.configure_with(:rails) do |c| c.datastore.root_path = Refinery::Images.datastore_root_path c.url_format = Refinery::Images.dragonfly_url_format c.url_host = Refinery::Images.dragonfly_url_host c.secret = Refinery::Images.dragonfly_secret c.trust_file_extensions = Refinery::Images.trust_file_extensions end if ::Refinery::Images.s3_backend app_images.datastore = ::Dragonfly::DataStorage::S3DataStore.new app_images.datastore.configure do |s3| s3.bucket_name = Refinery::Images.s3_bucket_name s3.access_key_id = Refinery::Images.s3_access_key_id s3.secret_access_key = Refinery::Images.s3_secret_access_key # S3 Region otherwise defaults to 'us-east-1' s3.region = Refinery::Images.s3_region if Refinery::Images.s3_region end end if Images.custom_backend? app_images.datastore = Images.custom_backend_class.new(Images.custom_backend_opts) end end ## # Injects Dragonfly::Middleware for Refinery::Images into the stack def attach!(app) if ::Rails.application.config.action_controller.perform_caching app.config.middleware.insert_after 'Rack::Cache', 'Dragonfly::Middleware', :refinery_images else app.config.middleware.use 'Dragonfly::Middleware', :refinery_images end end end end end end