class Motion::IconGenerator::Image

Attributes

size[R]

Public Class Methods

new(size) click to toggle source

Create a new Image

size - An ImageSize to specifcy the size and name of image.

# File lib/motion/icon_generator/image.rb, line 16
def initialize(size)
  @size = size
end

Public Instance Methods

report() click to toggle source

Prints feedback to STDOUT

# File lib/motion/icon_generator/image.rb, line 27
def report
  if File.exist?(filename)
    puts("Created #{filename.ljust(50)}\t(#{size.actual_width}x#{size.actual_height})")
  else
    warn("Couldn't write #{filename}")
  end
end
write!() click to toggle source

Writes this image to disk

# File lib/motion/icon_generator/image.rb, line 21
def write!
  create_target_directory
  scaled_image.write(filename)
end

Private Instance Methods

create_target_directory() click to toggle source
# File lib/motion/icon_generator/image.rb, line 55
def create_target_directory
  FileUtils.mkdir(target) unless Dir.exist?(target)
end
filename() click to toggle source
# File lib/motion/icon_generator/image.rb, line 43
def filename
  "#{target}/#{size.name}"
end
img_name() click to toggle source
# File lib/motion/icon_generator/image.rb, line 59
def img_name
  ENV['TEMPLATE'] || "resources/icon-template.png"
end
scaled_image() click to toggle source
# File lib/motion/icon_generator/image.rb, line 39
def scaled_image
  template_image.resize("#{size.actual_width}x#{size.actual_height}")
end
target() click to toggle source
# File lib/motion/icon_generator/image.rb, line 63
def target
  ENV['TARGET'] || 'icons'
end
template_image() click to toggle source
# File lib/motion/icon_generator/image.rb, line 47
def template_image
  if File.exist?(img_name)
    MiniMagick::Image.open(img_name)
  else
    raise "No template image specified. Did you create resources/icon-template.png?"
  end
end