class DotDiff::Snapshot
Constants
- IMAGE_EXT
Attributes
page[R]
rootdir[R]
subdir[R]
use_custom_screenshot[R]
Public Class Methods
new(options = {})
click to toggle source
# File lib/dotdiff/snapshot.rb, line 11 def initialize(options = {}) opts = { rootdir: DotDiff.image_store_path }.merge(Hash(options)) @base_filename = opts[:filename] @subdir = opts[:subdir].to_s @rootdir = opts[:rootdir].to_s @page = opts[:page] @fullscreen_file = opts[:fullscreen_file] @use_custom_screenshot = opts[:use_custom_screenshot] end
Public Instance Methods
base_filename(with_extension = true)
click to toggle source
# File lib/dotdiff/snapshot.rb, line 33 def base_filename(with_extension = true) filename = File.basename(@base_filename) extension = File.extname(filename) rtn_file = @base_filename if with_extension rtn_file = "#{@base_filename}.#{IMAGE_EXT}" if extension.empty? else rtn_file = @base_filename.sub(extension, '') unless extension.empty? end rtn_file end
basefile()
click to toggle source
# File lib/dotdiff/snapshot.rb, line 29 def basefile File.join(rootdir, subdir.to_s, base_filename) end
capture_from_browser(hide_and_show)
click to toggle source
# File lib/dotdiff/snapshot.rb, line 59 def capture_from_browser(hide_and_show) return fullscreen_file if use_custom_screenshot if hide_and_show element_handler = ElementHandler.new(page) element_handler.hide page.save_screenshot(fullscreen_file) element_handler.show else page.save_screenshot(fullscreen_file) end end
cropped_file()
click to toggle source
# File lib/dotdiff/snapshot.rb, line 25 def cropped_file @cropped_file ||= File.join(Dir.tmpdir, subdir, "#{base_filename(false)}_cropped.#{IMAGE_EXT}") end
diff_file()
click to toggle source
# File lib/dotdiff/snapshot.rb, line 55 def diff_file File.join(failure_path, "#{base_filename(false)}.diff.#{IMAGE_EXT}") end
failure_path()
click to toggle source
# File lib/dotdiff/snapshot.rb, line 47 def failure_path File.join(DotDiff.failure_image_path.to_s, subdir) end
fullscreen_file()
click to toggle source
# File lib/dotdiff/snapshot.rb, line 21 def fullscreen_file @fullscreen_file ||= File.join(Dir.tmpdir, subdir, base_filename) end
new_file()
click to toggle source
# File lib/dotdiff/snapshot.rb, line 51 def new_file File.join(failure_path, "#{base_filename(false)}.new.#{IMAGE_EXT}") end
resave_cropped_file()
click to toggle source
# File lib/dotdiff/snapshot.rb, line 73 def resave_cropped_file resave_base_file(:cropped) end
resave_fullscreen_file()
click to toggle source
# File lib/dotdiff/snapshot.rb, line 77 def resave_fullscreen_file resave_base_file(:fullscreen) end
Private Instance Methods
resave_base_file(version)
click to toggle source
# File lib/dotdiff/snapshot.rb, line 83 def resave_base_file(version) FileUtils.mkdir_p(File.join(DotDiff.image_store_path, subdir)) if !File.exist?(basefile) || DotDiff.overwrite_on_resave FileUtils.mv(send("#{version}_file"), basefile, force: true) else FileUtils.mv(send("#{version}_file"), "#{basefile}.r2", force: true) end end