compare-xml 0.6 → 0.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 24ddb2d55335e31c8bca6b26447717c51f907db9
4
- data.tar.gz: 1eeccbd5f186e26e09553c577b8713a4a9eaa3d3
3
+ metadata.gz: d518768772143a33cc7c2f799678d4884af7771a
4
+ data.tar.gz: 6dff6acb2ab2c964db28c48850c902bfcb9c349d
5
5
  SHA512:
6
- metadata.gz: 85b1a91be2f641993997dbd9afe0c95a28f359fbe936d89d19afb8cd3e9998b3975ace6fc3e7a1a3b0a0684d6114e8ded56fa90c900673890e92d7d20415b799
7
- data.tar.gz: e0548edf277dd3967495f03b7d3d3e836d2fa80a56752034f691f953270e71650cb88b5af25338fe99d48bb95c66cf9d545703c7c3fd34b2270c84865ea0824b
6
+ metadata.gz: e4faae65d888e4663215d07955c3dbc34ca25cc3230b1d037f1e02f3eafb7cd11e7393032cd2fbe1a1982546138dd00a8311e1c01003c3b66ec2fea11df45505
7
+ data.tar.gz: d1eccf79ec179f0878a5580b6a1ecae52dd935658ac0d6e0645686d0577dc015b5eacf89f7630b711e867ec902c1794c08a6dd301e9648276a48e6aee45a908f
data/README.md CHANGED
@@ -17,17 +17,15 @@ CompareXML is a fast, lightweight and feature-rich tool that will solve your XML
17
17
 
18
18
  Add this line to your application's Gemfile:
19
19
 
20
- ```ruby
21
- gem 'compare-xml'
22
- ```
20
+ gem 'compare-xml'
23
21
 
24
22
  And then execute:
25
23
 
26
- $ bundle
24
+ bundle
27
25
 
28
26
  Or install it yourself as:
29
27
 
30
- $ gem install compare-xml
28
+ gem install compare-xml
31
29
 
32
30
 
33
31
 
@@ -65,32 +63,32 @@ require 'compare-xml'
65
63
  CompareXML has a variety of options that can be invoked as an optional argument, e.g.:
66
64
 
67
65
  ```ruby
68
- CompareXML.equivalent?(doc1, doc2, {ignore_comments: false, verbose: true, ...})
66
+ CompareXML.equivalent?(doc1, doc2, {collapse_whitespace: false, verbose: true, ...})
69
67
  ```
70
68
 
71
- - `collapse_whitespace: {true|false}` default: **`true`** [→ read more ←](#collapse_whitespace)
72
- - when `true`, trims and collapses whitespace
69
+ - `collapse_whitespace: {true|false}` default: **`true`**     [ show examples ](#collapse_whitespace)
70
+ - when `true`, trims and collapses whitespace
73
71
 
74
- - `ignore_attr_order: {true|false}` default: **`true`** [→ read more ←](#ignore_attr_order)
75
- - when `true`, ignores attribute order within tags
72
+ - `ignore_attr_order: {true|false}` default: **`true`**     [ show examples ](#ignore_attr_order)
73
+ - when `true`, ignores attribute order within tags
76
74
 
77
- - `ignore_attr_content: [string1, string2, ...]` default: **`[]`** [→ read more ←](#ignore_attr_content)
78
- - when provided, ignores all attributes that contain substrings `string`, `string2`, etc.
75
+ - `ignore_attr_content: [string1, string2, ...]` default: **`[]`**     [ show examples ](#ignore_attr_content)
76
+ - when provided, ignores all attributes that contain substrings `string`, `string2`, etc.
79
77
 
80
- - `ignore_attrs: [css_selector1, css_selector1, ...]` default: **`[]`** [→ read more ←](#ignore_attrs)
81
- - when provided, ignores specific *attributes* using [CSS selectors](http://www.w3schools.com/cssref/css_selectors.asp)
78
+ - `ignore_attrs: [css_selector1, css_selector1, ...]` default: **`[]`**     [ show examples ](#ignore_attrs)
79
+ - when provided, ignores specific *attributes* using [CSS selectors](http://www.w3schools.com/cssref/css_selectors.asp)
82
80
 
83
- - `ignore_comments: {true|false}` default: **`true`** [...](#ignore_comments)
84
- - when `true`, ignores comments, such as `<!-- comment -->`
81
+ - `ignore_comments: {true|false}` default: **`true`**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[⇨ show examples ⇦](#ignore_comments)
82
+ - when `true`, ignores comments, such as `<!-- comment -->`
85
83
 
86
- - `ignore_nodes: [css_selector1, css_selector1, ...]` default: **`[]`** [&rarr; read more &larr;](#ignore_nodes)
87
- - when provided, ignores specific *nodes* using [CSS selectors](http://www.w3schools.com/cssref/css_selectors.asp)
84
+ - `ignore_nodes: [css_selector1, css_selector1, ...]` default: **`[]`** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[⇨ show examples ](#ignore_nodes)
85
+ - when provided, ignores specific *nodes* using [CSS selectors](http://www.w3schools.com/cssref/css_selectors.asp)
88
86
 
89
- - `ignore_text_nodes: {true|false}` default: **`false`** [&rarr; read more &larr;](#ignore_text_nodes)
90
- - when `true`, ignores all text content within a document
87
+ - `ignore_text_nodes: {true|false}` default: **`false`**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ show examples ](#ignore_text_nodes)
88
+ - when `true`, ignores all text content within a document
91
89
 
92
- - `verbose: {true|false}` default: **`false`** [&rarr; read more &larr;](#verbose)
93
- - when `true`, instead of a boolean, `CompareXML.equivalent?` returns an array of discrepancies.
90
+ - `verbose: {true|false}` default: **`false`**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ show examples ](#verbose)
91
+ - when `true`, instead of a boolean, `CompareXML.equivalent?` returns an array of discrepancies.
94
92
 
95
93
 
96
94
  ## Options in Depth
@@ -99,22 +97,22 @@ CompareXML.equivalent?(doc1, doc2, {ignore_comments: false, verbose: true, ...})
99
97
 
100
98
  When `true`, all text content within the document is trimmed (i.e. space removed from left and right) and whitespace is collapsed (i.e. tabs, new lines, multiple whitespace characters are replaced by a single whitespace).
101
99
 
102
- **Usage Example:** `CompareXML.equivalent?(doc1, doc2, {collapse_whitespace: true})`
100
+ **Usage Example:** `CompareXML.equivalent?(doc1, doc2, {collapse_whitespace: true})`
103
101
 
104
102
  **Example:** When `true` the following HTML strings are considered equal:
105
103
 
106
- <a href="/admin"> SOME TEXT CONTENT </a>
107
- <a href="/index"> SOME TEXT CONTENT </a>
104
+ <a href="/admin"> SOME TEXT CONTENT </a>
105
+ <a href="/index"> SOME TEXT CONTENT </a>
108
106
 
109
- **Example:** When `true` the following HTML strings are considered equal:
107
+ **Example:** When `true` the following HTML strings are considered equal:
110
108
 
111
- <html>
112
- <title>
113
- This is my title
114
- </title>
115
- </html>
109
+ <html>
110
+ <title>
111
+ This is my title
112
+ </title>
113
+ </html>
116
114
 
117
- <html><title>This is my title</title></html>
115
+ <html><title>This is my title</title></html>
118
116
 
119
117
 
120
118
  ----------
@@ -124,28 +122,28 @@ CompareXML.equivalent?(doc1, doc2, {ignore_comments: false, verbose: true, ...})
124
122
 
125
123
  When `true`, all attributes are sorted before comparison and only attributes of the same type are compared.
126
124
 
127
- **Usage Example:** `CompareXML.equivalent?(doc1, doc2, {ignore_attr_order: true})`
125
+ **Usage Example:** `CompareXML.equivalent?(doc1, doc2, {ignore_attr_order: true})`
128
126
 
129
127
  **Example:** When `true` the following HTML strings are considered equal:
130
128
 
131
- <a href="/admin" class="button" target="_blank">Link</a>
132
- <a class="button" target="_blank" href="/admin">Link</a>
129
+ <a href="/admin" class="button" target="_blank">Link</a>
130
+ <a class="button" target="_blank" href="/admin">Link</a>
133
131
 
134
- **Example:** When `false` the above HTML strings are compared as follows:
132
+ **Example:** When `false` the above HTML strings are compared as follows:
135
133
 
136
- href="admin" != class="button
134
+ href="admin" != class="button
137
135
 
138
- The comparison of the `<a>` element will stop at this point, since a discrepancy is found.
136
+ The comparison of the `<a>` element will stop at this point, since a discrepancy is found.
139
137
 
140
- **Example:** When `true` the following HTML strings are compared as follows:
138
+ **Example:** When `true` the following HTML strings are compared as follows:
141
139
 
142
- <a href="/admin" class="button" target="_blank">Link</a>
143
- <a class="button" target="_blank" href="/admin" rel="nofollow">Link</a>
140
+ <a href="/admin" class="button" target="_blank">Link</a>
141
+ <a class="button" target="_blank" href="/admin" rel="nofollow">Link</a>
144
142
 
145
- class="button" == class="button"
146
- href="/admin" == href="/admin"
147
- =! rel="nofollow"
148
- target="_blank" == target="_blank"
143
+ class="button" == class="button"
144
+ href="/admin" == href="/admin"
145
+ =! rel="nofollow"
146
+ target="_blank" == target="_blank"
149
147
 
150
148
 
151
149
  ----------
@@ -155,17 +153,17 @@ CompareXML.equivalent?(doc1, doc2, {ignore_comments: false, verbose: true, ...})
155
153
 
156
154
  When provided, ignores all **attributes** that contain any of the given substrings. **Note:** types of attributes still have to match (i.e. `<p>` = `<p>`, `<div>` = `<div>`, etc).
157
155
 
158
- **Usage Example:** `CompareXML.equivalent?(doc1, doc2, {ignore_attr_content: ['button']})`
156
+ **Usage Example:** `CompareXML.equivalent?(doc1, doc2, {ignore_attr_content: ['button']})`
159
157
 
160
158
  **Example:** With `ignore_attr_content: ['button']` the following HTML strings are considered equal:
161
159
 
162
- <a href="/admin" id="button_1" class="blue button">Link</a>
163
- <a href="/admin" id="button_2" class="info button">Link</a>
160
+ <a href="/admin" id="button_1" class="blue button">Link</a>
161
+ <a href="/admin" id="button_2" class="info button">Link</a>
164
162
 
165
163
  **Example:** With `ignore_attr_content: ['menu']` the following HTML strings are considered equal:
166
164
 
167
- <a class="menu left" data-scope="abrth$menu" role="side-menu">Link</a>
168
- <a class="main menu" data-scope="ergeh$menu" role="main-menu">Link</a>
165
+ <a class="menu left" data-scope="abrth$menu" role="side-menu">Link</a>
166
+ <a class="main menu" data-scope="ergeh$menu" role="main-menu">Link</a>
169
167
 
170
168
 
171
169
  ----------
@@ -175,17 +173,17 @@ CompareXML.equivalent?(doc1, doc2, {ignore_comments: false, verbose: true, ...})
175
173
 
176
174
  When provided, ignores all **attributes** that satisfy a particular rule using [CSS selectors](http://www.w3schools.com/cssref/css_selectors.asp).
177
175
 
178
- **Usage Example:** `CompareXML.equivalent?(doc1, doc2, {ignore_attrs: ['a[rel="nofollow"]', 'input[type="hidden"']})`
176
+ **Usage Example:** `CompareXML.equivalent?(doc1, doc2, {ignore_attrs: ['a[rel="nofollow"]', 'input[type="hidden"']})`
179
177
 
180
178
  **Example:** With `ignore_attrs: ['a[rel="nofollow"]', 'a[target]']` the following HTML strings are considered equal:
181
179
 
182
- <a href="/admin" class="button" target="_blank">Link</a>
183
- <a href="/admin" class="button" target="_self" rel="nofollow">Link</a>
180
+ <a href="/admin" class="button" target="_blank">Link</a>
181
+ <a href="/admin" class="button" target="_self" rel="nofollow">Link</a>
184
182
 
185
- **Example:** With `ignore_attrs: ['a[href^="http"]', 'a[class*="button"]']` the following HTML strings are considered equal:
183
+ **Example:** With `ignore_attrs: ['a[href^="http"]', 'a[class*="button"]']` the following HTML strings are considered equal:
186
184
 
187
- <a href="http://google.ca" class="primary button">Link</a>
188
- <a href="https://google.com" class="primary button rounded">Link</a>
185
+ <a href="http://google.ca" class="primary button">Link</a>
186
+ <a href="https://google.com" class="primary button rounded">Link</a>
189
187
 
190
188
 
191
189
  ----------
@@ -195,17 +193,17 @@ CompareXML.equivalent?(doc1, doc2, {ignore_comments: false, verbose: true, ...})
195
193
 
196
194
  When `true`, ignores comments, such as `<!-- This is a comment -->`.
197
195
 
198
- **Usage Example:** `CompareXML.equivalent?(doc1, doc2, {ignore_comments: true})`
196
+ **Usage Example:** `CompareXML.equivalent?(doc1, doc2, {ignore_comments: true})`
199
197
 
200
198
  **Example:** When `true` the following HTML strings are considered equal:
201
199
 
202
- <!-- This is a comment -->
203
- <!-- This is another comment -->
200
+ <!-- This is a comment -->
201
+ <!-- This is another comment -->
204
202
 
205
- **Example:** When `true` the following HTML strings are considered equal:
203
+ **Example:** When `true` the following HTML strings are considered equal:
206
204
 
207
- <a href="/admin"><!-- This is a comment -->Link</a>
208
- <a href="/admin">Link</a>
205
+ <a href="/admin"><!-- This is a comment -->Link</a>
206
+ <a href="/admin">Link</a>
209
207
 
210
208
 
211
209
  ----------
@@ -215,17 +213,17 @@ CompareXML.equivalent?(doc1, doc2, {ignore_comments: false, verbose: true, ...})
215
213
 
216
214
  When provided, ignores all **nodes** that satisfy a particular rule using [CSS selectors](http://www.w3schools.com/cssref/css_selectors.asp).
217
215
 
218
- **Usage Example:** `CompareXML.equivalent?(doc1, doc2, {ignore_nodes: ['script', 'object']})`
216
+ **Usage Example:** `CompareXML.equivalent?(doc1, doc2, {ignore_nodes: ['script', 'object']})`
219
217
 
220
218
  **Example:** With `ignore_nodes: ['a[rel="nofollow"]', 'a[target]']` the following HTML strings are considered equal:
221
219
 
222
- <a href="/admin" class="icon" target="_blank">Link 1</a>
223
- <a href="/index" class="button" target="_self" rel="nofollow">Link 2</a>
220
+ <a href="/admin" class="icon" target="_blank">Link 1</a>
221
+ <a href="/index" class="button" target="_self" rel="nofollow">Link 2</a>
224
222
 
225
- **Example:** With `ignore_nodes: ['b', 'i']` the following HTML strings are considered equal:
223
+ **Example:** With `ignore_nodes: ['b', 'i']` the following HTML strings are considered equal:
226
224
 
227
- <a href="/admin"><i class"icon bulb"></i><b>Warning:</b> Link</a>
228
- <a href="/admin"><i class"icon info"></i><b>Message:</b> Link</a>
225
+ <a href="/admin"><i class"icon bulb"></i><b>Warning:</b> Link</a>
226
+ <a href="/admin"><i class"icon info"></i><b>Message:</b> Link</a>
229
227
 
230
228
 
231
229
  ----------
@@ -235,17 +233,17 @@ CompareXML.equivalent?(doc1, doc2, {ignore_comments: false, verbose: true, ...})
235
233
 
236
234
  When `true`, ignores all text content. Text content is anything that is included between an opening and a closing tag, e.g. `<tag>THIS IS TEXT CONTENT</tag>`.
237
235
 
238
- **Usage Example:** `CompareXML.equivalent?(doc1, doc2, {ignore_text_nodes: true})`
236
+ **Usage Example:** `CompareXML.equivalent?(doc1, doc2, {ignore_text_nodes: true})`
239
237
 
240
238
  **Example:** When `true` the following HTML strings are considered equal:
241
239
 
242
- <a href="/admin">SOME TEXT CONTENT</a>
243
- <a href="/admin">DIFFERENT TEXT CONTENT</a>
240
+ <a href="/admin">SOME TEXT CONTENT</a>
241
+ <a href="/admin">DIFFERENT TEXT CONTENT</a>
244
242
 
245
- **Example:** When `true` the following HTML strings are considered equal:
243
+ **Example:** When `true` the following HTML strings are considered equal:
246
244
 
247
- <i class="icon></i> <b>Warning:</b>
248
- <i class="icon> </i> <b>Message:</b>
245
+ <i class="icon></i> <b>Warning:</b>
246
+ <i class="icon> </i> <b>Message:</b>
249
247
 
250
248
 
251
249
  ----------
@@ -255,91 +253,58 @@ CompareXML.equivalent?(doc1, doc2, {ignore_comments: false, verbose: true, ...})
255
253
 
256
254
  When `true`, instead of returning a boolean value `CompareXML.equivalent?` returns an array of all errors encountered when performing a comparison.
257
255
 
258
- > **Warning:** When `true`, the comparison takes longer! Not only because more processing is required to produce meaningful differences, but also because in this mode, comparison does **NOT** stop when a first difference is encountered, because the goal is to capture as many differences as possible.
256
+ > **Warning:** When `true`, the comparison takes longer! Not only because more processing is required to produce meaningful differences, but also because in this mode, comparison does **NOT** stop when a first difference is encountered, because the goal is to capture as many differences as possible.
259
257
 
260
- **Usage Example:** `CompareXML.equivalent?(doc1, doc2, {verbose: true})`
258
+ **Usage Example:** `CompareXML.equivalent?(doc1, doc2, {verbose: true})`
261
259
 
262
260
  **Example:** When `true` given the following HTML strings:
263
261
 
264
- ![diffing](https://dl.dropboxusercontent.com/u/1001101/input.png)
265
-
266
- `CompareXML.equivalent?(doc1, doc2, {verbose: true})` will produce an array shown below.
267
-
268
- ```ruby
269
- [
270
- {
271
- node1: '<title>TITLE</title>',
272
- node2: '<title>ANOTHER TITLE</title>',
273
- diff1: 'TITLE',
274
- diff2: 'ANOTHER TITLE',
275
- },
276
- {
277
- node1: '<h1>SOME HEADING</h1>',
278
- node2: '<h1 id="main">SOME HEADING</h1>',
279
- diff1: nil,
280
- diff2: 'id="main"',
281
- },
282
- {
283
- node1: '<a href="/admin" rel="icon">Link</a>',
284
- node2: '<a rel="button" href="/admin">Link</a>',
285
- diff1: '"rel="icon"',
286
- diff2: '"rel="button"',
287
- },
288
- {
289
- node1: '<cite>Author Name</cite>',
290
- node2: nil,
291
- diff1: '<cite>Author Name</cite>',
292
- diff2: nil,
293
- },
294
- {
295
- node1: '<p class="footer">FOOTER</p>',
296
- node1: '<div class="footer">FOOTER</div>',
297
- diff1: 'p',
298
- diff2: 'div',
299
- }
300
- ]
301
- ```
302
-
303
- The structure of each hash inside the array is:
304
-
305
- node1: [Nokogiri::XML::Node] left node that contains the difference
306
- node2: [Nokogiri::XML::Node] right node that contains the difference
307
- diff1: [Nokogiri::XML::Node|String] left difference
308
- diff1: [Nokogiri::XML::Node|String] right difference
309
-
310
- **Node location** of `html:body:p(4)` means that the element in question is `<p>`, its hierarchical ancestors are `html > body`, and it is the **4th** `<p>` tag. That is, it could be found in
311
-
312
- <html><body><p>one</p...p>two</p...p>three</p...p>TARGET</p></body></html>
313
-
314
- > **Note:** `p(4)` means that it is the fourth tag of type `<p>`, but there could be many other tags of other types between `p(3)` and `p(4)`.
315
-
316
- **Node content** displays the discrepancy in content (which could be the name of the tag, attributes, text content, comments, etc)
317
-
318
- **Error code** is a numeric value that indicates the type of a discrepancy. CompareXML implements the following error codes
319
-
320
- ```ruby
321
- EQUIVALENT = 1 # nodes are equal (for internal use only)
322
- MISSING_ATTRIBUTE = 2 # attribute is missing its counterpart
323
- MISSING_NODE = 3 # node is missing its counterpart
324
- UNEQUAL_ATTRIBUTES = 4 # attributes are not equal
325
- UNEQUAL_COMMENTS = 5 # comment contents are not equal
326
- UNEQUAL_DOCUMENTS = 6 # document types are not equal
327
- UNEQUAL_ELEMENTS = 7 # nodes have the same type but are not equal
328
- UNEQUAL_NODES_TYPES = 8 # nodes do not have the same type
329
- UNEQUAL_TEXT_CONTENTS = 9 # text contents are not equal
330
- ```
331
-
332
- Here is an example of how these could be used:
262
+ ![diffing](https://github.com/vkononov/compare-xml/raw/master/img/diffing.png)
263
+
264
+ `CompareXML.equivalent?(doc1, doc2, {verbose: true})` will produce an array shown below.
333
265
 
334
266
  ```ruby
335
- case error_code
336
- when CompareXML::UNEQUAL_ATTRIBUTES
337
- '!='
338
- when CompareXML::MISSING_ATTRIBUTE
339
- '?'
340
- end
267
+ [
268
+ {
269
+ node1: '<title>TITLE</title>',
270
+ node2: '<title>ANOTHER TITLE</title>',
271
+ diff1: 'TITLE',
272
+ diff2: 'ANOTHER TITLE',
273
+ },
274
+ {
275
+ node1: '<h1>SOME HEADING</h1>',
276
+ node2: '<h1 id="main">SOME HEADING</h1>',
277
+ diff1: nil,
278
+ diff2: 'id="main"',
279
+ },
280
+ {
281
+ node1: '<a href="/admin" rel="icon">Link</a>',
282
+ node2: '<a rel="button" href="/admin">Link</a>',
283
+ diff1: '"rel="icon"',
284
+ diff2: '"rel="button"',
285
+ },
286
+ {
287
+ node1: '<cite>Author Name</cite>',
288
+ node2: nil,
289
+ diff1: '<cite>Author Name</cite>',
290
+ diff2: nil,
291
+ },
292
+ {
293
+ node1: '<p class="footer">FOOTER</p>',
294
+ node2: '<div class="footer">FOOTER</div>',
295
+ diff1: 'p',
296
+ diff2: 'div',
297
+ }
298
+ ]
341
299
  ```
342
300
 
301
+ The structure of each hash inside the array is:
302
+
303
+ node1: [Nokogiri::XML::Node] left node that contains the difference
304
+ node2: [Nokogiri::XML::Node] right node that contains the difference
305
+ diff1: [Nokogiri::XML::Node|String] left difference
306
+ diff2: [Nokogiri::XML::Node|String] right difference
307
+
343
308
 
344
309
 
345
310
  ## Contributing
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
11
11
 
12
12
  spec.summary = %q{A customizable tool that compares two instances of Nokogiri::XML::Node for equality or equivalency.}
13
13
  spec.description = %q{CompareXML is a fast, lightweight and feature-rich tool that will solve your XML/HTML comparison or diffing needs. its purpose is to compare two instances of Nokogiri::XML::Node or Nokogiri::XML::NodeSet for equality or equivalency.}
14
- spec.homepage = 'https://github.com/vkononov/compare-xml'
14
+ spec.homepage = 'http://vkononov.github.io/compare-xml'
15
15
  spec.license = 'MIT'
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
Binary file
@@ -133,7 +133,7 @@ module CompareXML
133
133
  t1, t2 = collapse(t1), collapse(t2) if opts[:collapse_whitespace]
134
134
  unless t1 == t2
135
135
  status = UNEQUAL_COMMENTS
136
- addDifference(n1, n2, t1, t2, opts, differences)
136
+ addDifference(n1.parent, n2.parent, t1, t2, opts, differences)
137
137
  end
138
138
  status
139
139
  end
@@ -1,3 +1,3 @@
1
1
  module CompareXML
2
- VERSION = '0.6'
2
+ VERSION = '0.61'
3
3
  end
metadata CHANGED
@@ -1,55 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: compare-xml
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.6'
4
+ version: '0.61'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vadim Kononov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-04-29 00:00:00.000000000 Z
11
+ date: 2016-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.11'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.11'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: '11.1'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '11.1'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: nokogiri
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.6'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.6'
55
55
  description: CompareXML is a fast, lightweight and feature-rich tool that will solve
@@ -61,7 +61,7 @@ executables: []
61
61
  extensions: []
62
62
  extra_rdoc_files: []
63
63
  files:
64
- - ".gitignore"
64
+ - .gitignore
65
65
  - Gemfile
66
66
  - LICENSE.txt
67
67
  - README.md
@@ -69,9 +69,10 @@ files:
69
69
  - bin/console
70
70
  - bin/setup
71
71
  - compare-xml.gemspec
72
+ - img/diffing.png
72
73
  - lib/compare-xml.rb
73
74
  - lib/compare-xml/version.rb
74
- homepage: https://github.com/vkononov/compare-xml
75
+ homepage: http://vkononov.github.io/compare-xml
75
76
  licenses:
76
77
  - MIT
77
78
  metadata: {}
@@ -81,17 +82,17 @@ require_paths:
81
82
  - lib
82
83
  required_ruby_version: !ruby/object:Gem::Requirement
83
84
  requirements:
84
- - - ">="
85
+ - - '>='
85
86
  - !ruby/object:Gem::Version
86
87
  version: '0'
87
88
  required_rubygems_version: !ruby/object:Gem::Requirement
88
89
  requirements:
89
- - - ">="
90
+ - - '>='
90
91
  - !ruby/object:Gem::Version
91
92
  version: '0'
92
93
  requirements: []
93
94
  rubyforge_project:
94
- rubygems_version: 2.5.2
95
+ rubygems_version: 2.6.2
95
96
  signing_key:
96
97
  specification_version: 4
97
98
  summary: A customizable tool that compares two instances of Nokogiri::XML::Node for