class Middleman::DragonflyThumbnailer::Extension
Public Class Methods
new(app, options_hash = {}, &block)
click to toggle source
Calls superclass method
# File lib/middleman/dragonfly_thumbnailer/extension.rb, line 7 def initialize(app, options_hash = {}, &block) super configure_dragonfly end
Public Instance Methods
absolute_build_path(image)
click to toggle source
# File lib/middleman/dragonfly_thumbnailer/extension.rb, line 22 def absolute_build_path(image) File.join(app.config[:build_dir], app.config[:images_dir], build_path(image)) end
absolute_source_path(path)
click to toggle source
# File lib/middleman/dragonfly_thumbnailer/extension.rb, line 12 def absolute_source_path(path) File.join(app.config[:source], app.config[:images_dir], path) end
build_path(image)
click to toggle source
# File lib/middleman/dragonfly_thumbnailer/extension.rb, line 16 def build_path(image) dir = File.dirname(image.meta['original_path']) subdir = image.meta['geometry'].gsub(/[^a-zA-Z0-9\-]/, '') File.join(dir, subdir, image.name) end
extract_image_options(options)
click to toggle source
# File lib/middleman/dragonfly_thumbnailer/extension.rb, line 44 def extract_image_options(options) image_options = { 'format' => options.delete(:format), 'frame' => options.delete(:frame) }.delete_if { |_k, v| v.nil? } return options, image_options end
persist_file(image)
click to toggle source
# File lib/middleman/dragonfly_thumbnailer/extension.rb, line 53 def persist_file(image) path = absolute_build_path(image) image.to_file(path).close end
thumb(path, geometry, image_options = {})
click to toggle source
# File lib/middleman/dragonfly_thumbnailer/extension.rb, line 27 def thumb(path, geometry, image_options = {}) absolute_path = absolute_source_path path return unless File.exist?(absolute_path) image = ::Dragonfly.app.fetch_file(absolute_path) image.meta['original_path'] = path image.meta['geometry'] = geometry image = image.thumb(geometry, image_options) if app.build? persist_file(image) build_path(image) else image.b64_data end end
thumb_path(path, geometry, options = {})
click to toggle source
# File lib/middleman/dragonfly_thumbnailer/extension.rb, line 68 def thumb_path(path, geometry, options = {}) extension = extensions[:dragonfly_thumbnailer] _options, image_options = extension.extract_image_options(options) url = extension.thumb(path, geometry, image_options) image_path(url) if url end
thumb_tag(path, geometry, options = {})
click to toggle source
# File lib/middleman/dragonfly_thumbnailer/extension.rb, line 59 def thumb_tag(path, geometry, options = {}) extension = extensions[:dragonfly_thumbnailer] options, image_options = extension.extract_image_options(options) url = extension.thumb(path, geometry, image_options) image_tag(url, options) if url end
Private Instance Methods
configure_dragonfly()
click to toggle source
# File lib/middleman/dragonfly_thumbnailer/extension.rb, line 80 def configure_dragonfly ::Dragonfly.app.configure do datastore :memory plugin :imagemagick end end