Class: JekyllRecker::Generators::ImageResize
- Inherits:
-
Jekyll::Generator
- Object
- Jekyll::Generator
- JekyllRecker::Generators::ImageResize
show all
- Includes:
- Base
- Defined in:
- lib/jekyll_recker/generators/image_resize.rb
Overview
Instance Method Summary
collapse
Methods included from Base
#bodies, #dates, #entries, #production?, #word_counts, #words
Methods included from Math
#average, #total
Methods included from Logging
included, #logger
Methods included from Date
#calculate_streaks, #slice_by_consecutive
Instance Method Details
#generate(site) ⇒ Object
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/jekyll_recker/generators/image_resize.rb', line 9
def generate(site)
@site = site
if production?
logger.info 'production detected, skipping images'
return
else
logger.info 'loading image resizing deps'
require 'fastimage'
require 'mini_magick'
end
logger.info 'checking images'
resizeable_images.each do |f, d|
logger.info "resizing #{f} to fit #{d}"
image = MiniMagick::Image.new(f)
image.resize d
end
end
|
#graph?(file) ⇒ Boolean
35
36
37
|
# File 'lib/jekyll_recker/generators/image_resize.rb', line 35
def graph?(file)
file.include?('/graphs/')
end
|
#image?(file) ⇒ Boolean
27
28
29
|
# File 'lib/jekyll_recker/generators/image_resize.rb', line 27
def image?(file)
['.jpg', 'jpeg', '.png', '.svg'].include? File.extname(file)
end
|
#images ⇒ Object
39
40
41
|
# File 'lib/jekyll_recker/generators/image_resize.rb', line 39
def images
@site.static_files.collect(&:path).select { |f| image?(f) }
end
|
#resizeable_images ⇒ Object
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# File 'lib/jekyll_recker/generators/image_resize.rb', line 43
def resizeable_images
without_graphs = images.reject { |i| graph?(i) }
with_sizes = 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) ⇒ Boolean
31
32
33
|
# File 'lib/jekyll_recker/generators/image_resize.rb', line 31
def too_big?(width, height)
width > 800 || height > 800
end
|