class Phototrimmer

Public Class Methods

new(max_size, src_path, dest_path=nil) click to toggle source
# File lib/phototrim.rb, line 10
def initialize max_size, src_path, dest_path=nil
  @size = max_size
  @src = src_path
  @dest = dest_path.nil? ? @src : dest_path
end

Public Instance Methods

ignored_type(object) click to toggle source
# File lib/phototrim.rb, line 48
def ignored_type object
  %w[. ..].include? object or %w[.svg].include? File.extname object
end
main() click to toggle source
# File lib/phototrim.rb, line 16
def main
  system("mkdir -p #{@dest}")
  File.directory? @src ? wrangle : trim
end
trim() click to toggle source
# File lib/phototrim.rb, line 37
def trim
  puts "Processing file #{@src}"
  victim = ImageList.new @src
  if victim.columns > @size
    puts "#{@src} is beyond #{@size}px wide, scaling down.."
    victim = victim.scale @size.to_f/victim.columns
    puts "Scaled down #{@src}"
    victim.write @dest
  end
end
wrangle() click to toggle source
# File lib/phototrim.rb, line 21
def wrangle
  Dir.foreach @src do |object|
    next if ignored_type object
    subtrimmer = Phototrimmer.new @size, 
                                  File.join(@src, object), 
                                  File.join(@dest, object)
    if File.directory? File.join @src, object
      puts "Processing images within #{object}..."
      system "mkdir -p #{ File.join @dest, object }"
      subtrimmer.wrangle
    else
      subtrimmer.trim
    end
  end
end