Class: Hiptest::SignatureDiffer

Inherits:
Object
  • Object
show all
Defined in:
lib/hiptest-publisher/signature_differ.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(old, current) ⇒ SignatureDiffer

Returns a new instance of SignatureDiffer.



7
8
9
10
# File 'lib/hiptest-publisher/signature_differ.rb', line 7

def initialize(old, current)
  @old = old
  @current = current
end

Class Method Details

.diff(old, current, library_name: nil) ⇒ Object



3
4
5
# File 'lib/hiptest-publisher/signature_differ.rb', line 3

def self.diff(old, current, library_name: nil)
  SignatureDiffer.new(old, current).compute_diff(library_name)
end

Instance Method Details

#compute_diff(library_name = nil) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/hiptest-publisher/signature_differ.rb', line 12

def compute_diff(library_name = nil)
  if library_name.nil?
    @old_uid = map_by_uid(@old)
    @current_uid = map_by_uid(@current)
  else
    @old_uid = map_by_uid(get_library_actionwords(@old, library_name))
    @current_uid = map_by_uid(get_library_actionwords(@current, library_name))
  end

  compute_created
  compute_deleted

  compute_definition_changed
  compute_signature_changed
  compute_renamed

  diff = {}
  diff[:created] = @created unless @created.empty?
  diff[:deleted] = @deleted unless @deleted.empty?
  diff[:renamed] = @renamed unless @renamed.empty?
  diff[:signature_changed] = @signature_changed unless @signature_changed.empty?
  diff[:definition_changed] = @definition_changed unless @definition_changed.empty?

  diff
end