module KickinRistretto

require 'prawn-table'

Constants

ROOT_PATH
VERSION

Public Instance Methods

clean_non_referenced_images(image_directory = 'app/assets/images') click to toggle source

Search through all images in the project and check to see if they are referenced somewhere If they are not referenced, prompt to delete them

# File lib/kickin_ristretto.rb, line 24
def clean_non_referenced_images(image_directory = 'app/assets/images')
  images = search_directory(image_directory)
  legacy_images = collect_none_referenced_images(images)
  puts "\n Delete Non Referenced Images? [Y/N]"
  answer = STDIN.gets.chomp
  if answer == 'Y'
    delete_files(legacy_images)
  elsif answer == 'N'
    puts 'Exiting'
    return false # Abort the rake task
  end
end
collect_none_referenced_images(images) click to toggle source

Returns a list of images with paths that are not referenced in the rails project

# File lib/kickin_ristretto.rb, line 70
def collect_none_referenced_images(images)
  legacy_images = []
  images.each do |image|
    filename = File.basename(image)
    result = system("grep -r '#{filename}' ./app")
    legacy_images << image if result == false
  end
  legacy_images
end
delete_files(image_files) click to toggle source

Deletes each of the files

# File lib/kickin_ristretto.rb, line 81
def delete_files(image_files)
  #image_files.each { |image_file| puts "Deleting #{image_file}" }
  image_files.each {|image_file| File.delete(image_file) if File.exist?(image_file)}
end
get_all_images_by_type(files) click to toggle source
# File lib/kickin_ristretto.rb, line 86
def get_all_images_by_type(files)
  files.group_by{ |f| File.extname(f) }
end
image_audit_report(image_directory = 'app/assets/images') click to toggle source

Produce a PDF report listing all the images in the website

# File lib/kickin_ristretto.rb, line 39
def image_audit_report(image_directory = 'app/assets/images')
  images = search_directory(image_directory)
  #filtered_images = get_all_images_by_type(images)['.gif', '.png', '.jpg', '.jpeg', '.JPG', '.JPEG']
  filtered_images = get_all_images_by_type(images).values_at('.png', '.jpg', '.jpeg', '.JPG', '.JPEG').flatten
  filtered_images = filtered_images.reject { |v| v.nil? }

  Prawn::Document.generate("image_audit_report.pdf") do
    text "Image Audit Report"

    # data = [["File Path", "Image"]]
    # filtered_images.each do |image|
    #   data += [[image, {image: image, :fit => [400, 400]}]]
    # end
    # table(data, :header => true)

    filtered_images.each do |image|
      text image
      image image, fit: [400, 400]
    end

  end
end
search_directory(image_directory = 'app/assets/images') click to toggle source

Search the Directories for images Returns a list of files with fullpath

# File lib/kickin_ristretto.rb, line 64
def search_directory(image_directory = 'app/assets/images')
  image_directory_regex = "#{image_directory}/**/*"
  Dir[image_directory_regex].select{ |e| File.file? e }
end