Class: CaseManager

Inherits:
Object
  • Object
show all
Includes:
Singleton, Utils
Defined in:
lib/teuton/case_manager/show.rb,
lib/teuton/case_manager/report.rb,
lib/teuton/case_manager/check_cases.rb,
lib/teuton/case_manager/case_manager.rb,
lib/teuton/case_manager/hall_of_fame.rb

Overview

This class does all the job Organize the hole job, sending orders to others classes

  • initialize

  • play

Split into several files:

  • case_manager/check_cases

  • case_manager/export

  • case_manager/hall_of_fame

  • case_manager/report

  • case_manager/show

Instance Method Summary collapse

Methods included from Utils

#encode_and_split, #ensure_dir, #my_execute, #verbose, #verboseln

Constructor Details

#initializeCaseManager

Initialize CaseManager



28
29
30
31
32
# File 'lib/teuton/case_manager/case_manager.rb', line 28

def initialize
  @cases = []
  @report = Report.new(0)
  @report.filename = 'resume'
end

Instance Method Details

#export(args = {}) ⇒ Object

Execute “export” order: Export every case report

Parameters:

  • args (Hash) (defaults to: {})

    Export options



51
52
53
54
55
56
57
58
59
60
# File 'lib/teuton/case_manager/case_manager.rb', line 51

def export(args = {})
  if args.class != Hash
    puts "[ERROR] CaseManager#export: Argument = <#{args}>, " \
         "class = #{args.class}"
    puts '        Usage: export :format => :colored_text'
    raise '[ERROR] CaseManager#export: Argument error!'
  end
  # Export report files
  ExportManager.run(@report, @cases, args)
end

#play(&block) ⇒ Object

Execute “play” order: Start every single case test

Parameters:

  • block (Block)


37
38
39
40
41
42
43
44
45
46
# File 'lib/teuton/case_manager/case_manager.rb', line 37

def play(&block)
  check_cases!
  instance_eval(&block)
  # Run export if user pass option command "--export=json"
  i = Application.instance.options['export']
  export(format: i.to_sym) unless i.nil?
  # Accept "configfile" param REVISE There exists?
  i = Application.instance.options['configfile']
  export(format: i.to_sym) unless i.nil?
end

#send(args = {}) ⇒ Object

Execute “send” order: Send every case report

Parameters:

  • args (Hash) (defaults to: {})

    Send options



65
66
67
68
69
70
71
# File 'lib/teuton/case_manager/case_manager.rb', line 65

def send(args = {})
  threads = []
  puts ''
  puts "[INFO] Sending files...#{args.to_s}"
  @cases.each { |c| threads << Thread.new { c.send(args) } }
  threads.each(&:join)
end

#show(mode = :resume) ⇒ Object

Show cases and resume report data on screep

Parameters:

  • mode (Symbol) (defaults to: :resume)

    Values => :resume, :cases or :all



10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/teuton/case_manager/show.rb', line 10

def show(mode = :resume)
  return if Application.instance.quiet?

  # Show resume report data on screen
  @report.show if %i[resume all].include? mode

  # Show cases report data on screen
  return if mode == :resume

  @cases.each do |c|
    puts '=' * 40
    c.show
  end
end