json-deep-compare 0.2.0 → 0.2.1
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.
@@ -111,6 +111,10 @@ module JsonDeepCompare
|
|
111
111
|
)
|
112
112
|
end
|
113
113
|
|
114
|
+
def has_substitution?
|
115
|
+
@options[:substitutions] && @options[:substitutions].has_key?(selector)
|
116
|
+
end
|
117
|
+
|
114
118
|
def leaf?
|
115
119
|
@children.empty?
|
116
120
|
end
|
@@ -121,7 +125,7 @@ module JsonDeepCompare
|
|
121
125
|
|
122
126
|
def lval_for_equality
|
123
127
|
@_lval_for_equality ||= begin
|
124
|
-
if left_to_right? &&
|
128
|
+
if left_to_right? && has_substitution?
|
125
129
|
substitution
|
126
130
|
else
|
127
131
|
lval
|
@@ -135,7 +139,7 @@ module JsonDeepCompare
|
|
135
139
|
|
136
140
|
def rval_for_equality
|
137
141
|
@_rval_for_equality ||= begin
|
138
|
-
if right_to_left? &&
|
142
|
+
if right_to_left? && has_substitution?
|
139
143
|
substitution
|
140
144
|
else
|
141
145
|
rval
|
@@ -154,7 +158,7 @@ module JsonDeepCompare
|
|
154
158
|
end
|
155
159
|
|
156
160
|
def substitution
|
157
|
-
@options[:substitutions]
|
161
|
+
@options[:substitutions][selector]
|
158
162
|
end
|
159
163
|
|
160
164
|
def value_inspect(value)
|
@@ -207,4 +207,19 @@ class DocumentComparisonTestCase < Test::Unit::TestCase
|
|
207
207
|
)
|
208
208
|
assert comparison.equal?
|
209
209
|
end
|
210
|
+
|
211
|
+
def test_substitions_with_falsy_values
|
212
|
+
lval = {'one' => 'false'}
|
213
|
+
rval = {'one' => false}
|
214
|
+
comparison = JsonDeepCompare::DocumentComparison.new(
|
215
|
+
lval, rval, substitutions: {":root > .one" => false}
|
216
|
+
)
|
217
|
+
assert comparison.equal?
|
218
|
+
lval = {'one' => 'null'}
|
219
|
+
rval = {'one' => nil}
|
220
|
+
comparison = JsonDeepCompare::DocumentComparison.new(
|
221
|
+
lval, rval, substitutions: {":root > .one" => nil}
|
222
|
+
)
|
223
|
+
assert comparison.equal?
|
224
|
+
end
|
210
225
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: json-deep-compare
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -77,7 +77,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
77
77
|
version: '0'
|
78
78
|
segments:
|
79
79
|
- 0
|
80
|
-
hash: -
|
80
|
+
hash: -2669003529915222280
|
81
81
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
82
|
none: false
|
83
83
|
requirements:
|
@@ -86,7 +86,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
86
86
|
version: '0'
|
87
87
|
segments:
|
88
88
|
- 0
|
89
|
-
hash: -
|
89
|
+
hash: -2669003529915222280
|
90
90
|
requirements: []
|
91
91
|
rubyforge_project:
|
92
92
|
rubygems_version: 1.8.23
|