lib/middleman-simple-thumbnailer/extension.rb in middleman-simple-thumbnailer-0.0.5 vs lib/middleman-simple-thumbnailer/extension.rb in middleman-simple-thumbnailer-0.0.7

- old
+ new

@@ -1,48 +1,39 @@ # # add resize_to param to image_tag to create thumbnails # # # Usage: -# = image_tag item.image, resize_to: '50x30', class: 'center' +# = image_tag item.image, resize_to: '50x30', class: 'thumbnail' # module MiddlemanSimpleThumbnailer class Extension < Middleman::Extension + def initialize(app, options_hash={}, &block) - app.helpers do + super + app.after_build do |builder| + MiddlemanSimpleThumbnailer::Image.all_objects.each do |image| + builder.say_status :create, "#{image.resized_img_path}" + image.save! + end + end + end + helpers do - def image_tag(path, options={}) - resize_to = options.delete(:resize_to) - return super(path, options) unless resize_to + def image_tag(path, options={}) + resize_to = options.delete(:resize_to) + return super(path, options) unless resize_to - # config variables - middleman_settings = self.config - images_dir = middleman_settings[:images_dir] - build_dir = middleman_settings[:build_dir] - - # image paths variables - image_basename = File.basename(path) - new_image_basename = image_basename.split('.').tap { |a| a.insert(-2, resize_to) }.join('.') - new_image_path = path.gsub(image_basename, new_image_basename) - - # resize - image = Magick::Image.read("./source/#{images_dir}/#{path}").first - image.change_geometry!(resize_to) { |cols, rows, img| img.resize!(cols, rows) } - - # rendering - if middleman_settings.environment == :development - data = Base64.encode64(image.to_blob) - super("data:#{image.mime_type};base64,#{data}", options) - else - image.write("./#{build_dir}/#{images_dir}/#{new_image_path}") - super(new_image_path, options) - end + image = MiddlemanSimpleThumbnailer::Image.new(path, self.config) + image.resize!(resize_to) + if environment == :development + super("data:#{image.mime_type};base64,#{image.base64_data}", options) + else + super(image.resized_img_path, options) end - - end - super + end end end ::Middleman::Extensions.register(:middleman_simple_thumbnailer, MiddlemanSimpleThumbnailer::Extension) \ No newline at end of file