#!/usr/bin/env ruby

require 'rubygems'
require 'RMagick'

# config
DEBUG = false

def resize_crop_save(image,axis)
  ['small','large','xlarge'].each do |size|
    px = case size
    when 'small' then 66
    when 'large' then 130
    when 'xlarge' then 195
    end
  
    geom = case axis
    when 'x' then "#{px}x"
    when 'y' then "x#{px}"
    end
  
    extra_vert_pix = size == 'small' ? 6 : 0
    
    #if size == 'large'
    conv_str = case size
      
    when 'large' then "convert #{image.filename} -resize #{geom} -crop #{px}x#{px-extra_vert_pix}-0-0 -alpha On mask.png -compose DstIn -composite  ./discover-thumbnails/#{size}/#{image.filename.gsub(/jpg$/,'png')}"
    when 'xlarge' then "convert #{image.filename} -resize #{geom} -crop #{px}x#{px-extra_vert_pix}-0-0 -alpha On mask_large.png -compose DstIn -composite  ./discover-thumbnails/#{size}/#{image.filename.gsub(/jpg$/,'png')}"
    when 'small' then "convert #{image.filename} -resize #{geom} -crop #{px}x#{px-extra_vert_pix}-0-0  ./discover-thumbnails/#{size}/#{image.filename.gsub(/jpg$/,'png')}"
    end
    system(conv_str)
    
  end
end

jpegs = Dir.glob('*.jpg')

i = 0 # set an iterator for use during testing

jpegs.each do |filename|
  break if DEBUG && i > 5
  
  next if File.exists?("./discover-thumbnails/small/#{filename.gsub(/jpg$/,'png')}")
  
  puts filename
  
  image = Magick::ImageList.new(filename)
  width, height = image.columns, image.rows
  
  if width > height
    resize_crop_save(image,'y')
  else
    resize_crop_save(image,'x')

  end
  
  i = i + 1
end

