compare-xml 0.6 → 0.61

Sign up to get free protection for your applications and to get access to all the features.
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