module Retinator

Constants

VERSION

Public Class Methods

generate(path, res) click to toggle source
# File lib/retinator.rb, line 10
def generate(path, res)
  return false unless check_params path, res
  show_dimension_hint_if_needed path, res
  generate_images path, res
  return true
end
remove_files_on_abort() click to toggle source
# File lib/retinator.rb, line 17
def remove_files_on_abort
  @saved_files.each do |file|
    FileUtils.rm file
  end
  @saved_files.clear
end

Private Class Methods

check_params(path, res) click to toggle source
# File lib/retinator.rb, line 24
        def check_params(path, res)
  return false unless path && res
  return false unless File.exist? path
  return false unless res.kind_of? Integer
  return false unless res > 0
  return true
end
generate_images(path, res) click to toggle source
# File lib/retinator.rb, line 32
        def generate_images(path, res)
  @saved_files = []
  name = Utils.filename path
  OUTPUTS.each do |config|
    scale = config[0]
    suffix = config[1]
    filename = "#{name}#{suffix}.#{OUTPUT_FORMAT}"
    puts "Generating #{filename}..."
    image = resize path, res * scale
    save_file image, filename, OUTPUT_FORMAT
  end
  puts "Done!".green
  @saved_files.clear
end
resize(path, res) click to toggle source
# File lib/retinator.rb, line 56
        def resize(path, res)
  image = MiniMagick::Image.open path
  return image.resize("#{res}x#{res}^")
end
save_file(image, filename, format) click to toggle source
# File lib/retinator.rb, line 61
        def save_file(image, filename, format)
  image.format format
  image.write filename
  @saved_files << filename
end
show_dimension_hint_if_needed(path, res) click to toggle source
# File lib/retinator.rb, line 47
        def show_dimension_hint_if_needed(path, res)
  image = MiniMagick::Image.open(path)
  smaller_dimensions = image.dimensions.select { |d| d <= res * OUTPUT_MAX_SCALE}
  if !smaller_dimensions.empty?
    puts "[!] Size of the source image is smaller than the destination resolution".yellow
    puts "    Result images could be pixelated".yellow
  end
end