class Dyph::Support::DiffDoubleQueue
Attributes
current_side[R]
Public Class Methods
new(left=[], right=[])
click to toggle source
# File lib/dyph/support/diff3.rb, line 110 def initialize(left=[], right=[]) @diffs = { left: left, right: right } end
Public Instance Methods
choose_side()
click to toggle source
# File lib/dyph/support/diff3.rb, line 142 def choose_side if empty? :left @current_side = :right elsif empty? :right @current_side = :left else #choose the lowest side relative to base @current_side = get(:left).first.base_lo <= get(:right).first.base_lo ? :left : :right end end
dequeue(side=current_side)
click to toggle source
# File lib/dyph/support/diff3.rb, line 114 def dequeue(side=current_side) @diffs[side].shift end
empty?(side=current_side)
click to toggle source
# File lib/dyph/support/diff3.rb, line 134 def empty?(side=current_side) @diffs[side].empty? end
enqueue(side=current_side, val)
click to toggle source
# File lib/dyph/support/diff3.rb, line 126 def enqueue(side=current_side, val) @diffs[side] << val end
finished?()
click to toggle source
# File lib/dyph/support/diff3.rb, line 122 def finished? empty?(:left) && empty?(:right) end
get(side=current_side)
click to toggle source
# File lib/dyph/support/diff3.rb, line 130 def get(side=current_side) @diffs[side] end
peek(side=current_side)
click to toggle source
# File lib/dyph/support/diff3.rb, line 118 def peek(side=current_side) @diffs[side] end
switch_sides(side=current_side)
click to toggle source
# File lib/dyph/support/diff3.rb, line 138 def switch_sides(side=current_side) @current_side = side == :left ? :right : :left end