Refactor to config class
This commit is contained in:
parent
6d569710b9
commit
4de5db835d
|
@ -5,7 +5,7 @@ require 'jekyll'
|
|||
require 'rmagick'
|
||||
|
||||
require 'jekyll/responsive_image/version'
|
||||
require 'jekyll/responsive_image/defaults'
|
||||
require 'jekyll/responsive_image/config'
|
||||
require 'jekyll/responsive_image/utils'
|
||||
require 'jekyll/responsive_image/render_cache'
|
||||
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
|
||||
|
||||
def generate(site)
|
||||
renderer = Renderer.new(site, {})
|
||||
config = renderer.make_config
|
||||
config = Config.new(site).to_h
|
||||
|
||||
config['extra_images'].each do |pathspec|
|
||||
Dir.glob(site.in_source_dir(pathspec)) do |image_path|
|
||||
|
|
|
@ -8,18 +8,12 @@ module Jekyll
|
|||
@attributes = attributes
|
||||
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
|
||||
cache_key = @attributes.to_s
|
||||
result = @attributes['cache'] ? RenderCache.get(cache_key) : nil
|
||||
|
||||
if result.nil?
|
||||
config = make_config
|
||||
config = Config.new(@site).to_h
|
||||
|
||||
absolute_image_path = @site.in_source_dir(@attributes['path'].to_s)
|
||||
image = ImageProcessor.process(absolute_image_path, @attributes['path'], config)
|
||||
|
|
Loading…
Reference in New Issue