Class: Markdiff::Operations::TextDiffOperation
- Defined in:
- lib/markdiff/operations/text_diff_operation.rb
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
-
#initialize(after_node:, **args) ⇒ TextDiffOperation
constructor
A new instance of TextDiffOperation.
- #inserted_node ⇒ Nokogiri::XML::Node
- #priority ⇒ Object
Constructor Details
#initialize(after_node:, **args) ⇒ TextDiffOperation
Returns a new instance of TextDiffOperation.
9 10 11 12 |
# File 'lib/markdiff/operations/text_diff_operation.rb', line 9 def initialize(after_node:, **args) super(**args) @after_node = after_node end |
Instance Method Details
#inserted_node ⇒ Nokogiri::XML::Node
15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/markdiff/operations/text_diff_operation.rb', line 15 def inserted_node before_elements = target_node.to_s.split(" ") after_elements = @after_node.to_s.split(" ") ::Diff::LCS.diff(before_elements, after_elements).flatten.each do |operation| type, position, element = *operation if type == "-" before_elements[position] = "<del>#{element}</del>" else before_elements[position] = "#{before_elements[position]}<ins>#{element}</ins>" end end ::Nokogiri::HTML.fragment(before_elements.join(" ")) end |
#priority ⇒ Object
29 30 31 |
# File 'lib/markdiff/operations/text_diff_operation.rb', line 29 def priority 1 end |