Class: HTMLDOMDiff::DeltaTreeBuilder
- Inherits:
-
Object
- Object
- HTMLDOMDiff::DeltaTreeBuilder
- Defined in:
- lib/html-dom-diff/delta_tree_builder.rb
Instance Attribute Summary collapse
-
#ldoc ⇒ Object
readonly
Returns the value of attribute ldoc.
-
#rdoc ⇒ Object
readonly
Returns the value of attribute rdoc.
Instance Method Summary collapse
- #add_weight(element, weight) ⇒ Object
-
#initialize(ldoc, rdoc) ⇒ DeltaTreeBuilder
constructor
A new instance of DeltaTreeBuilder.
- #left_match(lnode) ⇒ Object
- #left_matched?(lnode) ⇒ Boolean
- #left_matches?(lnode, rnode) ⇒ Boolean
- #match(left, right) ⇒ Object
- #right_matched?(rnode) ⇒ Boolean
- #root ⇒ Object
- #total_weight ⇒ Object
- #weight(element) ⇒ Object
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
#ldoc ⇒ Object (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 |
#rdoc ⇒ Object (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 |
#root ⇒ Object
12 13 14 |
# File 'lib/html-dom-diff/delta_tree_builder.rb', line 12 def root wrap @rdoc end |
#total_weight ⇒ Object
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 |