diff --git a/lib/screenshot.rb b/lib/screenshot.rb index de1085c..764d942 100644 --- a/lib/screenshot.rb +++ b/lib/screenshot.rb @@ -23,34 +23,38 @@ class Screenshot @theme = theme end - def generate_theme_image + def generate_theme_image(builder) if File.exist? target_file - puts "Image for theme #{theme.name} already exists" + builder.say_status :exists, target_file, :blue return end - puts "Generating image for theme #{theme.name}" + builder.say_status :generating, target_file, :green + visit '/' within ".theme_#{theme.slug}" do choose 'sidebar_theme_rd' end sleep 1 - file = Tempfile.new([theme.slug, ".png"]) - begin - page.save_screenshot(file.path, full: true) - - MiniMagick::Tool::Convert.new do |convert| - convert << file.path - convert.crop '220x220+0+0' - convert << target_file - end - ensure - file.close - file.unlink + create_thumbnail do |path| + page.save_screenshot(path, full: true) end end + def create_thumbnail + file = Tempfile.new([theme.slug, ".png"]) + yield(file.path) + MiniMagick::Tool::Convert.new do |convert| + convert << file.path + convert.crop '220x220+0+0' + convert << target_file + end + ensure + file.close + file.unlink + end + def target_file "source/images/theme/#{theme.slug}-#{theme.digest}.png" end diff --git a/lib/screenshot_generator.rb b/lib/screenshot_generator.rb index 223e60c..0c2b509 100644 --- a/lib/screenshot_generator.rb +++ b/lib/screenshot_generator.rb @@ -5,12 +5,14 @@ class ScreenshotGenerator < ::Middleman::Extension def initialize(app, options_hash={}, &block) super - app.before_build do + app.before_build do |builder| + builder.say "==> Begin - Theme thumbnail generator", :green Screenshot.prepare themes.each do |theme| - Screenshot.new(theme).generate_theme_image + Screenshot.new(theme).generate_theme_image(builder) end + builder.say "==> End - Theme thumbnail generator", :green end end end