Refactor to config class
This commit is contained in:
parent
6d569710b9
commit
4de5db835d
|
@ -5,7 +5,7 @@ require 'jekyll'
|
||||||
require 'rmagick'
|
require 'rmagick'
|
||||||
|
|
||||||
require 'jekyll/responsive_image/version'
|
require 'jekyll/responsive_image/version'
|
||||||
require 'jekyll/responsive_image/defaults'
|
require 'jekyll/responsive_image/config'
|
||||||
require 'jekyll/responsive_image/utils'
|
require 'jekyll/responsive_image/utils'
|
||||||
require 'jekyll/responsive_image/render_cache'
|
require 'jekyll/responsive_image/render_cache'
|
||||||
require 'jekyll/responsive_image/image_processor'
|
require 'jekyll/responsive_image/image_processor'
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
module Jekyll
|
||||||
|
module ResponsiveImage
|
||||||
|
class Config
|
||||||
|
DEFAULTS = {
|
||||||
|
'default_quality' => 85,
|
||||||
|
'base_path' => 'assets',
|
||||||
|
'output_path_format' => 'assets/resized/%{filename}-%{width}x%{height}.%{extension}',
|
||||||
|
'sizes' => [],
|
||||||
|
'extra_images' => []
|
||||||
|
}
|
||||||
|
|
||||||
|
def initialize(site)
|
||||||
|
@site = site
|
||||||
|
end
|
||||||
|
|
||||||
|
def to_h
|
||||||
|
config = DEFAULTS.merge(@site.config['responsive_image'])
|
||||||
|
.merge(site_source: @site.source, site_dest: @site.dest)
|
||||||
|
|
||||||
|
config['base_path'] = @site.in_source_dir(config['base_path'])
|
||||||
|
|
||||||
|
config
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,15 +0,0 @@
|
||||||
module Jekyll
|
|
||||||
module ResponsiveImage
|
|
||||||
@defaults = {
|
|
||||||
'default_quality' => 85,
|
|
||||||
'base_path' => 'assets',
|
|
||||||
'output_path_format' => 'assets/resized/%{filename}-%{width}x%{height}.%{extension}',
|
|
||||||
'sizes' => [],
|
|
||||||
'extra_images' => []
|
|
||||||
}.freeze
|
|
||||||
|
|
||||||
class << self
|
|
||||||
attr_reader :defaults
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -4,8 +4,7 @@ module Jekyll
|
||||||
include Jekyll::ResponsiveImage::Utils
|
include Jekyll::ResponsiveImage::Utils
|
||||||
|
|
||||||
def generate(site)
|
def generate(site)
|
||||||
renderer = Renderer.new(site, {})
|
config = Config.new(site).to_h
|
||||||
config = renderer.make_config
|
|
||||||
|
|
||||||
config['extra_images'].each do |pathspec|
|
config['extra_images'].each do |pathspec|
|
||||||
Dir.glob(site.in_source_dir(pathspec)) do |image_path|
|
Dir.glob(site.in_source_dir(pathspec)) do |image_path|
|
||||||
|
|
|
@ -8,18 +8,12 @@ module Jekyll
|
||||||
@attributes = attributes
|
@attributes = attributes
|
||||||
end
|
end
|
||||||
|
|
||||||
def make_config
|
|
||||||
ResponsiveImage.defaults.dup
|
|
||||||
.merge(@site.config['responsive_image'])
|
|
||||||
.merge(:site_source => @site.source, :site_dest => @site.dest)
|
|
||||||
end
|
|
||||||
|
|
||||||
def render_responsive_image
|
def render_responsive_image
|
||||||
cache_key = @attributes.to_s
|
cache_key = @attributes.to_s
|
||||||
result = @attributes['cache'] ? RenderCache.get(cache_key) : nil
|
result = @attributes['cache'] ? RenderCache.get(cache_key) : nil
|
||||||
|
|
||||||
if result.nil?
|
if result.nil?
|
||||||
config = make_config
|
config = Config.new(@site).to_h
|
||||||
|
|
||||||
absolute_image_path = @site.in_source_dir(@attributes['path'].to_s)
|
absolute_image_path = @site.in_source_dir(@attributes['path'].to_s)
|
||||||
image = ImageProcessor.process(absolute_image_path, @attributes['path'], config)
|
image = ImageProcessor.process(absolute_image_path, @attributes['path'], config)
|
||||||
|
|
Loading…
Reference in New Issue