rexle-diff 0.3.0 → 0.3.1

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: 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