structure_compare 0.1.5 → 0.1.6

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: 6ccf54b4f42263485c1a93a50989e69b82d40e91
4
- data.tar.gz: a0a85c991d901feb6fdfae988df7e48c07d628d6
3
+ metadata.gz: c7e3a4d3ba5b971952f4c8b36cbc5625eddeef86
4
+ data.tar.gz: 696b6e7775ff575315164a84cd4156082f12d369
5
5
  SHA512:
6
- metadata.gz: c1d25d9ddf2945090a8b9cb534e63dce989e241199e72145a8caf374fab5325afc4afab9c7acdd05fe88cd4af187d4f6a358ad728ed082b75348a96c2241a79d
7
- data.tar.gz: f2ef2e68269c3f9a9555214189d98e25e849d2e7db6ecf706daa80ae5999d3f5dc42df529d80b4956c71f53499c55e47756e89b23e0d5f83335c4e5e48a29433
6
+ metadata.gz: a6ede945d269bfdebb0eb77783a9a3797d426e0b0198a3b801fd7b076be9790ac2f6116ac6282098b3af3ce5373108abb08a9eaa6af54348b026278a962d450e
7
+ data.tar.gz: dcead81b09f0223e65cc5a7120cbdf4059ec2c2a085c3170ae3ab4c1178915dbed9ae53b14c04f794e8a8a5e2b14e4fee23b5f4f2d2fe47ec76025ed9dd32fe5
@@ -92,16 +92,16 @@ module StructureCompare
92
92
 
93
93
  if @options[:strict_key_order]
94
94
  if expected_keys != actual_keys
95
- not_equal_error!(expected_keys, actual_keys, failure_message)
95
+ not_equal_error!(failure_message)
96
96
  end
97
97
  else
98
98
  # NOTE: first did this with sorting, but can't sort mixed type keys
99
99
  all_keys_present = (
100
- expected_keys.all?{ |key| actual.has_key?(key) } &&
101
- actual_keys.all?{ |key| expected.has_key?(key) }
100
+ expected_keys.all?{ |key| actual_keys.include?(key) } &&
101
+ actual_keys.all?{ |key| expected_keys.include?(key) }
102
102
  )
103
103
  if !all_keys_present
104
- not_equal_error!(expected_keys, actual_keys, failure_message)
104
+ not_equal_error!(failure_message)
105
105
  end
106
106
  end
107
107
  end
@@ -113,7 +113,7 @@ module StructureCompare
113
113
  def check_kind_of!(expected, actual)
114
114
  unless actual.kind_of?(expected.class)
115
115
  failure_message = "expected #{actual.class.to_s} to be kind of #{expected.class.to_s}"
116
- not_equal_error!(expected, actual, failure_message)
116
+ not_equal_error!(failure_message)
117
117
  end
118
118
  end
119
119
 
@@ -128,7 +128,7 @@ module StructureCompare
128
128
 
129
129
  if !is_equal
130
130
  failure_message ||= "expected: #{expected.inspect}, got: #{actual.inspect}"
131
- not_equal_error!(expected, actual, failure_message)
131
+ not_equal_error!(failure_message)
132
132
  end
133
133
  end
134
134
 
@@ -142,7 +142,7 @@ module StructureCompare
142
142
  end
143
143
 
144
144
  # TODO make this part of an overridden exception?
145
- def not_equal_error!(expected, actual, failure_message)
145
+ def not_equal_error!(failure_message)
146
146
  @error = failure_message
147
147
  raise StructuresNotEqualError.new() # TODO error message, path
148
148
  end
@@ -1,3 +1,3 @@
1
1
  module StructureCompare
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
@@ -17,6 +17,12 @@ class StructureCompareTest < MiniTest::Test
17
17
  assert_structures_equal({a: 1, b: 2}, {b: 2, a: 1})
18
18
  assert_structures_equal({a: 1, b: 2}, {b: 2, a: 1}, strict_key_order: false)
19
19
  refute_structures_equal({a: 1, b: 2}, {b: 2, a: 1}, strict_key_order: true)
20
+
21
+ # this was a bug with combining relaxed key order and indifferent access
22
+ assert_structures_equal(
23
+ {a: 1, b: 2}, {"b": 2, "a": 1},
24
+ strict_key_order: false, indifferent_access: true
25
+ )
20
26
  end
21
27
 
22
28
  def test_compares_leaf_value_types
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: structure_compare
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Markus Seeger