Class: UICov::Merge

Inherits:
Command show all
Defined in:
lib/uicov/commands/merge.rb

Constant Summary collapse

DEFAULT_FILENAME =
'merged.uic'
OPTIONS =
{
  '--merged-file=FILE' => "File to store merged coverage [default is '#{DEFAULT_FILENAME}']",
  # '--no-transitions' => 'Do not merge transitions coverage',
  # '--no-actions    ' => 'Do not merge actions coverage',
  # '--no-checks     ' => 'Do not merge checks coverage',
  # '--no-elements   ' => 'Do not merge elements coverage'
}
USAGE_INFO =

‘–no-transitions’ => ‘Do not merge transitions coverage’, ‘–no-actions ’ => ‘Do not merge actions coverage’, ‘–no-checks ’ => ‘Do not merge checks coverage’, ‘–no-elements ’ => ‘Do not merge elements coverage’

%Q^[options] template.uic file1.uic [file2.uic ... fileN.uic]
  \n\rWhere options are:
  #{OPTIONS.inject([]){|a, e| a << "\r\t#{e[0]}\t- #{e[1]}"; a}.join("\n")}
^

Constants inherited from Command

Command::COMMAND_PREFIX

Instance Method Summary collapse

Methods inherited from Command

#usage

Constructor Details

#initializeMerge



20
21
22
# File 'lib/uicov/commands/merge.rb', line 20

def initialize
  @merged_file = DEFAULT_FILENAME
end

Instance Method Details

#do_job(args) ⇒ Object



24
25
26
27
28
29
# File 'lib/uicov/commands/merge.rb', line 24

def do_job(args)
  usage 'Missed coverage file', USAGE_INFO if args.empty?
  cov_files = process_args args
  merge(cov_files)
  @merged.save(@merged_file)
end

#merge(cov_files) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/uicov/commands/merge.rb', line 31

def merge(cov_files)
  Log.warn 'Only one file is given. Nothing to merge.' if cov_files.size == 1
  @merged = CovData.load cov_files[0]
  cov_files[1..-1].each do |cov_file|
    @cd = CovData.load cov_file
    @cd.screens.each do |name, screen_data|
      msd = @merged.screens[name]
      if msd.nil?
        @merged.screens[name] = screen_data.dup
      else
        merge_screen_data msd, screen_data
      end
    end
    @merged.input_files.merge! @cd.input_files
  end
  return @merged
end