Class: Dyph::Support::DiffDoubleQueue
- Inherits:
-
Object
- Object
- Dyph::Support::DiffDoubleQueue
- Defined in:
- lib/dyph/support/diff3.rb
Instance Attribute Summary collapse
-
#current_side ⇒ Object
readonly
Returns the value of attribute current_side.
Instance Method Summary collapse
- #choose_side ⇒ Object
- #dequeue(side = current_side) ⇒ Object
- #empty?(side = current_side) ⇒ Boolean
- #enqueue(side = current_side, val) ⇒ Object
- #finished? ⇒ Boolean
- #get(side = current_side) ⇒ Object
-
#initialize(left = [], right = []) ⇒ DiffDoubleQueue
constructor
A new instance of DiffDoubleQueue.
- #peek(side = current_side) ⇒ Object
- #switch_sides(side = current_side) ⇒ Object
Constructor Details
#initialize(left = [], right = []) ⇒ DiffDoubleQueue
110 111 112 |
# File 'lib/dyph/support/diff3.rb', line 110 def initialize(left=[], right=[]) @diffs = { left: left, right: right } end |
Instance Attribute Details
#current_side ⇒ Object (readonly)
Returns the value of attribute current_side.
109 110 111 |
# File 'lib/dyph/support/diff3.rb', line 109 def current_side @current_side end |
Instance Method Details
#choose_side ⇒ Object
142 143 144 145 146 147 148 149 150 151 |
# 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) ⇒ Object
114 115 116 |
# File 'lib/dyph/support/diff3.rb', line 114 def dequeue(side=current_side) @diffs[side].shift end |
#empty?(side = current_side) ⇒ Boolean
134 135 136 |
# File 'lib/dyph/support/diff3.rb', line 134 def empty?(side=current_side) @diffs[side].empty? end |
#enqueue(side = current_side, val) ⇒ Object
126 127 128 |
# File 'lib/dyph/support/diff3.rb', line 126 def enqueue(side=current_side, val) @diffs[side] << val end |
#finished? ⇒ Boolean
122 123 124 |
# File 'lib/dyph/support/diff3.rb', line 122 def finished? empty?(:left) && empty?(:right) end |
#get(side = current_side) ⇒ Object
130 131 132 |
# File 'lib/dyph/support/diff3.rb', line 130 def get(side=current_side) @diffs[side] end |
#peek(side = current_side) ⇒ Object
118 119 120 |
# File 'lib/dyph/support/diff3.rb', line 118 def peek(side=current_side) @diffs[side] end |
#switch_sides(side = current_side) ⇒ Object
138 139 140 |
# File 'lib/dyph/support/diff3.rb', line 138 def switch_sides(side=current_side) @current_side = side == :left ? :right : :left end |