Class: Pura::Processing::Pipeline

Inherits:
Object
  • Object
show all
Defined in:
lib/pura/processing/pipeline.rb

Constant Summary collapse

DEFAULT_FORMAT =
"jpg"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Pipeline

Initializes the pipeline with all the processing options.



17
18
19
20
21
22
23
# File 'lib/pura/processing/pipeline.rb', line 17

def initialize(options)
  fail Error, "source file is not provided" unless options[:source]

  options.each do |name, value|
    instance_variable_set(:"@#{name}", value)
  end
end

Instance Attribute Details

#destinationObject (readonly)

Returns the value of attribute destination.



14
15
16
# File 'lib/pura/processing/pipeline.rb', line 14

def destination
  @destination
end

#formatObject (readonly)

Returns the value of attribute format.



14
15
16
# File 'lib/pura/processing/pipeline.rb', line 14

def format
  @format
end

#loaderObject (readonly)

Returns the value of attribute loader.



14
15
16
# File 'lib/pura/processing/pipeline.rb', line 14

def loader
  @loader
end

#operationsObject (readonly)

Returns the value of attribute operations.



14
15
16
# File 'lib/pura/processing/pipeline.rb', line 14

def operations
  @operations
end

#processorObject (readonly)

Returns the value of attribute processor.



14
15
16
# File 'lib/pura/processing/pipeline.rb', line 14

def processor
  @processor
end

#saverObject (readonly)

Returns the value of attribute saver.



14
15
16
# File 'lib/pura/processing/pipeline.rb', line 14

def saver
  @saver
end

Instance Method Details

#call(save: true) ⇒ Object

Determines the destination and calls the processor.



26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/pura/processing/pipeline.rb', line 26

def call(save: true)
  if save == false
    call_processor
  elsif destination
    handle_destination do
      call_processor(destination: destination)
    end
  else
    create_tempfile do |tempfile|
      call_processor(destination: tempfile.path)
    end
  end
end

#destination_formatObject

Determines the appropriate destination image format.



46
47
48
49
50
51
52
# File 'lib/pura/processing/pipeline.rb', line 46

def destination_format
  format   = determine_format(destination) if destination
  format ||= self.format
  format ||= determine_format(source_path) if source_path

  format || DEFAULT_FORMAT
end

#source_pathObject

Retrieves the source path on disk.



41
42
43
# File 'lib/pura/processing/pipeline.rb', line 41

def source_path
  source if source.is_a?(String)
end