class Applitools::Selenium::VGTask

Attributes

name[RW]
uuid[RW]

Public Class Methods

new(name, &block) click to toggle source
# File lib/applitools/selenium/visual_grid/vg_task.rb, line 7
def initialize(name, &block)
  self.name = name
  @block_to_run = block if block_given?
  @callback = []
  @error_callback = []
  @completed_callback = []
  self.uuid = SecureRandom.uuid
end

Public Instance Methods

call() click to toggle source
# File lib/applitools/selenium/visual_grid/vg_task.rb, line 31
def call
  return unless @block_to_run.respond_to? :call
  begin
    res = @block_to_run.call
    @callback.each do |cb|
      cb.call(res) if cb.respond_to? :call
    end
  rescue StandardError => e
    Applitools::EyesLogger.logger.error 'Failed to execute task!'
    Applitools::EyesLogger.logger.error e.message
    Applitools::EyesLogger.logger.error e.backtrace.join('\n\t')
    @error_callback.each do |ecb|
      ecb.call(e) if ecb.respond_to? :call
    end
  ensure
    @completed_callback.each do |ccb|
      ccb.call if ccb.respond_to? :call
    end
  end
end
on_task_completed(&block) click to toggle source
# File lib/applitools/selenium/visual_grid/vg_task.rb, line 26
def on_task_completed(&block)
  @completed_callback.push block if block_given?
  self
end
on_task_error(&block) click to toggle source
# File lib/applitools/selenium/visual_grid/vg_task.rb, line 21
def on_task_error(&block)
  @error_callback.push block if block_given?
  self
end
on_task_succeeded(&block) click to toggle source
# File lib/applitools/selenium/visual_grid/vg_task.rb, line 16
def on_task_succeeded(&block)
  @callback.push block if block_given?
  self
end