Class: Dyph::Support::Diff3

Inherits:
Object
  • Object
show all
Defined in:
lib/dyph/support/diff3.rb

Defined Under Namespace

Classes: Diff2Command

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(left, base, right, diff2) ⇒ Diff3

Returns a new instance of Diff3.



9
10
11
12
13
14
# File 'lib/dyph/support/diff3.rb', line 9

def initialize(left, base, right, diff2)
  @left   = left
  @right  = right
  @base   = base
  @diff2 = diff2
end

Class Method Details

.execute_diff(left, base, right, diff2) ⇒ Object



5
6
7
# File 'lib/dyph/support/diff3.rb', line 5

def self.execute_diff(left, base, right, diff2)
  Diff3.new(left, base, right, diff2).get_differences
end

Instance Method Details

#get_differencesObject



16
17
18
19
20
21
# File 'lib/dyph/support/diff3.rb', line 16

def get_differences
  #[[action, base_lo, base_hi, side_lo, side_hi]...]
  left_diff  = @diff2.diff(@base, @left).map { |r| Diff2Command.new(*r) }
  right_diff = @diff2.diff(@base, @right).map { |r| Diff2Command.new(*r) }
  collapse_differences(DiffDoubleQueue.new(left_diff, right_diff))
end