Class: JekyllRecker::Generators::ImageResize
- Inherits:
-
Jekyll::Generator
- Object
- Jekyll::Generator
- JekyllRecker::Generators::ImageResize
show all
- Includes:
- Base
- Defined in:
- lib/jekyll_recker/generators.rb
Overview
Instance Attribute Summary
Attributes included from Base
#site
Instance Method Summary
collapse
Methods included from Base
#data_file_target, #generate, #name
Methods included from Math
#average, #occurences, #total
Methods included from Logging
included, #info, #logger
Methods included from Date
#calculate_streaks, #slice_by_consecutive, #time_to_date
Instance Method Details
#crunch ⇒ Object
96
97
98
99
100
101
102
103
104
105
|
# File 'lib/jekyll_recker/generators.rb', line 96
def crunch
load_deps!
info 'checking images'
resizeable_images.each do |f, d|
info "resizing #{f} to fit #{d}"
image = MiniMagick::Image.new(f)
image.resize d
end
nil
end
|
#images_without_graphs ⇒ Object
116
117
118
|
# File 'lib/jekyll_recker/generators.rb', line 116
def images_without_graphs
site.images.reject { |i| i.include?('/graphs/') }
end
|
#load_deps! ⇒ Object
111
112
113
114
|
# File 'lib/jekyll_recker/generators.rb', line 111
def load_deps!
require 'fastimage'
require 'mini_magick'
end
|
#resizeable_images ⇒ Object
120
121
122
123
124
125
126
127
128
129
130
131
|
# File 'lib/jekyll_recker/generators.rb', line 120
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) ⇒ Boolean
107
108
109
|
# File 'lib/jekyll_recker/generators.rb', line 107
def too_big?(width, height)
width > 800 || height > 800
end
|