class Applitools::Images::Target

Attributes

accessibility_regions[RW]
floating_regions[RW]
ignored_regions[RW]
image[RW]
options[RW]
region_to_check[RW]

Public Class Methods

any(screenshot) click to toggle source
# File lib/applitools/images/target.rb, line 30
def any(screenshot)
  case screenshot
  when Applitools::Screenshot
    screenshot(screenshot)
  when ChunkyPNG::Image
    image(screenshot)
  when String
    begin
      blob(screenshot)
    rescue ChunkyPNG::SignatureMismatch
      path(screenshot)
    end
  else
    raise Applitools::EyesIllegalArgument.new "Passed screenshot is not image type (#{screenshot.class})"
  end
end
blob(blob_image) click to toggle source
# File lib/applitools/images/target.rb, line 12
def blob(blob_image)
  Applitools::ArgumentGuard.not_nil blob_image, 'blob_image'
  Applitools::ArgumentGuard.is_a? blob_image, 'blob_image', String
  new Applitools::Screenshot.from_datastream(blob_image)
end
image(image) click to toggle source
# File lib/applitools/images/target.rb, line 18
def image(image)
  Applitools::ArgumentGuard.not_nil image, 'image'
  Applitools::ArgumentGuard.is_a? image, 'image', ChunkyPNG::Image
  new Applitools::Screenshot.from_image(image)
end
new(image) click to toggle source
# File lib/applitools/images/target.rb, line 50
def initialize(image)
  Applitools::ArgumentGuard.not_nil(image, 'image')
  Applitools::ArgumentGuard.is_a? image, 'image', Applitools::Screenshot
  self.image = image
  self.ignored_regions = []
  self.floating_regions = []
  self.accessibility_regions = []
  self.options = {
    trim: false
  }
end
path(path) click to toggle source
# File lib/applitools/images/target.rb, line 7
def path(path)
  raise Applitools::EyesIllegalArgument unless File.exist?(path)
  new Applitools::Screenshot.from_image(ChunkyPNG::Image.from_file(path))
end
screenshot(screenshot) click to toggle source
# File lib/applitools/images/target.rb, line 24
def screenshot(screenshot)
  Applitools::ArgumentGuard.not_nil screenshot, 'screenshot'
  Applitools::ArgumentGuard.is_a? screenshot, 'screenshot', Applitools::Screenshot
  new screenshot
end

Public Instance Methods

accesibility(*args) click to toggle source
# File lib/applitools/images/target.rb, line 110
def accesibility(*args)
  accessibility_regions << case args.first
                           when Applitools::AccessibilityRegion
                             args.first
                           when Applitools::Region
                             Applitools::AccessibilityRegion.new(args.first, args.last)
                           else
                             accessibility_region_type = args.pop
                             region = Applitools::Region.new(*args)
                             Applitools::AccessibilityRegion.new(region, accessibility_region_type)
                           end
end
floating(*args) click to toggle source
# File lib/applitools/images/target.rb, line 78
def floating(*args)
  requested_padding = if args.last.is_a? Applitools::PaddingBounds
                        args.pop
                      else
                        Applitools::PaddingBounds::PIXEL_PADDING
                      end

  value = case args.first
          when Applitools::FloatingRegion
            proc { args.first.padding(requested_padding) }
          when Applitools::Region
            proc do
              region = args.shift
              Applitools::FloatingRegion.any(region, *args).padding(requested_padding)
            end
          else
            self.floating_regions = []
          end
  floating_regions << value
  self
end
ignore(*args) click to toggle source
# File lib/applitools/images/target.rb, line 62
def ignore(*args)
  requested_padding = if args.last.is_a? Applitools::PaddingBounds
                        args.pop
                      else
                        Applitools::PaddingBounds::PIXEL_PADDING
                      end
  region = args.shift
  if region
    Applitools::ArgumentGuard.is_a? region, 'region', Applitools::Region
    ignored_regions << region.padding(requested_padding)
  else
    self.ignored_regions = []
  end
  self
end
region(region = nil) click to toggle source
# File lib/applitools/images/target.rb, line 100
def region(region = nil)
  if region
    Applitools::ArgumentGuard.is_a? region, 'region', Applitools::Region
    self.region_to_check = region
  else
    self.region_to_check = nil
  end
  self
end