module CapybaraInlineScreenshot

Public Class Methods

artifact_escape_code_for_image(path) click to toggle source
# File lib/capybara-inline-screenshot.rb, line 24
def self.artifact_escape_code_for_image(path)
  relative_path = path.sub(/\A#{base_artifact_dir}\/?/, '')
  "\e]1338;url=artifact://#{relative_path}\a"
end
base64_escape_code_for_image(path) click to toggle source
# File lib/capybara-inline-screenshot.rb, line 29
def self.base64_escape_code_for_image(path)
  name = inline_base64(File.basename(path))
  image = inline_base64(File.read(path))
  "\e]1337;File=name=#{name};inline=1:#{image}\a"
end
base_artifact_dir() click to toggle source
# File lib/capybara-inline-screenshot.rb, line 12
def self.base_artifact_dir
  @base_artifact_dir || (Rails.root if defined? Rails)
end
base_artifact_dir=(path) click to toggle source

Sets the default base directory for artifacts (usually the root dir of the project). Defaults to Rails.root but can be set to another value if you're not using Rails.

# File lib/capybara-inline-screenshot.rb, line 8
def self.base_artifact_dir=(path)
  @base_artifact_dir = path
end
escape_code_for_image(path) click to toggle source
# File lib/capybara-inline-screenshot.rb, line 16
def self.escape_code_for_image(path)
  if ENV['CI'] || ENV['CAPYBARA_INLINE_SCREENSHOT'] == 'artifact'
    artifact_escape_code_for_image(path)
  else
    base64_escape_code_for_image(path)
  end
end
inline_base64(string) click to toggle source
# File lib/capybara-inline-screenshot.rb, line 35
def self.inline_base64(string)
  Base64.encode64(string).gsub("\n",'')
end