Class: Archimate::Cli::Duper

Inherits:
Object
  • Object
show all
Defined in:
lib/archimate/cli/duper.rb

Instance Method Summary collapse

Constructor Details

#initialize(model, output, mergeall = false) ⇒ Duper

Returns a new instance of Duper.



8
9
10
11
12
13
14
# File 'lib/archimate/cli/duper.rb', line 8

def initialize(model, output, mergeall = false)
  @model = model
  @output = output
  @mergeall = mergeall
  @cli = HighLine.new
  @skipall = false
end

Instance Method Details

#listObject



16
17
18
19
20
21
22
23
# File 'lib/archimate/cli/duper.rb', line 16

def list
  dupes = Archimate::Lint::DuplicateEntities.new(@model)

  dupes.each do |element_type, _name, entities|
    @output.puts "#{element_type} has potential duplicates: \n\t#{entities.join(",\n\t")}\n"
  end
  @output.puts "Total Possible Duplicates: #{dupes.count}"
end

#mergeObject



25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/archimate/cli/duper.rb', line 25

def merge
  dupes = Archimate::Lint::DuplicateEntities.new(@model)
  if dupes.empty?
    @output.puts "No potential duplicates detected"
    return
  end

  dupes.each do |element_type, name, entities|
    handle_duplicate(element_type, name, entities)
  end

  Archimate::FileFormats::ArchiFileWriter.new(@model).write(@output)
end