class Poleica::Converters::GraphicsMagick::ConvertOptionsGenerator

Generate options for the GraphicsMagick to_png @options page [Array, Integer]

Attributes

options[R]
output_path[R]
polei[R]

Public Class Methods

new(polei, options = {}) click to toggle source
# File lib/poleica/converters/graphics_magick/convert_options_generator.rb, line 9
def initialize(polei, options = {})
  @polei     = polei
  @options   = default_options.merge(options)
end

Public Instance Methods

generate() click to toggle source
# File lib/poleica/converters/graphics_magick/convert_options_generator.rb, line 14
def generate
  [
    'convert',
    "#{polei.path}#{page_options}",
    orient_options,
    resize_options,
    output_options
  ].flatten
end

Private Instance Methods

default_options() click to toggle source
# File lib/poleica/converters/graphics_magick/convert_options_generator.rb, line 26
def default_options
  {
    path:   polei.path_with_md5(:png),
    height: DEFAULT_MEASURE,
    width:  DEFAULT_MEASURE,
    force_resize: false,
    auto_orient: true,
    page: 0
  }
end
orient_options() click to toggle source
# File lib/poleica/converters/graphics_magick/convert_options_generator.rb, line 42
def orient_options
  @orient_options ||= options[:auto_orient] ? '-auto-orient' : ''
end
output_options() click to toggle source
# File lib/poleica/converters/graphics_magick/convert_options_generator.rb, line 54
def output_options
  @output_path = if File.directory?(options[:path])
                   name = File.basename(polei.path_with_md5(:png))
                   File.join(options[:path], name)
                 else
                   options[:path]
                 end
end
page_options() click to toggle source
# File lib/poleica/converters/graphics_magick/convert_options_generator.rb, line 37
def page_options
  @page_options ||=
    "#{Array(options[:page]).flatten.compact.uniq.sort}"
end
resize_options() click to toggle source
# File lib/poleica/converters/graphics_magick/convert_options_generator.rb, line 46
def resize_options
  @resize_options ||= [
    '-resize',
    "#{options[:width]}x#{options[:height]}" \
    "#{'!' if options[:force_resize]}"
  ]
end