class WatchDoge::Regression::Manager

Public Class Methods

new(scenario_path, regression_flag: @scenario_path = scenario_path) click to toggle source
# File lib/watchdoge/regression.rb, line 44
def initialize scenario_path, regression_flag:
  @scenario_path = scenario_path
  @scenario_name = File.basename @scenario_path, '.rb'
  @regression_flag = regression_flag

  @setup_proc = nil
  @teardown_proc = nil

  worker_options =
    WatchDoge.configuration.default_worker_options.merge WatchDoge.configuration.worker_options

  @worker = WatchDoge::Worker.new @scenario_name, worker_options.dup

  @view_port = {}
end
run_all_scenarios(regression_flag) click to toggle source
# File lib/watchdoge/regression.rb, line 22
def run_all_scenarios regression_flag
  WatchDoge.hooks.before_regression.each { |t| instance_exec &t }

  Dir["#{WatchDoge::Regression::Utils.scenarios_dir}/*"].each do |scenario_path|
    mgr = self.new scenario_path, regression_flag: regression_flag

    WatchDoge.hooks.before_scenario.each { |t| mgr.instance_exec &t }

    if WatchDoge.hooks.around_scenario
      WatchDoge.hooks.around_scenario.call(Proc.new { mgr.eval_scenario })
    else
      mgr.eval_scenario
    end

    WatchDoge.hooks.after_scenario.each { |t| mgr.instance_exec &t }
  end

  WatchDoge.hooks.after_regression.each { |t| instance_exec &t }
  WatchDoge::Notification.flush
end

Public Instance Methods

eval_scenario() click to toggle source
# File lib/watchdoge/regression.rb, line 60
def eval_scenario
  puts "scenario: #{@scenario_name} begin"
  instance_eval File.read(@scenario_path), @scenario_path
  @worker.close
  puts "scenario: #{@scenario_name} end\n"
  puts ""
end
reference_image() click to toggle source
# File lib/watchdoge/regression.rb, line 68
def reference_image
  WatchDoge::Regression::Utils.reference_dir + "/#{@scenario_name}/#{@reference_file_name}.png"
end