class HypDiff::NodeMap
@api private
Attributes
map[R]
Public Class Methods
for(change_node_tuples, &block)
click to toggle source
# File lib/hyp_diff.rb, line 45 def self.for(change_node_tuples, &block) new.build(change_node_tuples).map end
new()
click to toggle source
# File lib/hyp_diff.rb, line 51 def initialize @map = {} @stashed = [] end
Public Instance Methods
append_to_node(node, change)
click to toggle source
# File lib/hyp_diff.rb, line 81 def append_to_node(node, change) list = (@map[node] ||= []) list << change end
build(change_node_tuples)
click to toggle source
# File lib/hyp_diff.rb, line 56 def build(change_node_tuples) change_node_tuples.each do |change, node| if node if @stashed.length > 0 @stashed.each do |stashed_change| append_to_node(node, stashed_change) end @stashed = [] end append_to_node(node, change) @last_processed_node = node else if @last_processed_node append_to_node(@last_processed_node, change) else @stashed << change end end end self end