class Perus::Pinger::Screenshot
Public Instance Methods
cleanup()
click to toggle source
# File lib/perus/pinger/metrics/screenshot.rb, line 43 def cleanup unless @screenshot_file.nil? || @screenshot_file.closed? @screenshot_file.close end File.delete(@original_path) File.delete(@thumbnail_path) end
run()
click to toggle source
# File lib/perus/pinger/metrics/screenshot.rb, line 11 def run if darwin? if options.resize[-1] != '%' raise 'Non percent resize option unsupported by OS X currently' else percent = options.resize.to_f / 100 end shell("screencapture -m -t jpg -x #{options.path}") width = shell("sips -g pixelWidth #{options.path}").match(/pixelWidth: (\d+)/)[1] height = shell("sips -g pixelHeight #{options.path}").match(/pixelHeight: (\d+)/)[1] # sips helpfully prints data to stderr, so it's run with # backticks to avoid thowing an exception on success `sips -z #{height.to_i * percent} #{width.to_i * percent} #{options.path}` else shell("export DISPLAY=:0; scrot --silent --thumb #{options.resize.to_i} #{options.path}") end # scrot produced two files: path.ext and path-thumb.ext @original_path = options.path name_parts = File.basename(options.path).split('.') name_parts[-2] += '-thumb' @thumbnail_path = File.join( File.dirname(options.path), name_parts.join('.') ) @screenshot_file = File.new(@thumbnail_path) {screenshot: @screenshot_file} end