class JekyllRecker::Generators::ImageResize

Image Resize Generator

Attributes

site[R]

Public Instance Methods

generate(site) click to toggle source
# File lib/jekyll_recker/generators.rb, line 73
def generate(site)
  @site = Site.new(site)
  if @site.production? && @site.recker_config.fetch('production_skip_images', true)
    info 'skipping image resizing (production)'
  else
    info 'checking images sizes'
    resizeable_images.each do |f, d|
      info "resizing #{f} to fit #{d}"
      image = MiniMagick::Image.new(f)
      image.resize d
    end
  end
end
images_without_graphs() click to toggle source
# File lib/jekyll_recker/generators.rb, line 91
def images_without_graphs
  site.images.reject { |i| i.include?('/graphs/') }
end
resizeable_images() click to toggle source
# File lib/jekyll_recker/generators.rb, line 95
def resizeable_images
  with_sizes = images_without_graphs.map { |f| [f, FastImage.size(f)].flatten }
  with_sizes.select! { |f| too_big?(f[1], f[2]) }
  with_sizes.map do |f, w, h|
    dimensions = if w > h
                   '800x600'
                 else
                   '600x800'
                 end
    [f, dimensions]
  end
end
too_big?(width, height) click to toggle source
# File lib/jekyll_recker/generators.rb, line 87
def too_big?(width, height)
  width > 800 || height > 800
end