Module: CarrierWave::Processor

Defined in:
lib/carrierwave/processor.rb,
lib/carrierwave/processor/dsl.rb,
lib/carrierwave/processor/version.rb,
lib/carrierwave/processor/uploader_dsl.rb

Defined Under Namespace

Modules: Dsl, UploaderDsl Classes: ProcessorNotFoundError

Constant Summary collapse

VERSION =
"1.0.3"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.processorsObject

Returns the value of attribute processors.



14
15
16
# File 'lib/carrierwave/processor.rb', line 14

def processors
  @processors
end

Class Method Details

.arguments_merge(*args) ⇒ Object



38
39
40
41
42
43
# File 'lib/carrierwave/processor.rb', line 38

def self.arguments_merge *args
  args.inject({}) do |hash, arg|
    arg = { arg => [] } unless arg.is_a?(Hash)
    hash.merge!(arg)
  end
end

.conditions_merge(*args) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/carrierwave/processor.rb', line 17

def self.conditions_merge *args
  args.flatten!
  args.compact!
  return nil if args.empty?
  return args.first if args.length == 1
  self.merge_multiple_conditions *args
end

.merge_multiple_conditions(*args) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/carrierwave/processor.rb', line 25

def self.merge_multiple_conditions *args
  lambda do |uploader, options|
    args.inject(true) do |accum, condition|
      break false unless accum
      condition_result = if condition.respond_to?(:call)
        accum && condition.call(self, options)
      else
        accum && uploader.send(condition, options[:file])
      end
    end
  end
end