rexle-diff 0.3.0 → 0.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 29374bab7b8b1f1a56d26f25227809b43c817ff6
4
- data.tar.gz: 03b5815ca6d1c9fb2c1f1b4966e556b09ad86510
3
+ metadata.gz: 2a519555cefb568fc4678efaca42b3eb9b032b99
4
+ data.tar.gz: bd91eb9278b84f3509c1d3fc4e1e3be116a7e1b0
5
5
  SHA512:
6
- metadata.gz: 53a8debbe17451b8cb20dd85b9a342787b923758ba55e27850d9026bd562645f240c235fcfdc90acab4f1b2e24100a7425ba569f26820e868f27a183814a3c0c
7
- data.tar.gz: ac71487a7823a562c1f834ca693370d933bb2c5b77575ce756f988f6343f14595ce571513db15e4e51a1e867e3ee2baea45023071a55a35788de8f5d890e8d36
6
+ metadata.gz: c4bb5b88d2dfce46cfe59113cc6f33235b0881c55f32cbc8c9f229250e2568cf13a9d4b130299d829414a35c6178defe1f571cc09c5e358f2bbfe3f1b457ddd6
7
+ data.tar.gz: 5b21648944c4f5b825bb1192931526ded6ab8d9ab6ba5157c69275900e0bd0b9e7e9020b966737d30167c168995b7c5bb2a5a8bf3d885aeb6bf419ba283d0857
checksums.yaml.gz.sig CHANGED
@@ -1,4 +1,4 @@
1
- �� �ۭ��8��
2
- )Jx:F#����q5+���YFϓ!s�?j�3ͽ�S_��
3
- ���8"lB��)����㝏-GG0TF�8�[e���5�͒ds��V��o��y��4`A��rc`
4
- {G�E�@�P��"E����ؐL�&�Vzv�X���6�e0��lx�1����ɕ*X��U@�@�[6�!�� �|�
1
+ Mܡ���a29��u�i�5��s7�\ԫVP�1t4KVtI�n�8ݚυ�d�4��:�bg=�6+���yh��>1U�/��l�Sy�P�9߮@K�'w� � ��t^{ ���D�owB�8U�^�S��=#��K=��[G��^r��K�׽��@�ˆ ��TU��� I�v@;��#����
2
+ ñ�w!H7�!nv�dO���F�D
3
+ ���ݰl��`=�td82��I1�jJ����|;a�
4
+ ��㘇/JlX
data/lib/rexle-diff.rb CHANGED
@@ -24,13 +24,18 @@ class RexleDiff
24
24
  def hashedxml(node)
25
25
 
26
26
  node.elements.map do |element|
27
- h = Digest::MD5.new << element.xml
27
+
28
+ attributes = element.attributes.clone
29
+ attributes.delete :created
30
+ val = [element.name, attributes, element.text].to_s
31
+
32
+ h = Digest::MD5.new << val
28
33
  h.to_s
29
34
  end
30
35
  end
31
36
 
32
37
  def added(hxlist, hxlist2)
33
-
38
+
34
39
  added_or_changed = hxlist2 - hxlist
35
40
  indexes = added_or_changed.map {|x| hxlist2.index x}
36
41
  indexes
@@ -41,11 +46,21 @@ class RexleDiff
41
46
 
42
47
  hxlist, hxlist2 = hashedxml(node), hashedxml(node2)
43
48
 
49
+ # elements which may have been modified are also
50
+ # added to the added_indexes list
51
+
44
52
  added_indexes = added(hxlist, hxlist2)
45
53
 
46
54
  added_indexes.each do |i|
47
- node2.elements[i+1].attributes\
48
- .merge!(created: Time.now.to_s, last_modified: Time.now.to_s)
55
+
56
+ attributes = node2.elements[i+1].attributes
57
+ attributes[:created] ||= Time.now.to_s
58
+
59
+ node2.elements[i+1].traverse do |e|
60
+
61
+ e.attributes[:created] ||= Time.now.to_s
62
+
63
+ end
49
64
  end
50
65
 
51
66
  deleted_indexes = deleted(hxlist, hxlist2)
@@ -54,9 +69,8 @@ class RexleDiff
54
69
 
55
70
  unchanged_indexes.each do |i, i2|
56
71
 
57
- node2.elements[i2+1].attributes[:created] ||= Time.now.to_s
58
- compare(node.elements[i+1], node2.elements[i2+1]) if node.elements[i+1].has_elements?
59
-
72
+ compare(node.elements[i+1], node2.elements[i2+1]) if node\
73
+ .elements[i+1].has_elements?
60
74
  end
61
75
 
62
76
  end
data.tar.gz.sig CHANGED
Binary file
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.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -31,7 +31,7 @@ cert_chain:
31
31
  1dtvoSgugum4cZlSFYiRyLXuJz4nZeMJGod1r8cOFR0dwx7yOdvKZybPd4FXWVjG
32
32
  EozQjWbvhzsspQ==
33
33
  -----END CERTIFICATE-----
34
- date: 2015-03-24 00:00:00.000000000 Z
34
+ date: 2015-03-25 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rexle
metadata.gz.sig CHANGED
Binary file