elibri_xml_versions 0.1.6 → 0.1.8

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.
@@ -3,7 +3,8 @@ rvm:
3
3
  - ree
4
4
  - 1.8.7
5
5
  - jruby-18mode
6
+ - 1.9.3
6
7
  notifications:
7
8
  email:
8
9
  - p.szmielew@ava.waw.pl
9
- - tomek@gildia.pl
10
+ - tomek@gildia.pl
@@ -105,20 +105,37 @@ module Elibri
105
105
  end
106
106
  # if a.map(&:id) != b.map(&:id)
107
107
  if a_m != b_m
108
- deleted_ids = a.map(&:eid) - b.map(&:eid)
109
- added_ids = b.map(&:eid) - a.map(&:eid)
110
- deleted_ids.each do |eid|
111
- if a.find { |x| x.eid == eid } && !a.find { |x| x.eid == eid }.blank?
112
- deleted << a.find { |x| x.eid == eid }
113
- a.delete(a.find { |x| x.eid == eid })
108
+ if a.all? { |x| x.respond_to?(:eid) } && b.all? { |x| x.respond_to?(:eid) }
109
+ deleted_ids = a.map(&:eid) - b.map(&:eid)
110
+ added_ids = b.map(&:eid) - a.map(&:eid)
111
+ deleted_ids.each do |eid|
112
+ if a.find { |x| x.eid == eid } && !a.find { |x| x.eid == eid }.blank?
113
+ deleted << a.find { |x| x.eid == eid }
114
+ a.delete(a.find { |x| x.eid == eid })
115
+ end
114
116
  end
115
- end
116
- added_ids.each do |eid|
117
- if b.find { |x| x.eid == eid } && !b.find { |x| x.eid == eid }.blank?
118
- added << b.find { |x| x.eid == eid }
119
- b.delete(b.find { |x| x.eid == eid })
117
+ added_ids.each do |eid|
118
+ if b.find { |x| x.eid == eid } && !b.find { |x| x.eid == eid }.blank?
119
+ added << b.find { |x| x.eid == eid }
120
+ b.delete(b.find { |x| x.eid == eid })
121
+ end
120
122
  end
121
- end
123
+ else
124
+ deleted_ids = a.map(&:id) - b.map(&:id)
125
+ added_ids = b.map(&:id) - a.map(&:id)
126
+ deleted_ids.each do |id|
127
+ if a.find { |x| x.id == id } && !a.find { |x| x.id == id }.blank?
128
+ deleted << a.find { |x| x.id == id }
129
+ a.delete(a.find { |x| x.id == id })
130
+ end
131
+ end
132
+ added_ids.each do |eid|
133
+ if b.find { |x| x.id == id } && !b.find { |x| x.id == id }.blank?
134
+ added << b.find { |x| x.id == id }
135
+ b.delete(b.find { |x| x.id == id })
136
+ end
137
+ end
138
+ end
122
139
  end
123
140
  #obsługa różnych elementów w arrayu
124
141
  a.each_with_index do |element, i|
@@ -1,3 +1,3 @@
1
1
  module ElibriXmlVersions
2
- VERSION = "0.1.6"
2
+ VERSION = "0.1.8"
3
3
  end
@@ -39,8 +39,8 @@ describe Elibri::XmlVersions do
39
39
  it "should return change in author on same basic elibri objects" do
40
40
  author = Elibri::XmlMocks::Examples.contributor_mock(:id => 2167055520)
41
41
  author_2 = Elibri::XmlMocks::Examples.contributor_mock(:last_name => 'Waza', :id => 2167055520)
42
- generated_product = onix_from_mock(:book_example, :record_reference => 'fdb8fa072be774d97a97', :contributors => [author])
43
- generated_product_2 = onix_from_mock(:book_example, :record_reference => 'fdb8fa072be774d97a97', :contributors => [author_2])
42
+ generated_product = onix_from_mock(:basic_product, :record_reference => 'fdb8fa072be774d97a97', :contributors => [author])
43
+ generated_product_2 = onix_from_mock(:basic_product, :record_reference => 'fdb8fa072be774d97a97', :contributors => [author_2])
44
44
  @elibri_xml_versions = Elibri::XmlVersions.new(generated_product.products.first, generated_product_2.products.first)
45
45
  diff = @elibri_xml_versions.diff
46
46
  diff[:deleted].should eq([])
@@ -267,7 +267,7 @@ describe Elibri::XmlVersions do
267
267
  generated_product = onix_from_mock(:basic_product, {:imprint => imprint})
268
268
  generated_product_2 = onix_from_mock(:basic_product, {:imprint => imprint_2})
269
269
  @elibri_xml_versions = Elibri::XmlVersions.new(generated_product.products.first, generated_product_2.products.first)
270
- @elibri_xml_versions.diff[:changes].should include({:imprint => [:name]})
270
+ @elibri_xml_versions.diff[:changes].should include(:imprint_name)
271
271
  end
272
272
 
273
273
  it "should detect change in object inside book product" do
@@ -276,6 +276,6 @@ describe Elibri::XmlVersions do
276
276
  generated_product = onix_from_mock(:book_example, RAW_EXTRAS.merge({:imprint => imprint}))
277
277
  generated_product_2 = onix_from_mock(:book_example, RAW_EXTRAS.merge({:imprint => imprint_2}))
278
278
  @elibri_xml_versions = Elibri::XmlVersions.new(generated_product.products.first, generated_product_2.products.first)
279
- @elibri_xml_versions.diff[:changes].should include({:imprint => [:name]})
279
+ @elibri_xml_versions.diff[:changes].should include(:imprint_name)
280
280
  end
281
281
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elibri_xml_versions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-13 00:00:00.000000000 Z
12
+ date: 2013-04-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -125,16 +125,24 @@ required_ruby_version: !ruby/object:Gem::Requirement
125
125
  - - ! '>='
126
126
  - !ruby/object:Gem::Version
127
127
  version: '0'
128
+ segments:
129
+ - 0
130
+ hash: 191043771001115544
128
131
  required_rubygems_version: !ruby/object:Gem::Requirement
129
132
  none: false
130
133
  requirements:
131
134
  - - ! '>='
132
135
  - !ruby/object:Gem::Version
133
136
  version: '0'
137
+ segments:
138
+ - 0
139
+ hash: 191043771001115544
134
140
  requirements: []
135
141
  rubyforge_project: elibri_xml_versions
136
- rubygems_version: 1.8.19
142
+ rubygems_version: 1.8.25
137
143
  signing_key:
138
144
  specification_version: 3
139
145
  summary: Gem created for comparing eLibri xml objects.
140
- test_files: []
146
+ test_files:
147
+ - spec/elibri_xml_versions_spec.rb
148
+ - spec/spec_helper.rb