Class: ImageProcessing::Processor

Inherits:
Object
  • Object
show all
Defined in:
lib/image_processing/processor.rb

Direct Known Subclasses

MiniMagick::Processor, Vips::Processor

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(accumulator = nil) ⇒ Processor

Returns a new instance of Processor.



18
19
20
# File 'lib/image_processing/processor.rb', line 18

def initialize(accumulator = nil)
  @accumulator = accumulator
end

Class Method Details

.accumulator(name, klass) ⇒ Object



3
4
5
6
7
# File 'lib/image_processing/processor.rb', line 3

def self.accumulator(name, klass)
  define_method(name) { @accumulator }
  protected(name)
  const_set(:ACCUMULATOR_CLASS, klass)
end

.apply_operation(accumulator, name, *args, &block) ⇒ Object



9
10
11
12
13
14
15
16
# File 'lib/image_processing/processor.rb', line 9

def self.apply_operation(accumulator, name, *args, &block)
  if (instance_methods - Object.instance_methods).include?(name)
    instance = new(accumulator)
    instance.public_send(name, *args, &block)
  else
    accumulator.send(name, *args, &block)
  end
end

Instance Method Details

#custom(&block) ⇒ Object



22
23
24
# File 'lib/image_processing/processor.rb', line 22

def custom(&block)
  (block && block.call(@accumulator)) || @accumulator
end