milkfarm-onix 0.7.7 → 0.8.3
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.
- data/CHANGELOG +31 -1
- data/README.markdown +24 -2
- data/lib/onix.rb +3 -16
- data/lib/onix/addressee_identifier.rb +0 -1
- data/lib/onix/apa_product.rb +19 -2
- data/lib/onix/audience_range.rb +6 -7
- data/lib/onix/contributor.rb +0 -1
- data/lib/onix/header.rb +0 -1
- data/lib/onix/imprint.rb +0 -1
- data/lib/onix/language.rb +0 -1
- data/lib/onix/lists/contributor_role.rb +99 -0
- data/lib/onix/market_representation.rb +0 -1
- data/lib/onix/measure.rb +0 -1
- data/lib/onix/media_file.rb +0 -1
- data/lib/onix/normaliser.rb +0 -77
- data/lib/onix/other_text.rb +0 -1
- data/lib/onix/price.rb +0 -1
- data/lib/onix/product.rb +3 -2
- data/lib/onix/product_identifier.rb +0 -1
- data/lib/onix/publisher.rb +0 -1
- data/lib/onix/reader.rb +39 -96
- data/lib/onix/sales_restriction.rb +0 -1
- data/lib/onix/sender_identifier.rb +0 -1
- data/lib/onix/series.rb +8 -8
- data/lib/onix/series_identifier.rb +0 -1
- data/lib/onix/set.rb +76 -0
- data/lib/onix/sl_product.rb +32 -45
- data/lib/onix/stock.rb +0 -1
- data/lib/onix/subject.rb +0 -1
- data/lib/onix/supply_detail.rb +0 -1
- data/lib/onix/title.rb +0 -1
- data/lib/onix/website.rb +0 -1
- data/lib/onix/writer.rb +1 -1
- data/spec/apa_product_spec.rb +44 -4
- data/spec/audience_range_spec.rb +5 -7
- data/spec/contributor_spec.rb +2 -4
- data/spec/header_spec.rb +2 -4
- data/spec/imprint_spec.rb +4 -6
- data/spec/language_spec.rb +5 -7
- data/spec/market_representation_spec.rb +2 -4
- data/spec/measure_spec.rb +2 -4
- data/spec/media_file_spec.rb +2 -4
- data/spec/normaliser_spec.rb +1 -78
- data/spec/other_text_spec.rb +2 -4
- data/spec/price_spec.rb +2 -4
- data/spec/product_identifier_spec.rb +2 -4
- data/spec/product_spec.rb +2 -5
- data/spec/publisher_spec.rb +2 -4
- data/spec/reader_spec.rb +15 -22
- data/spec/sales_restriction_spec.rb +2 -4
- data/spec/sender_identifier.rb +2 -4
- data/spec/series_identifier_spec.rb +5 -7
- data/spec/series_spec.rb +4 -6
- data/spec/set_spec.rb +32 -0
- data/spec/sl_product_spec.rb +76 -24
- data/spec/spec_helper.rb +8 -0
- data/spec/stock_spec.rb +2 -4
- data/spec/subject_spec.rb +2 -4
- data/spec/supply_detail_spec.rb +2 -4
- data/spec/title_spec.rb +2 -4
- data/spec/website_spec.rb +2 -4
- data/spec/writer_spec.rb +1 -4
- metadata +64 -28
- data/lib/onix/common.rb +0 -26
data/lib/onix/stock.rb
CHANGED
data/lib/onix/subject.rb
CHANGED
data/lib/onix/supply_detail.rb
CHANGED
data/lib/onix/title.rb
CHANGED
data/lib/onix/website.rb
CHANGED
data/lib/onix/writer.rb
CHANGED
@@ -77,7 +77,7 @@ module ONIX
|
|
77
77
|
def start_document
|
78
78
|
@output.write("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n")
|
79
79
|
@output.write("<!DOCTYPE ONIXMessage SYSTEM \"#{DOCTYPE}\">\n")
|
80
|
-
@output.write("<ONIXMessage>\n")
|
80
|
+
@output.write("<ONIXMessage release=\"2.1\">\n")
|
81
81
|
@output.write(@header.to_xml.to_s)
|
82
82
|
@output.write("\n")
|
83
83
|
end
|
data/spec/apa_product_spec.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
require 'onix'
|
3
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
6
4
|
require 'date'
|
7
5
|
|
8
6
|
context "ONIX::APAProduct" do
|
@@ -10,7 +8,7 @@ context "ONIX::APAProduct" do
|
|
10
8
|
before(:each) do
|
11
9
|
@data_path = File.join(File.dirname(__FILE__),"..","data")
|
12
10
|
file1 = File.join(@data_path, "product.xml")
|
13
|
-
@doc
|
11
|
+
@doc = Nokogiri::XML::Document.parse(File.read(file1))
|
14
12
|
@product_node = @doc.root
|
15
13
|
end
|
16
14
|
|
@@ -57,3 +55,45 @@ context "ONIX::APAProduct" do
|
|
57
55
|
end
|
58
56
|
|
59
57
|
end
|
58
|
+
|
59
|
+
context ONIX::APAProduct, "series method" do
|
60
|
+
specify "should set the nested series value on the underlying product class" do
|
61
|
+
apa = ONIX::APAProduct.new
|
62
|
+
|
63
|
+
apa.series = "Harry Potter"
|
64
|
+
apa.series.should eql("Harry Potter")
|
65
|
+
apa.to_xml.to_s.include?("<TitleOfSeries>Harry Potter</TitleOfSeries>").should be_true
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
context ONIX::APAProduct, "price method" do
|
70
|
+
before(:each) do
|
71
|
+
@data_path = File.join(File.dirname(__FILE__),"..","data")
|
72
|
+
file1 = File.join(@data_path, "usd.xml")
|
73
|
+
@doc = Nokogiri::XML::Document.parse(File.read(file1))
|
74
|
+
@product_node = @doc.root
|
75
|
+
end
|
76
|
+
|
77
|
+
specify "should return the first price in the file, regardless of type" do
|
78
|
+
@product = ONIX::Product.from_xml(@product_node.to_s)
|
79
|
+
@apa = ONIX::APAProduct.new(@product)
|
80
|
+
|
81
|
+
@apa.price.should eql(BigDecimal.new("99.95"))
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
context ONIX::APAProduct, "rrp_exc_sales_tax method" do
|
86
|
+
before(:each) do
|
87
|
+
@data_path = File.join(File.dirname(__FILE__),"..","data")
|
88
|
+
file1 = File.join(@data_path, "usd.xml")
|
89
|
+
@doc = Nokogiri::XML::Document.parse(File.read(file1))
|
90
|
+
@product_node = @doc.root
|
91
|
+
end
|
92
|
+
|
93
|
+
specify "should return the first price in the file of type 1" do
|
94
|
+
@product = ONIX::Product.from_xml(@product_node.to_s)
|
95
|
+
@apa = ONIX::APAProduct.new(@product)
|
96
|
+
|
97
|
+
@apa.rrp_exc_sales_tax.should eql(BigDecimal.new("99.95"))
|
98
|
+
end
|
99
|
+
end
|
data/spec/audience_range_spec.rb
CHANGED
@@ -1,15 +1,13 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
require 'onix'
|
3
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
6
4
|
|
7
5
|
context "ONIX::AudienceRange" do
|
8
6
|
|
9
7
|
before(:each) do
|
10
8
|
data_path = File.join(File.dirname(__FILE__),"..","data")
|
11
9
|
file1 = File.join(data_path, "audience_range.xml")
|
12
|
-
@doc =
|
10
|
+
@doc = Nokogiri::XML::Document.parse(File.read(file1))
|
13
11
|
@root = @doc.root
|
14
12
|
end
|
15
13
|
|
@@ -20,7 +18,7 @@ context "ONIX::AudienceRange" do
|
|
20
18
|
|
21
19
|
specify "should provide read access to first level attibutes" do
|
22
20
|
aud = ONIX::AudienceRange.from_xml(@root.to_s)
|
23
|
-
|
21
|
+
|
24
22
|
aud.audience_range_qualifier.should eql(11)
|
25
23
|
aud.audience_range_precisions.size.should eql(2)
|
26
24
|
aud.audience_range_precisions[0].should eql(3)
|
@@ -32,13 +30,13 @@ context "ONIX::AudienceRange" do
|
|
32
30
|
|
33
31
|
specify "should provide write access to first level attibutes" do
|
34
32
|
aud = ONIX::AudienceRange.new
|
35
|
-
|
33
|
+
|
36
34
|
aud.audience_range_qualifier = 12
|
37
35
|
aud.to_xml.to_s.include?("<AudienceRangeQualifier>12</AudienceRangeQualifier>").should be_true
|
38
36
|
|
39
37
|
aud.audience_range_precisions[0] = 888
|
40
38
|
aud.to_xml.to_s.include?("<AudienceRangePrecision>888</AudienceRangePrecision>").should be_true
|
41
|
-
|
39
|
+
|
42
40
|
aud.audience_range_values[0] = 999
|
43
41
|
aud.to_xml.to_s.include?("<AudienceRangeValue>999</AudienceRangeValue>").should be_true
|
44
42
|
end
|
data/spec/contributor_spec.rb
CHANGED
@@ -1,15 +1,13 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
require 'onix'
|
3
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
6
4
|
|
7
5
|
context "ONIX::Contributor" do
|
8
6
|
|
9
7
|
before(:each) do
|
10
8
|
data_path = File.join(File.dirname(__FILE__),"..","data")
|
11
9
|
file1 = File.join(data_path, "contributor.xml")
|
12
|
-
@doc =
|
10
|
+
@doc = Nokogiri::XML::Document.parse(File.read(file1))
|
13
11
|
@root = @doc.root
|
14
12
|
end
|
15
13
|
|
data/spec/header_spec.rb
CHANGED
@@ -1,15 +1,13 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
require 'onix'
|
3
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
6
4
|
|
7
5
|
context "ONIX::Header" do
|
8
6
|
|
9
7
|
before(:each) do
|
10
8
|
data_path = File.join(File.dirname(__FILE__),"..","data")
|
11
9
|
file1 = File.join(data_path, "header.xml")
|
12
|
-
@doc =
|
10
|
+
@doc = Nokogiri::XML::Document.parse(File.read(file1))
|
13
11
|
@header_node = @doc.root
|
14
12
|
end
|
15
13
|
|
data/spec/imprint_spec.rb
CHANGED
@@ -1,16 +1,14 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
require 'onix'
|
3
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
6
4
|
|
7
5
|
context "ONIX::Imprint" do
|
8
6
|
|
9
7
|
before(:each) do
|
10
8
|
data_path = File.join(File.dirname(__FILE__),"..","data")
|
11
|
-
file1
|
12
|
-
@doc
|
13
|
-
@root
|
9
|
+
file1 = File.join(data_path, "imprint.xml")
|
10
|
+
@doc = Nokogiri::XML::Document.parse(File.read(file1))
|
11
|
+
@root = @doc.root
|
14
12
|
end
|
15
13
|
|
16
14
|
specify "should correctly convert to a string" do
|
data/spec/language_spec.rb
CHANGED
@@ -1,15 +1,13 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
require 'onix'
|
3
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
6
4
|
|
7
5
|
context "ONIX::Language" do
|
8
6
|
|
9
7
|
before(:each) do
|
10
8
|
data_path = File.join(File.dirname(__FILE__),"..","data")
|
11
9
|
file1 = File.join(data_path, "language.xml")
|
12
|
-
@doc =
|
10
|
+
@doc = Nokogiri::XML::Document.parse(File.read(file1))
|
13
11
|
@root = @doc.root
|
14
12
|
end
|
15
13
|
|
@@ -20,7 +18,7 @@ context "ONIX::Language" do
|
|
20
18
|
|
21
19
|
specify "should provide read access to first level attibutes" do
|
22
20
|
lan = ONIX::Language.from_xml(@root.to_s)
|
23
|
-
|
21
|
+
|
24
22
|
lan.language_role.should eql(1)
|
25
23
|
lan.language_code.should eql("eng")
|
26
24
|
lan.country_code.should eql("US")
|
@@ -28,13 +26,13 @@ context "ONIX::Language" do
|
|
28
26
|
|
29
27
|
specify "should provide write access to first level attibutes" do
|
30
28
|
lan = ONIX::Language.new
|
31
|
-
|
29
|
+
|
32
30
|
lan.language_role = 2
|
33
31
|
lan.to_xml.to_s.include?("<LanguageRole>02</LanguageRole>").should be_true
|
34
32
|
|
35
33
|
lan.language_code = "aar"
|
36
34
|
lan.to_xml.to_s.include?("<LanguageCode>aar</LanguageCode>").should be_true
|
37
|
-
|
35
|
+
|
38
36
|
lan.country_code = "AD"
|
39
37
|
lan.to_xml.to_s.include?("<CountryCode>AD</CountryCode>").should be_true
|
40
38
|
end
|
@@ -1,15 +1,13 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
require 'onix'
|
3
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
6
4
|
|
7
5
|
context "ONIX::MarketRepresentation" do
|
8
6
|
|
9
7
|
before(:each) do
|
10
8
|
data_path = File.join(File.dirname(__FILE__),"..","data")
|
11
9
|
file1 = File.join(data_path, "market_representation.xml")
|
12
|
-
@doc
|
10
|
+
@doc = Nokogiri::XML::Document.parse(File.read(file1))
|
13
11
|
@root = @doc.root
|
14
12
|
end
|
15
13
|
|
data/spec/measure_spec.rb
CHANGED
@@ -1,15 +1,13 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
require 'onix'
|
3
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
6
4
|
|
7
5
|
context "ONIX::Measure" do
|
8
6
|
|
9
7
|
before(:each) do
|
10
8
|
data_path = File.join(File.dirname(__FILE__),"..","data")
|
11
9
|
file1 = File.join(data_path, "measure.xml")
|
12
|
-
@doc
|
10
|
+
@doc = Nokogiri::XML::Document.parse(File.read(file1))
|
13
11
|
@root = @doc.root
|
14
12
|
end
|
15
13
|
|
data/spec/media_file_spec.rb
CHANGED
@@ -1,15 +1,13 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
require 'onix'
|
3
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
6
4
|
|
7
5
|
context "ONIX::MediaFile" do
|
8
6
|
|
9
7
|
before(:each) do
|
10
8
|
data_path = File.join(File.dirname(__FILE__),"..","data")
|
11
9
|
file1 = File.join(data_path, "media_file.xml")
|
12
|
-
@doc
|
10
|
+
@doc = Nokogiri::XML::Document.parse(File.read(file1))
|
13
11
|
@root = @doc.root
|
14
12
|
end
|
15
13
|
|
data/spec/normaliser_spec.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
require 'onix'
|
3
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
6
4
|
|
7
5
|
context "ONIX::Normaliser", "with a simple short tag file" do
|
8
6
|
|
@@ -27,79 +25,6 @@ context "ONIX::Normaliser", "with a simple short tag file" do
|
|
27
25
|
|
28
26
|
end
|
29
27
|
|
30
|
-
context "ONIX::Normaliser", "with an ISO-8859-1 file" do
|
31
|
-
|
32
|
-
before(:each) do
|
33
|
-
@data_path = File.join(File.dirname(__FILE__),"..","data")
|
34
|
-
@filename = File.join(@data_path, "iso_8859_1.xml")
|
35
|
-
@outfile = @filename + ".new"
|
36
|
-
end
|
37
|
-
|
38
|
-
after(:each) do
|
39
|
-
File.unlink(@outfile) if File.file?(@outfile)
|
40
|
-
end
|
41
|
-
|
42
|
-
specify "should correctly convert an iso-8859-1 file to UTF-8" do
|
43
|
-
ONIX::Normaliser.process(@filename, @outfile)
|
44
|
-
|
45
|
-
File.file?(@outfile).should be_true
|
46
|
-
content = File.read(@outfile)
|
47
|
-
|
48
|
-
content.include?("ISO-8859-1").should be_false
|
49
|
-
content.include?("UTF-8").should be_true
|
50
|
-
|
51
|
-
`isutf8 #{File.expand_path(@outfile)}`.strip.should eql("")
|
52
|
-
end
|
53
|
-
|
54
|
-
end
|
55
|
-
|
56
|
-
context "ONIX::Normaliser", "with an file using entities" do
|
57
|
-
|
58
|
-
before(:each) do
|
59
|
-
@data_path = File.join(File.dirname(__FILE__),"..","data")
|
60
|
-
@filename = File.join(@data_path, "entities.xml")
|
61
|
-
@outfile = @filename + ".new"
|
62
|
-
end
|
63
|
-
|
64
|
-
after(:each) do
|
65
|
-
File.unlink(@outfile) if File.file?(@outfile)
|
66
|
-
end
|
67
|
-
|
68
|
-
specify "should correctly convert named entities to numeric entities" do
|
69
|
-
ONIX::Normaliser.process(@filename, @outfile)
|
70
|
-
|
71
|
-
File.file?(@outfile).should be_true
|
72
|
-
content = File.read(@outfile)
|
73
|
-
|
74
|
-
content.include?("–").should be_false
|
75
|
-
content.include?("–").should be_true
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
context "ONIX::Normaliser", "with a utf8 file that has no declared encoding" do
|
80
|
-
|
81
|
-
before(:each) do
|
82
|
-
@data_path = File.join(File.dirname(__FILE__),"..","data")
|
83
|
-
@filename = File.join(@data_path, "no_encoding.xml")
|
84
|
-
@outfile = @filename + ".new"
|
85
|
-
end
|
86
|
-
|
87
|
-
after(:each) do
|
88
|
-
File.unlink(@outfile) if File.file?(@outfile)
|
89
|
-
end
|
90
|
-
|
91
|
-
# this is to test for a bug where an exception was raised on files that
|
92
|
-
# had no declared encoding
|
93
|
-
specify "should add a utf-8 marker to the file" do
|
94
|
-
ONIX::Normaliser.process(@filename, @outfile)
|
95
|
-
|
96
|
-
File.file?(@outfile).should be_true
|
97
|
-
content = File.read(@outfile)
|
98
|
-
|
99
|
-
content.include?("encoding=\"UTF-8\"").should be_true
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
28
|
context "ONIX::Normaliser", "with a utf8 file that has illegal control chars" do
|
104
29
|
|
105
30
|
before(:each) do
|
@@ -112,8 +37,6 @@ context "ONIX::Normaliser", "with a utf8 file that has illegal control chars" do
|
|
112
37
|
File.unlink(@outfile) if File.file?(@outfile)
|
113
38
|
end
|
114
39
|
|
115
|
-
# this is to test for a bug where an exception was raised on files that
|
116
|
-
# had no declared encoding
|
117
40
|
specify "should remove all control chars except LF, CR and TAB" do
|
118
41
|
ONIX::Normaliser.process(@filename, @outfile)
|
119
42
|
|
data/spec/other_text_spec.rb
CHANGED
@@ -1,15 +1,13 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
require 'onix'
|
3
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
6
4
|
|
7
5
|
context "ONIX::OtherText" do
|
8
6
|
|
9
7
|
before(:each) do
|
10
8
|
data_path = File.join(File.dirname(__FILE__),"..","data")
|
11
9
|
file1 = File.join(data_path, "other_text.xml")
|
12
|
-
@doc
|
10
|
+
@doc = Nokogiri::XML::Document.parse(File.read(file1))
|
13
11
|
@root = @doc.root
|
14
12
|
end
|
15
13
|
|
data/spec/price_spec.rb
CHANGED
@@ -1,15 +1,13 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
require 'onix'
|
3
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
6
4
|
|
7
5
|
context "ONIX::Price" do
|
8
6
|
|
9
7
|
before(:each) do
|
10
8
|
data_path = File.join(File.dirname(__FILE__),"..","data")
|
11
9
|
file1 = File.join(data_path, "price.xml")
|
12
|
-
@doc
|
10
|
+
@doc = Nokogiri::XML::Document.parse(File.read(file1))
|
13
11
|
@root = @doc.root
|
14
12
|
end
|
15
13
|
|