equivalent-xml 0.3.0 → 0.4.0
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.
- data/README.md +2 -1
- data/Rakefile +1 -1
- data/lib/equivalent-xml.rb +9 -2
- data/lib/equivalent-xml/rspec_matchers.rb +4 -0
- data/spec/equivalent-xml_spec.rb +8 -0
- metadata +20 -4
data/README.md
CHANGED
@@ -106,7 +106,8 @@ Chained modifiers:
|
|
106
106
|
|
107
107
|
## History
|
108
108
|
|
109
|
-
- <b>0.
|
109
|
+
- <b>0.4.0</b> - Added :ignore_attr_values option (contrib. by ivannovosad)
|
110
|
+
- <b>0.3.0</b> - Added :ignore_content option (contrib. by moklett)
|
110
111
|
- <b>0.2.9</b> - Fix for rspec-rails >= 2.7 (contrib. by jcoyne)
|
111
112
|
- <b>0.2.8</b> - Allow comparison against nodesets (contrib. by gkellogg)
|
112
113
|
- <b>0.2.7</b> - Auto-require RSpec matchers if RSpec is loaded
|
data/Rakefile
CHANGED
data/lib/equivalent-xml.rb
CHANGED
@@ -4,7 +4,7 @@ module EquivalentXml
|
|
4
4
|
|
5
5
|
class << self
|
6
6
|
|
7
|
-
DEFAULT_OPTS = { :element_order => false, :normalize_whitespace => true }
|
7
|
+
DEFAULT_OPTS = { :ignore_attr_values => false, :element_order => false, :normalize_whitespace => true }
|
8
8
|
|
9
9
|
# Determine if two XML documents or nodes are equivalent
|
10
10
|
#
|
@@ -65,7 +65,14 @@ module EquivalentXml
|
|
65
65
|
end
|
66
66
|
|
67
67
|
def compare_attributes(node_1, node_2, opts, &block)
|
68
|
-
|
68
|
+
|
69
|
+
attr_names_match = node_1.name == node_2.name
|
70
|
+
|
71
|
+
if opts[:ignore_attr_values]
|
72
|
+
attr_names_match
|
73
|
+
else
|
74
|
+
attr_names_match && (node_1.value == node_2.value)
|
75
|
+
end
|
69
76
|
end
|
70
77
|
|
71
78
|
def compare_text(node_1, node_2, opts, &block)
|
@@ -45,6 +45,10 @@ module EquivalentXml::RSpecMatchers
|
|
45
45
|
chain :ignoring_content_of do |paths|
|
46
46
|
@opts[:ignore_content] = paths
|
47
47
|
end
|
48
|
+
|
49
|
+
chain :ignoring_attr_values do
|
50
|
+
@opts[:ignore_attr_values] = true
|
51
|
+
end
|
48
52
|
|
49
53
|
failure_message_for_should do |actual|
|
50
54
|
[ 'expected:', expected.to_s, 'got:', actual.to_s ].join("\n")
|
data/spec/equivalent-xml_spec.rb
CHANGED
@@ -207,4 +207,12 @@ describe EquivalentXml do
|
|
207
207
|
doc1.should be_equivalent_to(doc2).ignoring_content_of(["SerialNumber", "ICCID"])
|
208
208
|
end
|
209
209
|
end
|
210
|
+
|
211
|
+
context "with :ignore_attr_values set to true" do
|
212
|
+
it "ignores the values of attributes when comparing for equivalence" do
|
213
|
+
doc1 = Nokogiri::XML("<doc xmlns='foo:bar'><first order='1'>foo bar baz</first><second>things</second></doc>")
|
214
|
+
doc2 = Nokogiri::XML("<doc xmlns='foo:bar'><first order='2'>foo bar baz</first><second>things</second></doc>")
|
215
|
+
doc1.should be_equivalent_to(doc2).ignoring_attr_values
|
216
|
+
end
|
217
|
+
end
|
210
218
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: equivalent-xml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-12-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -82,7 +82,7 @@ dependencies:
|
|
82
82
|
requirements:
|
83
83
|
- - ! '>='
|
84
84
|
- !ruby/object:Gem::Version
|
85
|
-
version: 0.
|
85
|
+
version: 0.9.0
|
86
86
|
type: :development
|
87
87
|
prerelease: false
|
88
88
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -90,7 +90,23 @@ dependencies:
|
|
90
90
|
requirements:
|
91
91
|
- - ! '>='
|
92
92
|
- !ruby/object:Gem::Version
|
93
|
-
version: 0.
|
93
|
+
version: 0.9.0
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: rdoc
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '3.12'
|
102
|
+
type: :development
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '3.12'
|
94
110
|
description: ! "Compares two XML Nodes (Documents, etc.) for certain semantic equivalencies.
|
95
111
|
\n Currently written for Nokogiri, but with an eye toward supporting multiple
|
96
112
|
XML libraries"
|