Skip to content

Commit

Permalink
Use GitHub flavored markdown for syntax highlighting.
Browse files Browse the repository at this point in the history
  • Loading branch information
postmodern committed Dec 28, 2023
1 parent dc095cf commit 722ec92
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 37 deletions.
3 changes: 2 additions & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@ group :development do
gem 'rspec', '~> 3.0'

gem 'kramdown'
gem 'yard', '~> 0.9'
gem 'redcarpet', platform: :mri
gem 'yard', '~> 0.9'
end
78 changes: 42 additions & 36 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,56 +21,62 @@ module.

Diff two HTML documents:

require 'nokogiri'
require 'tdiff'

class Nokogiri::XML::Node

include TDiff

def tdiff_equal(node)
if (self.text? && node.text?)
self.text == node.text
elsif (self.respond_to?(:root) && node.respond_to?(:root))
self.root.tdiff_equal(node.root)
elsif (self.respond_to?(:name) && node.respond_to?(:name))
self.name == node.name
else
false
end
end
```ruby
require 'nokogiri'
require 'tdiff'

class Nokogiri::XML::Node

include TDiff

def tdiff_equal(node)
if (self.text? && node.text?)
self.text == node.text
elsif (self.respond_to?(:root) && node.respond_to?(:root))
self.root.tdiff_equal(node.root)
elsif (self.respond_to?(:name) && node.respond_to?(:name))
self.name == node.name
else
false
end
end

def tdiff_each_child(node,&block)
node.children.each(&block)
end
def tdiff_each_child(node,&block)
node.children.each(&block)
end

end
end

doc1 = Nokogiri::HTML('<div><p>one</p> <p>three</p></div>')
doc2 = Nokogiri::HTML('<div><p>one</p> <p>two</p> <p>three</p></div>')
doc1 = Nokogiri::HTML('<div><p>one</p> <p>three</p></div>')
doc2 = Nokogiri::HTML('<div><p>one</p> <p>two</p> <p>three</p></div>')

doc1.at('div').tdiff(doc2.at('div')) do |change,node|
puts "#{change} #{node.to_html}".ljust(30) + node.parent.path
end
doc1.at('div').tdiff(doc2.at('div')) do |change,node|
puts "#{change} #{node.to_html}".ljust(30) + node.parent.path
end
```

### Output

+ <p>one</p> /html/body/div
+ /html/body/div
<p>one</p> /html/body/div
/html/body/div
<p>three</p> /html/body/div
- one /html/body/div/p[1]
+ two /html/body/div/p[2]
three /html/body/div/p[2]
```
+ <p>one</p> /html/body/div
+ /html/body/div
<p>one</p> /html/body/div
/html/body/div
<p>three</p> /html/body/div
- one /html/body/div/p[1]
+ two /html/body/div/p[2]
three /html/body/div/p[2]
```

## Requirements

* [ruby](http://www.ruby-lang.org/) >= 1.8.7

## Install

$ gem install tdiff
```shell
$ gem install tdiff
```

## Copyright

Expand Down

0 comments on commit 722ec92

Please sign in to comment.