rexle-diff 0.5.4 → 0.5.5

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: 0cacd13616e246a126d280ddd34ff167a474332c
4
- data.tar.gz: 622523d2364cb42d517f715f8c754c6e96595016
3
+ metadata.gz: 7608ce93f389f3eee77bf502df507d98db7ee7bb
4
+ data.tar.gz: b42d42b1a8dd41615da5be8a7dc8f1bbaabb2eb2
5
5
  SHA512:
6
- metadata.gz: fc4d7c3b59cdebd84711c0c2431a3e8e14c9efa2edc5d877ca6968c2bebb722ef3ba27f69cf888b56b65326039dd01e5a3eabf910834acca18d8414298612517
7
- data.tar.gz: db785ddb56d09026f7f30078d5ae7e70c94102ab8a0b0ec6cdf09d4c7cb68a643247b87d5fcb76cd2b60c05f4145896761cf2472d52c9b1d69674f73f76fa57b
6
+ metadata.gz: 762554af45b94f22e2758c2388a0224faacdf73695651609ccbdbef291e389058a656874616030e6ee08f689cefe63ab8e984f5f269e3870f2ee3d2bbf524bd2
7
+ data.tar.gz: 4ab322587b5fd5aa1599c205aca5b43a6d040487ff240e6ddb6abc98a6c3d1d10c9352d9a539f1809584abf005ca6400fa39457e00552c3cbdb19b390dd014b6
Binary file
data.tar.gz.sig CHANGED
@@ -1,2 +1 @@
1
- }4z��3@7��.H�u��X9��q�=Ψ[�'�yi��䣁\����+z3 \ H����� ;q��fw��/�dl��)ė�t�GBc c� I@'�;k���{ڐ�iȈT��� �#�s��VzB����.~
2
- n������1��ߺsg�U�]������eU�Hñ��o�]���92��aȍi�!��s�rf�v�߭3Eu�/��EעC=��A� ���w����E ��P���~�J���q*z?ע(���x
1
+ ������nJ�_4����.�p�os[ ��3稒{��������>��� �����m���M~&v��$�����=��S��,8�yl͡Z����������.�g���dR����D��B�#�fL��]é�fn�`eo�!\�@���t�o�����=9��ݰ23��XBQo��\;d��c�+����o^��kZh�k��oYx�y���b�mr�Wɞ�bZ�5JY�� �W����1fS\�q�(���?\�
@@ -21,34 +21,26 @@ class RexleDiff
21
21
 
22
22
  private
23
23
 
24
- # Returns an array of MD5 hashed strings representing each child node itself
25
- #
26
- def hashedxml(node)
27
-
28
- node.elements.map do |element|
29
-
30
- attributes = element.attributes.clone
31
-
32
- # Although attribute last_modified isn't used by rexle-diff it is
33
- # created by Dynarex whenever a record is created or updated.
34
- # This would of course cause the record to be flagged as changed even
35
- # when the element value itself hashn't changed.
36
- #
37
- %i(created last_modified).each {|x| attributes.delete x}
38
- x = element.elements.length > 0 ? '' : 0
39
- [element.name, attributes, element.text.to_s.strip, x].hash
40
-
41
- end
42
- end
43
24
 
44
25
 
45
26
  # Returns an array of indexes of the nodes from the newer document which
46
27
  # have been added or changed
47
28
  #
48
29
  def added(hxlist, hxlist2)
49
-
30
+
50
31
  added_or_changed = hxlist2 - hxlist
51
- indexes = added_or_changed.map {|x| hxlist2.index x}
32
+
33
+ n = hxlist2[0..-1].index added_or_changed.first
34
+
35
+ indexes = added_or_changed.inject([n]) do |r,x|
36
+
37
+ i = hxlist2[r.last+1..-1].index x
38
+ if i then
39
+ r << (r.last+1+i)
40
+ end
41
+ r
42
+ end
43
+
52
44
  indexes
53
45
 
54
46
  end
@@ -134,6 +126,27 @@ class RexleDiff
134
126
  [added_indexes, updated_indexes]
135
127
  end
136
128
 
129
+
130
+ # Returns an array of MD5 hashed strings representing each child node itself
131
+ #
132
+ def hashedxml(node)
133
+
134
+ node.elements.map.with_index do |element, i|
135
+
136
+ attributes = element.attributes.clone
137
+
138
+ # Although attribute last_modified isn't used by rexle-diff it is
139
+ # created by Dynarex whenever a record is created or updated.
140
+ # This would of course cause the record to be flagged as changed even
141
+ # when the element value itself hashn't changed.
142
+ #
143
+ %i(created last_modified).each {|x| attributes.delete x}
144
+ x = element.elements.length > 0 ? '' : 0
145
+ [i, element.name, attributes, element.text.to_s.strip, x].hash
146
+
147
+ end
148
+ end
149
+
137
150
  # Returns an array of indexes from both original and new nodes which
138
151
  # identifies which nodes did not change.
139
152
  #
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rexle-diff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
4
+ version: 0.5.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -12,26 +12,26 @@ cert_chain:
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
14
  YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
- 8ixkARkWAmV1MB4XDTE1MDMyMjIwNDkyMloXDTE2MDMyMTIwNDkyMlowSDESMBAG
15
+ 8ixkARkWAmV1MB4XDTE2MTEyOTAxMzIwMVoXDTE3MTEyOTAxMzIwMVowSDESMBAG
16
16
  A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
17
  EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBAMiYrKeP9vQrQ7WRzzXlh1LUBgFNuKSQyppkKdWiAXyIwOkbuW9Z/p7UkC3D
19
- SOKVlnndW69FEQ2abJCDfqmmXLXU2p67meF8vGcxdK7VzLUe4vUocJYhSqPUy4V4
20
- LweSfcanhY+0AvZ1WRgfnbMvgpDWNg3Bpx6SrxoFUuPJgtWjui6eq4jPiw2MQuJC
21
- zDfe1hpNO0jkuNho8hQHmUQWCXXt04s9jT+Pt5Somrc3GOiRyF72tuilZLmIAv8O
22
- ACxhbCy6hhGa77VAQEv1rLCNc/gEc6/Y6Bkbufy9DJ/fFC3XHruZ5PMMBN5ztBxf
23
- brAGWbPfMYTJEbjy7x39BFNi3iMCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
- DwQEAwIEsDAdBgNVHQ4EFgQUQidYCjP6g5ocez2NRp80Q31bvHAwJgYDVR0RBB8w
18
+ ggEBANOCMfpspr6/pSs6JV45PdotRZor9jGEssh6y7HzHmbrBPnAZR5drknlzNOl
19
+ dsF9DQACJ42uGVVWjy6F+5ACPELuVhZ+QjCDf4yEknYPQdISyjDWoybrAI9Ugewm
20
+ mbnRaDs3WnVljvGmG9Kgm2f2R0Ft/aD7qYK3bkQuYYyNLSCGzrFgoRQmQQEdPTsO
21
+ wpyWyFYTPk1SfkX1P6R6gEx7XFIRgX5W7VPYRABfYVZjUM84rtHm5nYWnrxI6bM3
22
+ Q4hlc3BVOacUe1q7obCxqpb46kdzko/Q+OqaOw7I5scEIDDGhiLsOcOT/7Vrm6tW
23
+ LJF3T97SBMJ0Y4i8U3BcfxYddEUCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
+ DwQEAwIEsDAdBgNVHQ4EFgQUfTz+OfPPy3C2A4MccZsMMD4/OIQwJgYDVR0RBB8w
25
25
  HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEApchg6EQj
27
- q8Exyo/LU2hyzG4//R+oiY2zBE7oM3RUMzVtms+R8n//pdw8nMVG4WXrwaGW7vlt
28
- MHC+TBgGBQWQdXTdP+/eDi01s9Qd+rLl7zxmmw7u8JGQpizZqVGGZCzX/VtMNskJ
29
- Lt2WkJjRXTGGCU6Qk9U/awUr4lAQlxiHciTgG/BsQvuegNUZBFpp7PMaIZ82aAQg
30
- NoitOpFoKRpE0GNLypJU/FJS++2hs1nKKFPZLtrrncRDnI6/9ImymDgBstSfmQH/
31
- 1dtvoSgugum4cZlSFYiRyLXuJz4nZeMJGod1r8cOFR0dwx7yOdvKZybPd4FXWVjG
32
- EozQjWbvhzsspQ==
26
+ c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEArLGWVBmE
27
+ +I90pSB0GFI2T+S9IxszyDywY/ek8Gxqaj5+KduhpvlVocwbTzo98PGhYvaT+QrR
28
+ 8xHRkInKWmD0XthW5vU+ABVO8rDmPtaFDhRcKI1T/TQ+AGmKyyX/e9rQONy1lUbd
29
+ 7QsFvzxJaEjumpBxuVyZfsBqH/0XrsiMO4RVLo1Ett8F7xFR0inP64Q7U/IY45EL
30
+ boA8Q4V1SXXeTTYazitmgVASqf4KDHJVkd+vdNWyGUs3xP1hWL7bQrQsNC1qUIZG
31
+ q1Kd4dlPzOv4eViQtUu66H9or/lvOPWh/CmIReM06Ant7uX9HVEaRG7XDH9fPp5p
32
+ 3j65mk5AS10weg==
33
33
  -----END CERTIFICATE-----
34
- date: 2015-03-27 00:00:00.000000000 Z
34
+ date: 2016-11-29 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rexle
@@ -100,7 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
100
  version: '0'
101
101
  requirements: []
102
102
  rubyforge_project:
103
- rubygems_version: 2.4.6
103
+ rubygems_version: 2.5.1
104
104
  signing_key:
105
105
  specification_version: 4
106
106
  summary: rexle-diff
metadata.gz.sig CHANGED
Binary file