Sha256: 3eee46ddfe0ee7470d16634039a1fa6ccd91a6a908dd40c2562d2141ce6c6c28

Contents?: true

Size: 1.2 KB

Versions: 2

Compression:

Stored size: 1.2 KB

Contents

require_relative 'dsl'

module CarrierWave
  module Processor
    module UploaderDsl

      def self.included base
        base.extend ClassMethods
      end

      module ClassMethods

        def use_processor *args
          options = args.extract_options!
          args.each do |processor|
            if processor and not ::CarrierWave::Processor.processors.blank? and real_processor = ::CarrierWave::Processor.processors[processor] and real_processor[:block]
              new_if = [options[:if], real_processor[:options][:if]]
              merged_options = real_processor[:options].merge options
              merged_options[:if] = new_if if new_if
              Injector.new(self, merged_options, &real_processor[:block])
            else
              raise ProcessorNotFoundError, processor
            end
          end
        end

        alias_method :use_processors, :use_processor

      end

      def perform_delayed *args
        backend = ::CarrierWave::Processor.configuration.backend
        if !backend.can_build_uploader?(self.class) and backend.uploaders.include? self.class
          ::CarrierWave::Processor.configuration.backend.create_worker.perform(self)
        end
      end

    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
carrierwave-processor-1.1.1 lib/carrierwave/processor/uploader_dsl.rb
carrierwave-processor-1.1.0 lib/carrierwave/processor/uploader_dsl.rb