Sha256: bc9ff5fea6b0061790a4e7191dc74ff72b776fb91948c8641ab826fa9f3b11e1

Contents?: true

Size: 1.42 KB

Versions: 8

Compression:

Stored size: 1.42 KB

Contents

# frozen_string_literal: true

require_relative 'os'
module Capybara
  module Screenshot
    module Diff
      module Vcs
        SILENCE_ERRORS = Os::ON_WINDOWS ? '2>nul' : '2>/dev/null'

        def restore_git_revision(name, target_file_name)
          redirect_target = "#{target_file_name} #{SILENCE_ERRORS}"
          `git show HEAD~0:./#{Capybara::Screenshot.screenshot_area}/#{name}.png > #{redirect_target}`
          FileUtils.rm_f(target_file_name) unless $CHILD_STATUS == 0
        end

        def checkout_vcs(name, comparison)
          svn_file_name = "#{Capybara::Screenshot.screenshot_area_abs}/.svn/text-base/#{name}.png.svn-base"
          if File.exist?(svn_file_name)
            committed_file_name = svn_file_name
            FileUtils.cp committed_file_name, comparison.old_file_name
          else
            svn_info = `svn info #{comparison.new_file_name} #{SILENCE_ERRORS}`
            if svn_info.present?
              wc_root = svn_info.slice(/(?<=Working Copy Root Path: ).*$/)
              checksum = svn_info.slice(/(?<=Checksum: ).*$/)
              if checksum
                committed_file_name = "#{wc_root}/.svn/pristine/#{checksum[0..1]}/#{checksum}.svn-base"
                FileUtils.cp committed_file_name, comparison.old_file_name
              end
            else
              restore_git_revision(name, comparison.old_file_name)
            end
          end
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
capybara-screenshot-diff-1.3.1 lib/capybara/screenshot/diff/vcs.rb
capybara-screenshot-diff-1.3.0 lib/capybara/screenshot/diff/vcs.rb
capybara-screenshot-diff-1.2.1 lib/capybara/screenshot/diff/vcs.rb
capybara-screenshot-diff-1.2.0 lib/capybara/screenshot/diff/vcs.rb
capybara-screenshot-diff-1.1.0 lib/capybara/screenshot/diff/vcs.rb
capybara-screenshot-diff-1.0.2 lib/capybara/screenshot/diff/vcs.rb
capybara-screenshot-diff-1.0.1 lib/capybara/screenshot/diff/vcs.rb
capybara-screenshot-diff-1.0.0 lib/capybara/screenshot/diff/vcs.rb