Class: HTMLDOMDiff::DeltaTreeBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/html-dom-diff/delta_tree_builder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ldoc, rdoc) ⇒ DeltaTreeBuilder



4
5
6
7
8
9
10
# File 'lib/html-dom-diff/delta_tree_builder.rb', line 4

def initialize(ldoc, rdoc)
  @ldoc     = ldoc
  @rdoc     = rdoc
  @weights  = {}
  @forward  = {}
  @backward = {}
end

Instance Attribute Details

#ldocObject (readonly)

Returns the value of attribute ldoc.



3
4
5
# File 'lib/html-dom-diff/delta_tree_builder.rb', line 3

def ldoc
  @ldoc
end

#rdocObject (readonly)

Returns the value of attribute rdoc.



3
4
5
# File 'lib/html-dom-diff/delta_tree_builder.rb', line 3

def rdoc
  @rdoc
end

Instance Method Details

#add_weight(element, weight) ⇒ Object



20
21
22
# File 'lib/html-dom-diff/delta_tree_builder.rb', line 20

def add_weight(element, weight)
  @weights[element] = weight
end

#left_match(lnode) ⇒ Object



37
38
39
# File 'lib/html-dom-diff/delta_tree_builder.rb', line 37

def left_match(lnode)
  @forward[lnode]
end

#left_matched?(lnode) ⇒ Boolean



41
42
43
# File 'lib/html-dom-diff/delta_tree_builder.rb', line 41

def left_matched?(lnode)
  @forward.has_key?(lnode)
end

#left_matches?(lnode, rnode) ⇒ Boolean



33
34
35
# File 'lib/html-dom-diff/delta_tree_builder.rb', line 33

def left_matches?(lnode, rnode)
  @forward[lnode] == rnode
end

#match(left, right) ⇒ Object



28
29
30
31
# File 'lib/html-dom-diff/delta_tree_builder.rb', line 28

def match(left, right)
  @forward[left]   = right
  @backward[right] = left
end

#right_matched?(rnode) ⇒ Boolean



45
46
47
# File 'lib/html-dom-diff/delta_tree_builder.rb', line 45

def right_matched?(rnode)
  @backward.has_key?(rnode)
end

#rootObject



12
13
14
# File 'lib/html-dom-diff/delta_tree_builder.rb', line 12

def root
  wrap @rdoc
end

#total_weightObject



16
17
18
# File 'lib/html-dom-diff/delta_tree_builder.rb', line 16

def total_weight
  @weights[ldoc].to_f + @weights[rdoc].to_f
end

#weight(element) ⇒ Object



24
25
26
# File 'lib/html-dom-diff/delta_tree_builder.rb', line 24

def weight(element)
  @weights[element]
end