im_onix 1.1.1 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -6
- data/README.md +1 -1
- data/bin/html_codelist_to_yml.rb +10 -6
- data/bin/onix_bench.rb +25 -4
- data/bin/onix_pp.rb +26 -26
- data/bin/onix_serialize.rb +12 -16
- data/data/codelists/codelist-1.yml +4 -5
- data/data/codelists/codelist-10.yml +13 -11
- data/data/codelists/codelist-100.yml +1 -0
- data/data/codelists/codelist-102.yml +3 -2
- data/data/codelists/codelist-11.yml +2 -2
- data/data/codelists/codelist-12.yml +8 -3
- data/data/codelists/codelist-121.yml +46 -17
- data/data/codelists/codelist-13.yml +3 -0
- data/data/codelists/codelist-139.yml +83 -9
- data/data/codelists/codelist-141.yml +4 -4
- data/data/codelists/codelist-142.yml +2 -2
- data/data/codelists/codelist-143.yml +11 -0
- data/data/codelists/codelist-144.yml +2 -2
- data/data/codelists/codelist-145.yml +4 -1
- data/data/codelists/codelist-147.yml +18 -2
- data/data/codelists/codelist-149.yml +1 -0
- data/data/codelists/codelist-15.yml +2 -1
- data/data/codelists/codelist-150.yml +46 -26
- data/data/codelists/codelist-151.yml +4 -1
- data/data/codelists/codelist-153.yml +19 -4
- data/data/codelists/codelist-154.yml +4 -2
- data/data/codelists/codelist-155.yml +3 -1
- data/data/codelists/codelist-156.yml +1 -0
- data/data/codelists/codelist-158.yml +18 -0
- data/data/codelists/codelist-159.yml +1 -1
- data/data/codelists/codelist-16.yml +3 -0
- data/data/codelists/codelist-160.yml +2 -0
- data/data/codelists/codelist-162.yml +2 -0
- data/data/codelists/codelist-163.yml +8 -3
- data/data/codelists/codelist-165.yml +3 -0
- data/data/codelists/codelist-166.yml +7 -2
- data/data/codelists/codelist-167.yml +6 -0
- data/data/codelists/codelist-168.yml +1 -0
- data/data/codelists/codelist-169.yml +2 -2
- data/data/codelists/codelist-17.yml +20 -2
- data/data/codelists/codelist-170.yml +5 -1
- data/data/codelists/codelist-171.yml +1 -0
- data/data/codelists/codelist-173.yml +1 -1
- data/data/codelists/codelist-175.yml +113 -35
- data/data/codelists/codelist-176.yml +2 -2
- data/data/codelists/codelist-177.yml +1 -0
- data/data/codelists/codelist-178.yml +6 -0
- data/data/codelists/codelist-179.yml +1 -0
- data/data/codelists/codelist-18.yml +3 -1
- data/data/codelists/codelist-184.yml +1 -0
- data/data/codelists/codelist-19.yml +5 -4
- data/data/codelists/codelist-196.yml +16 -4
- data/data/codelists/codelist-197.yml +2 -0
- data/data/codelists/codelist-198.yml +7 -0
- data/data/codelists/codelist-2.yml +6 -6
- data/data/codelists/codelist-20.yml +10 -1
- data/data/codelists/codelist-203.yml +1 -1
- data/data/codelists/codelist-204.yml +4 -0
- data/data/codelists/codelist-21.yml +24 -19
- data/data/codelists/codelist-215.yml +9 -0
- data/data/codelists/codelist-216.yml +11 -0
- data/data/codelists/codelist-217.yml +9 -0
- data/data/codelists/codelist-218.yml +5 -0
- data/data/codelists/codelist-219.yml +5 -0
- data/data/codelists/codelist-22.yml +5 -4
- data/data/codelists/codelist-220.yml +10 -0
- data/data/codelists/codelist-221.yml +6 -0
- data/data/codelists/codelist-222.yml +4 -0
- data/data/codelists/codelist-223.yml +4 -0
- data/data/codelists/codelist-224.yml +8 -0
- data/data/codelists/codelist-225.yml +4 -0
- data/data/codelists/codelist-226.yml +7 -0
- data/data/codelists/codelist-227.yml +21 -0
- data/data/codelists/codelist-228.yml +3 -0
- data/data/codelists/codelist-229.yml +5 -0
- data/data/codelists/codelist-23.yml +5 -3
- data/data/codelists/codelist-230.yml +8 -0
- data/data/codelists/codelist-238.yml +23 -0
- data/data/codelists/codelist-239.yml +4 -0
- data/data/codelists/codelist-24.yml +3 -0
- data/data/codelists/codelist-240.yml +6 -0
- data/data/codelists/codelist-241.yml +9 -0
- data/data/codelists/codelist-242.yml +24 -0
- data/data/codelists/codelist-243.yml +9 -0
- data/data/codelists/codelist-244.yml +3 -0
- data/data/codelists/codelist-245.yml +5 -0
- data/data/codelists/codelist-246.yml +4 -0
- data/data/codelists/codelist-247.yml +4 -0
- data/data/codelists/codelist-25.yml +4 -2
- data/data/codelists/codelist-26.yml +28 -18
- data/data/codelists/codelist-27.yml +35 -19
- data/data/codelists/codelist-28.yml +2 -1
- data/data/codelists/codelist-29.yml +8 -3
- data/data/codelists/codelist-3.yml +5 -2
- data/data/codelists/codelist-30.yml +6 -2
- data/data/codelists/codelist-32.yml +7 -0
- data/data/codelists/codelist-33.yml +6 -2
- data/data/codelists/codelist-34.yml +0 -11
- data/data/codelists/codelist-38.yml +1 -1
- data/data/codelists/codelist-39.yml +2 -2
- data/data/codelists/codelist-41.yml +4 -3
- data/data/codelists/codelist-42.yml +0 -12
- data/data/codelists/codelist-43.yml +3 -1
- data/data/codelists/codelist-44.yml +16 -3
- data/data/codelists/codelist-45.yml +8 -3
- data/data/codelists/codelist-46.yml +4 -4
- data/data/codelists/codelist-48.yml +20 -2
- data/data/codelists/codelist-49.yml +268 -1
- data/data/codelists/codelist-5.yml +6 -3
- data/data/codelists/codelist-51.yml +11 -5
- data/data/codelists/codelist-55.yml +2 -2
- data/data/codelists/codelist-57.yml +1 -0
- data/data/codelists/codelist-58.yml +14 -12
- data/data/codelists/codelist-59.yml +10 -1
- data/data/codelists/codelist-6.yml +39 -39
- data/data/codelists/codelist-60.yml +1 -1
- data/data/codelists/codelist-62.yml +2 -1
- data/data/codelists/codelist-64.yml +3 -2
- data/data/codelists/codelist-65.yml +1 -0
- data/data/codelists/codelist-68.yml +2 -2
- data/data/codelists/codelist-69.yml +2 -2
- data/data/codelists/codelist-7.yml +21 -17
- data/data/codelists/codelist-71.yml +16 -6
- data/data/codelists/codelist-73.yml +7 -5
- data/data/codelists/codelist-74.yml +59 -31
- data/data/codelists/codelist-75.yml +1 -1
- data/data/codelists/codelist-76.yml +3 -3
- data/data/codelists/codelist-78.yml +52 -26
- data/data/codelists/codelist-79.yml +16 -7
- data/data/codelists/codelist-8.yml +3 -3
- data/data/codelists/codelist-80.yml +6 -5
- data/data/codelists/codelist-81.yml +8 -5
- data/data/codelists/codelist-83.yml +3 -2
- data/data/codelists/codelist-85.yml +1 -1
- data/data/codelists/codelist-9.yml +7 -3
- data/data/codelists/codelist-90.yml +2 -2
- data/data/codelists/codelist-91.yml +11 -11
- data/data/codelists/codelist-92.yml +1 -1
- data/data/codelists/codelist-93.yml +9 -6
- data/data/codelists/codelist-96.yml +45 -40
- data/data/codelists/codelist-98.yml +6 -3
- data/data/codelists/codelist-99.yml +8 -5
- data/data/onix21/codelists/codelist-1.yml +2 -2
- data/data/onix21/codelists/codelist-10.yml +12 -12
- data/data/onix21/codelists/codelist-11.yml +2 -2
- data/data/onix21/codelists/codelist-12.yml +3 -3
- data/data/onix21/codelists/codelist-121.yml +9 -9
- data/data/onix21/codelists/codelist-13.yml +1 -1
- data/data/onix21/codelists/codelist-139.yml +6 -6
- data/data/onix21/codelists/codelist-141.yml +4 -4
- data/data/onix21/codelists/codelist-142.yml +2 -2
- data/data/onix21/codelists/codelist-145.yml +2 -2
- data/data/onix21/codelists/codelist-147.yml +2 -2
- data/data/onix21/codelists/codelist-148.yml +1 -1
- data/data/onix21/codelists/codelist-149.yml +1 -1
- data/data/onix21/codelists/codelist-15.yml +1 -1
- data/data/onix21/codelists/codelist-150.yml +23 -23
- data/data/onix21/codelists/codelist-151.yml +1 -1
- data/data/onix21/codelists/codelist-153.yml +3 -3
- data/data/onix21/codelists/codelist-154.yml +2 -2
- data/data/onix21/codelists/codelist-155.yml +1 -1
- data/data/onix21/codelists/codelist-158.yml +2 -2
- data/data/onix21/codelists/codelist-159.yml +1 -1
- data/data/onix21/codelists/codelist-163.yml +2 -2
- data/data/onix21/codelists/codelist-166.yml +1 -1
- data/data/onix21/codelists/codelist-169.yml +2 -2
- data/data/onix21/codelists/codelist-17.yml +2 -2
- data/data/onix21/codelists/codelist-173.yml +1 -1
- data/data/onix21/codelists/codelist-175.yml +23 -23
- data/data/onix21/codelists/codelist-176.yml +2 -2
- data/data/onix21/codelists/codelist-18.yml +1 -1
- data/data/onix21/codelists/codelist-196.yml +4 -4
- data/data/onix21/codelists/codelist-2.yml +6 -6
- data/data/onix21/codelists/codelist-203.yml +1 -1
- data/data/onix21/codelists/codelist-21.yml +1 -1
- data/data/onix21/codelists/codelist-216.yml +2 -2
- data/data/onix21/codelists/codelist-218.yml +1 -1
- data/data/onix21/codelists/codelist-22.yml +3 -3
- data/data/onix21/codelists/codelist-23.yml +2 -2
- data/data/onix21/codelists/codelist-25.yml +2 -2
- data/data/onix21/codelists/codelist-26.yml +18 -18
- data/data/onix21/codelists/codelist-27.yml +18 -18
- data/data/onix21/codelists/codelist-28.yml +1 -1
- data/data/onix21/codelists/codelist-29.yml +3 -3
- data/data/onix21/codelists/codelist-3.yml +2 -2
- data/data/onix21/codelists/codelist-30.yml +1 -1
- data/data/onix21/codelists/codelist-32.yml +1 -1
- data/data/onix21/codelists/codelist-33.yml +2 -2
- data/data/onix21/codelists/codelist-34.yml +2 -2
- data/data/onix21/codelists/codelist-38.yml +1 -1
- data/data/onix21/codelists/codelist-39.yml +2 -2
- data/data/onix21/codelists/codelist-41.yml +3 -3
- data/data/onix21/codelists/codelist-43.yml +1 -1
- data/data/onix21/codelists/codelist-44.yml +2 -2
- data/data/onix21/codelists/codelist-45.yml +4 -4
- data/data/onix21/codelists/codelist-46.yml +3 -3
- data/data/onix21/codelists/codelist-48.yml +2 -2
- data/data/onix21/codelists/codelist-49.yml +12 -12
- data/data/onix21/codelists/codelist-5.yml +3 -3
- data/data/onix21/codelists/codelist-51.yml +3 -3
- data/data/onix21/codelists/codelist-55.yml +2 -2
- data/data/onix21/codelists/codelist-58.yml +10 -10
- data/data/onix21/codelists/codelist-59.yml +2 -2
- data/data/onix21/codelists/codelist-6.yml +36 -36
- data/data/onix21/codelists/codelist-60.yml +1 -1
- data/data/onix21/codelists/codelist-62.yml +1 -1
- data/data/onix21/codelists/codelist-64.yml +2 -2
- data/data/onix21/codelists/codelist-68.yml +2 -2
- data/data/onix21/codelists/codelist-69.yml +2 -2
- data/data/onix21/codelists/codelist-7.yml +17 -17
- data/data/onix21/codelists/codelist-71.yml +2 -2
- data/data/onix21/codelists/codelist-73.yml +5 -5
- data/data/onix21/codelists/codelist-74.yml +28 -28
- data/data/onix21/codelists/codelist-75.yml +1 -1
- data/data/onix21/codelists/codelist-76.yml +3 -3
- data/data/onix21/codelists/codelist-78.yml +24 -24
- data/data/onix21/codelists/codelist-79.yml +6 -6
- data/data/onix21/codelists/codelist-8.yml +3 -3
- data/data/onix21/codelists/codelist-80.yml +5 -5
- data/data/onix21/codelists/codelist-81.yml +4 -4
- data/data/onix21/codelists/codelist-83.yml +2 -2
- data/data/onix21/codelists/codelist-85.yml +1 -1
- data/data/onix21/codelists/codelist-9.yml +3 -3
- data/data/onix21/codelists/codelist-90.yml +2 -2
- data/data/onix21/codelists/codelist-91.yml +6 -6
- data/data/onix21/codelists/codelist-92.yml +1 -1
- data/data/onix21/codelists/codelist-93.yml +6 -6
- data/data/onix21/codelists/codelist-96.yml +1 -1
- data/data/onix21/codelists/codelist-98.yml +2 -2
- data/data/onix21/codelists/codelist-99.yml +4 -4
- data/doc-src/handlers.rb +32 -2
- data/im_onix.gemspec +3 -1
- data/lib/onix/addressee.rb +5 -3
- data/lib/onix/ancillary_content.rb +7 -0
- data/lib/onix/audience.rb +7 -0
- data/lib/onix/audience_range.rb +10 -0
- data/lib/onix/barcode.rb +6 -0
- data/lib/onix/builder.rb +197 -0
- data/lib/onix/cited_content.rb +15 -0
- data/lib/onix/code.rb +322 -42
- data/lib/onix/collateral_detail.rb +9 -13
- data/lib/onix/collection.rb +14 -4
- data/lib/onix/collection_sequence.rb +3 -3
- data/lib/onix/comparison_product_price.rb +17 -0
- data/lib/onix/complexity.rb +6 -0
- data/lib/onix/content_detail.rb +7 -0
- data/lib/onix/content_item.rb +38 -0
- data/lib/onix/contributor.rb +56 -34
- data/lib/onix/contributor_place.rb +12 -0
- data/lib/onix/copyright_statement.rb +8 -0
- data/lib/onix/date.rb +107 -56
- data/lib/onix/descriptive_detail.rb +98 -49
- data/lib/onix/discount.rb +9 -0
- data/lib/onix/discount_coded.rb +3 -3
- data/lib/onix/entity.rb +22 -37
- data/lib/onix/epub_license.rb +8 -0
- data/lib/onix/epub_license_expression.rb +7 -0
- data/lib/onix/epub_usage_constraint.rb +5 -3
- data/lib/onix/epub_usage_limit.rb +2 -2
- data/lib/onix/error.rb +2 -0
- data/lib/onix/extent.rb +4 -3
- data/lib/onix/header.rb +17 -0
- data/lib/onix/helper.rb +3 -12
- data/lib/onix/identifier.rb +81 -57
- data/lib/onix/language.rb +5 -2
- data/lib/onix/market.rb +2 -1
- data/lib/onix/market_publishing_detail.rb +14 -3
- data/lib/onix/measure.rb +7 -0
- data/lib/onix/onix21.rb +26 -24
- data/lib/onix/onix_message.rb +40 -48
- data/lib/onix/page_run.rb +6 -0
- data/lib/onix/price.rb +44 -11
- data/lib/onix/prize.rb +11 -0
- data/lib/onix/product.rb +45 -17
- data/lib/onix/product_classification.rb +8 -0
- data/lib/onix/product_contact.rb +11 -0
- data/lib/onix/product_part.rb +25 -10
- data/lib/onix/{product_supplies_extractor.rb → product_supplies_methods.rb} +3 -3
- data/lib/onix/product_supply.rb +4 -3
- data/lib/onix/professional_affiliation.rb +6 -0
- data/lib/onix/publisher_representative.rb +11 -0
- data/lib/onix/publishing_detail.rb +22 -9
- data/lib/onix/related_material.rb +6 -2
- data/lib/onix/related_product.rb +14 -6
- data/lib/onix/related_work.rb +5 -3
- data/lib/onix/resource_feature.rb +9 -0
- data/lib/onix/resource_version.rb +85 -0
- data/lib/onix/resource_version_feature.rb +22 -0
- data/lib/onix/returns_conditions.rb +8 -0
- data/lib/onix/review_rating.rb +7 -0
- data/lib/onix/sales_outlet.rb +12 -2
- data/lib/onix/sales_restriction.rb +7 -16
- data/lib/onix/sales_rights.rb +6 -3
- data/lib/onix/sender.rb +5 -5
- data/lib/onix/serializer.rb +131 -87
- data/lib/onix/subject.rb +11 -6
- data/lib/onix/subset.rb +255 -104
- data/lib/onix/supplier_own_coding.rb +7 -0
- data/lib/onix/supply_contact.rb +9 -0
- data/lib/onix/supply_detail.rb +28 -5
- data/lib/onix/supporting_resource.rb +10 -113
- data/lib/onix/tax.rb +11 -5
- data/lib/onix/territory.rb +8 -4
- data/lib/onix/text_content.rb +13 -0
- data/lib/onix/text_item.rb +12 -0
- data/lib/onix/title_detail.rb +4 -3
- data/lib/onix/title_element.rb +16 -13
- data/lib/onix/website.rb +4 -3
- metadata +89 -3
data/lib/onix/code.rb
CHANGED
@@ -1,19 +1,24 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
1
|
require 'yaml'
|
3
2
|
|
4
3
|
module ONIX
|
5
|
-
|
4
|
+
class InvalidCodeAlias < StandardError
|
5
|
+
end
|
6
|
+
|
7
|
+
module CodeMethods
|
6
8
|
def parse(n)
|
9
|
+
parse_attributes(n.attributes)
|
7
10
|
@code = n.text
|
8
11
|
@human = self.class.hash[n.text]
|
9
12
|
end
|
10
13
|
|
11
14
|
# Humanized string code
|
15
|
+
# @return [String]
|
12
16
|
def human
|
13
17
|
@human
|
14
18
|
end
|
15
19
|
|
16
20
|
# ONIX code
|
21
|
+
# @return [String]
|
17
22
|
def onix
|
18
23
|
@code
|
19
24
|
end
|
@@ -27,57 +32,63 @@ module ONIX
|
|
27
32
|
# @return [String] humanized string (eg: "Digital watermarking" become DigitalWatermarking, "PDF" become Pdf, "BISAC Subject Heading" become BisacSubjectHeading, etc)
|
28
33
|
attr_accessor :human
|
29
34
|
|
30
|
-
include
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
# create Code from human readable code
|
43
|
-
# @param [String] human human readable code
|
44
|
-
# @return [Code]
|
45
|
-
def self.from_human(human)
|
46
|
-
obj = self.new
|
47
|
-
obj.human = human
|
48
|
-
obj.code = self.hash.key(human)
|
49
|
-
obj
|
50
|
-
end
|
35
|
+
include CodeMethods
|
36
|
+
|
37
|
+
class << self
|
38
|
+
# create Code from ONIX code
|
39
|
+
# @param [String] code ONIX code
|
40
|
+
# @return [Code]
|
41
|
+
def from_code(code)
|
42
|
+
obj = self.new
|
43
|
+
obj.code = code
|
44
|
+
obj.human = self.hash[code]
|
45
|
+
obj
|
46
|
+
end
|
51
47
|
|
52
|
-
|
48
|
+
# create Code from human readable code
|
49
|
+
# @param [String] human human readable code
|
50
|
+
# @return [Code]
|
51
|
+
def from_human(human)
|
52
|
+
obj = self.new
|
53
|
+
obj.human = human
|
54
|
+
obj.code = self.hash.key(human)
|
55
|
+
unless obj.code
|
56
|
+
raise InvalidCodeAlias, [self.to_s, human]
|
57
|
+
end
|
58
|
+
obj
|
59
|
+
end
|
53
60
|
|
54
|
-
|
55
|
-
|
61
|
+
def hash
|
62
|
+
{}
|
63
|
+
end
|
56
64
|
end
|
57
65
|
end
|
58
66
|
|
59
67
|
class CodeFromYaml < Code
|
60
|
-
|
61
|
-
|
62
|
-
|
68
|
+
class << self
|
69
|
+
def hash
|
70
|
+
@hash ||= YAML.load(File.open(File.dirname(__FILE__) + "/../../data/codelists/codelist-#{self.code_ident}.yml"))[:codelist].freeze
|
71
|
+
end
|
63
72
|
|
64
|
-
|
65
|
-
|
66
|
-
|
73
|
+
def list
|
74
|
+
self.hash.keys
|
75
|
+
end
|
67
76
|
|
68
|
-
|
69
|
-
|
70
|
-
|
77
|
+
def code_ident
|
78
|
+
nil
|
79
|
+
end
|
71
80
|
|
72
|
-
|
73
|
-
|
74
|
-
|
81
|
+
def code_identifier code
|
82
|
+
define_singleton_method :code_ident do
|
83
|
+
return code
|
84
|
+
end
|
75
85
|
end
|
76
86
|
end
|
77
87
|
end
|
78
88
|
|
79
89
|
class CodeFromYamlWithMime < CodeFromYaml
|
80
90
|
# main formats
|
91
|
+
# @return [String]
|
81
92
|
def mimetype
|
82
93
|
case self.human
|
83
94
|
when "Epub"
|
@@ -104,14 +115,30 @@ module ONIX
|
|
104
115
|
code_identifier 2
|
105
116
|
end
|
106
117
|
|
118
|
+
class RecordSourceType < CodeFromYaml
|
119
|
+
code_identifier 3
|
120
|
+
end
|
121
|
+
|
107
122
|
class ProductIDType < CodeFromYaml
|
108
123
|
code_identifier 5
|
109
124
|
end
|
110
125
|
|
126
|
+
class ProductClassificationType < CodeFromYaml
|
127
|
+
code_identifier 9
|
128
|
+
end
|
129
|
+
|
130
|
+
class TradeCategory < CodeFromYaml
|
131
|
+
code_identifier 12
|
132
|
+
end
|
133
|
+
|
111
134
|
class CollectionIDType < CodeFromYaml
|
112
135
|
code_identifier 13
|
113
136
|
end
|
114
137
|
|
138
|
+
class TextCase < CodeFromYaml
|
139
|
+
code_identifier 14
|
140
|
+
end
|
141
|
+
|
115
142
|
class TitleType < CodeFromYaml
|
116
143
|
code_identifier 15
|
117
144
|
end
|
@@ -124,6 +151,18 @@ module ONIX
|
|
124
151
|
code_identifier 17
|
125
152
|
end
|
126
153
|
|
154
|
+
class NameType < CodeFromYaml
|
155
|
+
code_identifier 18
|
156
|
+
end
|
157
|
+
|
158
|
+
class UnnamedPersons < CodeFromYaml
|
159
|
+
code_identifier 19
|
160
|
+
end
|
161
|
+
|
162
|
+
class ConferenceRole < CodeFromYaml
|
163
|
+
code_identifier 20
|
164
|
+
end
|
165
|
+
|
127
166
|
class EditionType < CodeFromYaml
|
128
167
|
code_identifier 21
|
129
168
|
end
|
@@ -140,6 +179,10 @@ module ONIX
|
|
140
179
|
code_identifier 24
|
141
180
|
end
|
142
181
|
|
182
|
+
class AncillaryContentType < CodeFromYaml
|
183
|
+
code_identifier 25
|
184
|
+
end
|
185
|
+
|
143
186
|
class SubjectSchemeIdentifier < CodeFromYaml
|
144
187
|
code_identifier 27
|
145
188
|
end
|
@@ -148,6 +191,38 @@ module ONIX
|
|
148
191
|
code_identifier 28
|
149
192
|
end
|
150
193
|
|
194
|
+
class AudienceCodeType < CodeFromYaml
|
195
|
+
code_identifier 29
|
196
|
+
end
|
197
|
+
|
198
|
+
class AudienceRangeQualifier < CodeFromYaml
|
199
|
+
code_identifier 30
|
200
|
+
end
|
201
|
+
|
202
|
+
class AudienceRangePrecision < CodeFromYaml
|
203
|
+
code_identifier 31
|
204
|
+
end
|
205
|
+
|
206
|
+
class ComplexitySchemeIdentifier < CodeFromYaml
|
207
|
+
code_identifier 32
|
208
|
+
end
|
209
|
+
|
210
|
+
class TextFormat < CodeFromYaml
|
211
|
+
code_identifier 34
|
212
|
+
end
|
213
|
+
|
214
|
+
class PrizeCode < CodeFromYaml
|
215
|
+
code_identifier 41
|
216
|
+
end
|
217
|
+
|
218
|
+
class TextItemType < CodeFromYaml
|
219
|
+
code_identifier 42
|
220
|
+
end
|
221
|
+
|
222
|
+
class TextItemIDType < CodeFromYaml
|
223
|
+
code_identifier 43
|
224
|
+
end
|
225
|
+
|
151
226
|
class IDType < CodeFromYaml
|
152
227
|
code_identifier 44
|
153
228
|
end
|
@@ -158,6 +233,9 @@ module ONIX
|
|
158
233
|
class AddresseeIDType < IDType
|
159
234
|
end
|
160
235
|
|
236
|
+
class RecordSourceIDType < IDType
|
237
|
+
end
|
238
|
+
|
161
239
|
class PublisherIDType < IDType
|
162
240
|
end
|
163
241
|
|
@@ -167,6 +245,12 @@ module ONIX
|
|
167
245
|
class NameIDType < IDType
|
168
246
|
end
|
169
247
|
|
248
|
+
class NameIDType < IDType
|
249
|
+
end
|
250
|
+
|
251
|
+
class ProductContactIDType < IDType
|
252
|
+
end
|
253
|
+
|
170
254
|
class PublishingRole < CodeFromYaml
|
171
255
|
code_identifier 45
|
172
256
|
end
|
@@ -175,14 +259,26 @@ module ONIX
|
|
175
259
|
code_identifier 46
|
176
260
|
end
|
177
261
|
|
262
|
+
class MeasureType < CodeFromYaml
|
263
|
+
code_identifier 48
|
264
|
+
end
|
265
|
+
|
178
266
|
class RegionCode < CodeFromYaml
|
179
267
|
code_identifier 49
|
180
268
|
end
|
181
269
|
|
270
|
+
class MeasureUnitCode < CodeFromYaml
|
271
|
+
code_identifier 50
|
272
|
+
end
|
273
|
+
|
182
274
|
class ProductRelationCode < CodeFromYaml
|
183
275
|
code_identifier 51
|
184
276
|
end
|
185
277
|
|
278
|
+
class ReturnsCodeType < CodeFromYaml
|
279
|
+
code_identifier 53
|
280
|
+
end
|
281
|
+
|
186
282
|
class DateFormat < CodeFromYaml
|
187
283
|
code_identifier 55
|
188
284
|
end
|
@@ -199,6 +295,10 @@ module ONIX
|
|
199
295
|
code_identifier 59
|
200
296
|
end
|
201
297
|
|
298
|
+
class PricePer < CodeFromYaml
|
299
|
+
code_identifier 60
|
300
|
+
end
|
301
|
+
|
202
302
|
class PriceStatus < CodeFromYaml
|
203
303
|
code_identifier 61
|
204
304
|
end
|
@@ -223,10 +323,18 @@ module ONIX
|
|
223
323
|
code_identifier 69
|
224
324
|
end
|
225
325
|
|
326
|
+
class StockQuantityCodeType < CodeFromYaml
|
327
|
+
code_identifier 70
|
328
|
+
end
|
329
|
+
|
226
330
|
class SalesRestrictionType < CodeFromYaml
|
227
331
|
code_identifier 71
|
228
332
|
end
|
229
333
|
|
334
|
+
class ThesisType < CodeFromYaml
|
335
|
+
code_identifier 72
|
336
|
+
end
|
337
|
+
|
230
338
|
class WebsiteRole < CodeFromYaml
|
231
339
|
code_identifier 73
|
232
340
|
end
|
@@ -239,10 +347,50 @@ module ONIX
|
|
239
347
|
code_identifier 79
|
240
348
|
end
|
241
349
|
|
350
|
+
class ProductPackaging < CodeFromYaml
|
351
|
+
code_identifier 80
|
352
|
+
end
|
353
|
+
|
242
354
|
class ProductContentType < CodeFromYaml
|
243
355
|
code_identifier 81
|
244
356
|
end
|
245
357
|
|
358
|
+
class BibleContents < CodeFromYaml
|
359
|
+
code_identifier 82
|
360
|
+
end
|
361
|
+
|
362
|
+
class BibleVersion < CodeFromYaml
|
363
|
+
code_identifier 83
|
364
|
+
end
|
365
|
+
|
366
|
+
class StudyBibleType < CodeFromYaml
|
367
|
+
code_identifier 84
|
368
|
+
end
|
369
|
+
|
370
|
+
class BiblePurpose < CodeFromYaml
|
371
|
+
code_identifier 85
|
372
|
+
end
|
373
|
+
|
374
|
+
class BibleTextOrganization < CodeFromYaml
|
375
|
+
code_identifier 86
|
376
|
+
end
|
377
|
+
|
378
|
+
class BibleReferenceLocation < CodeFromYaml
|
379
|
+
code_identifier 87
|
380
|
+
end
|
381
|
+
|
382
|
+
class ReligiousTextIdentifier < CodeFromYaml
|
383
|
+
code_identifier 88
|
384
|
+
end
|
385
|
+
|
386
|
+
class ReligiousTextFeatureType < CodeFromYaml
|
387
|
+
code_identifier 89
|
388
|
+
end
|
389
|
+
|
390
|
+
class ReligiousTextFeatureCode < CodeFromYaml
|
391
|
+
code_identifier 90
|
392
|
+
end
|
393
|
+
|
246
394
|
class CountryCode < CodeFromYaml
|
247
395
|
code_identifier 91
|
248
396
|
end
|
@@ -259,10 +407,30 @@ module ONIX
|
|
259
407
|
code_identifier 93
|
260
408
|
end
|
261
409
|
|
410
|
+
class BibleTextFeature < CodeFromYaml
|
411
|
+
code_identifier 97
|
412
|
+
end
|
413
|
+
|
414
|
+
class DiscountCodeType < CodeFromYaml
|
415
|
+
code_identifier 100
|
416
|
+
end
|
417
|
+
|
262
418
|
class SalesOutletIDType < CodeFromYaml
|
263
419
|
code_identifier 102
|
264
420
|
end
|
265
421
|
|
422
|
+
class ScriptCode < CodeFromYaml
|
423
|
+
code_identifier 121
|
424
|
+
end
|
425
|
+
|
426
|
+
class BarcodeType < CodeFromYaml
|
427
|
+
code_identifier 141
|
428
|
+
end
|
429
|
+
|
430
|
+
class PositionOnProduct < CodeFromYaml
|
431
|
+
code_identifier 142
|
432
|
+
end
|
433
|
+
|
266
434
|
class EpubTechnicalProtection < CodeFromYaml
|
267
435
|
code_identifier 144
|
268
436
|
end
|
@@ -283,10 +451,6 @@ module ONIX
|
|
283
451
|
code_identifier 148
|
284
452
|
end
|
285
453
|
|
286
|
-
class CollectionSequenceType < CodeFromYaml
|
287
|
-
code_identifier 197
|
288
|
-
end
|
289
|
-
|
290
454
|
class TitleElementLevel < CodeFromYaml
|
291
455
|
code_identifier 149
|
292
456
|
end
|
@@ -299,6 +463,10 @@ module ONIX
|
|
299
463
|
code_identifier 151
|
300
464
|
end
|
301
465
|
|
466
|
+
class Illustrated < CodeFromYaml
|
467
|
+
code_identifier 152
|
468
|
+
end
|
469
|
+
|
302
470
|
class TextType < CodeFromYaml
|
303
471
|
code_identifier 153
|
304
472
|
end
|
@@ -311,6 +479,14 @@ module ONIX
|
|
311
479
|
code_identifier 155
|
312
480
|
end
|
313
481
|
|
482
|
+
class CitedContentType < CodeFromYaml
|
483
|
+
code_identifier 156
|
484
|
+
end
|
485
|
+
|
486
|
+
class SourceType < CodeFromYaml
|
487
|
+
code_identifier 157
|
488
|
+
end
|
489
|
+
|
314
490
|
class ResourceContentType < CodeFromYaml
|
315
491
|
code_identifier 158
|
316
492
|
end
|
@@ -343,18 +519,46 @@ module ONIX
|
|
343
519
|
code_identifier 164
|
344
520
|
end
|
345
521
|
|
522
|
+
class SupplierCodeType < CodeFromYaml
|
523
|
+
code_identifier 165
|
524
|
+
end
|
525
|
+
|
346
526
|
class SupplyDateRole < CodeFromYaml
|
347
527
|
code_identifier 166
|
348
528
|
end
|
349
529
|
|
530
|
+
class PriceConditionType < CodeFromYaml
|
531
|
+
code_identifier 167
|
532
|
+
end
|
533
|
+
|
534
|
+
class PriceConditionQuantityType < CodeFromYaml
|
535
|
+
code_identifier 168
|
536
|
+
end
|
537
|
+
|
538
|
+
class QuantityUnit < CodeFromYaml
|
539
|
+
code_identifier 169
|
540
|
+
end
|
541
|
+
|
542
|
+
class DiscountType < CodeFromYaml
|
543
|
+
code_identifier 170
|
544
|
+
end
|
545
|
+
|
350
546
|
class TaxType < CodeFromYaml
|
351
547
|
code_identifier 171
|
352
548
|
end
|
353
549
|
|
550
|
+
class CurrencyZone < CodeFromYaml
|
551
|
+
code_identifier 172
|
552
|
+
end
|
553
|
+
|
354
554
|
class PriceDateRole < CodeFromYaml
|
355
555
|
code_identifier 173
|
356
556
|
end
|
357
557
|
|
558
|
+
class PrintedOnProduct < CodeFromYaml
|
559
|
+
code_identifier 174
|
560
|
+
end
|
561
|
+
|
358
562
|
class ProductFormDetail < CodeFromYamlWithMime
|
359
563
|
code_identifier 175
|
360
564
|
end
|
@@ -366,4 +570,80 @@ module ONIX
|
|
366
570
|
class SupportingResourceFileFormat < CodeFromYamlWithMime
|
367
571
|
code_identifier 178
|
368
572
|
end
|
573
|
+
|
574
|
+
class PriceCodeType < CodeFromYaml
|
575
|
+
code_identifier 179
|
576
|
+
end
|
577
|
+
|
578
|
+
class CollectionSequenceType < CodeFromYaml
|
579
|
+
code_identifier 197
|
580
|
+
end
|
581
|
+
|
582
|
+
class ProductContactRole < CodeFromYaml
|
583
|
+
code_identifier 198
|
584
|
+
end
|
585
|
+
|
586
|
+
class ReturnsCode < CodeFromYaml
|
587
|
+
code_identifier 204
|
588
|
+
end
|
589
|
+
|
590
|
+
class Proximity < CodeFromYaml
|
591
|
+
code_identifier 215
|
592
|
+
end
|
593
|
+
|
594
|
+
class VelocityMetric < CodeFromYaml
|
595
|
+
code_identifier 216
|
596
|
+
end
|
597
|
+
|
598
|
+
class PriceIDType < CodeFromYaml
|
599
|
+
code_identifier 217
|
600
|
+
end
|
601
|
+
|
602
|
+
class EpubLicenseExpressionType < CodeFromYaml
|
603
|
+
code_identifier 218
|
604
|
+
end
|
605
|
+
|
606
|
+
class CopyrightType < CodeFromYaml
|
607
|
+
code_identifier 219
|
608
|
+
end
|
609
|
+
|
610
|
+
class FundingIDType < CodeFromYaml
|
611
|
+
code_identifier 228
|
612
|
+
end
|
613
|
+
|
614
|
+
class Gender < CodeFromYaml
|
615
|
+
code_identifier 229
|
616
|
+
end
|
617
|
+
|
618
|
+
class PriceConstraintType < CodeFromYaml
|
619
|
+
code_identifier 230
|
620
|
+
end
|
621
|
+
|
622
|
+
class SupplyContactRole < CodeFromYaml
|
623
|
+
code_identifier 239
|
624
|
+
end
|
625
|
+
|
626
|
+
class AVItemType < CodeFromYaml
|
627
|
+
code_identifier 240
|
628
|
+
end
|
629
|
+
|
630
|
+
class AVItemIDType < CodeFromYaml
|
631
|
+
code_identifier 241
|
632
|
+
end
|
633
|
+
|
634
|
+
class EventIDType < CodeFromYaml
|
635
|
+
code_identifier 244
|
636
|
+
end
|
637
|
+
|
638
|
+
class EventType < CodeFromYaml
|
639
|
+
code_identifier 245
|
640
|
+
end
|
641
|
+
|
642
|
+
class EventStatus < CodeFromYaml
|
643
|
+
code_identifier 246
|
644
|
+
end
|
645
|
+
|
646
|
+
class OccurrenceDateRole < CodeFromYaml
|
647
|
+
code_identifier 247
|
648
|
+
end
|
369
649
|
end
|
@@ -1,18 +1,14 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
element "Text", :text
|
6
|
-
element "TextAuthor", :text
|
7
|
-
element "SourceTitle", :text
|
8
|
-
|
9
|
-
scope :description, lambda { human_code_match(:text_type, "Description") }
|
10
|
-
scope :short_description, lambda { human_code_match(:text_type, "ShortDescriptionannotation") }
|
11
|
-
end
|
1
|
+
require 'onix/text_content'
|
2
|
+
require 'onix/supporting_resource'
|
3
|
+
require 'onix/cited_content'
|
4
|
+
require 'onix/prize'
|
12
5
|
|
6
|
+
module ONIX
|
13
7
|
class CollateralDetail < SubsetDSL
|
14
|
-
elements "TextContent", :subset
|
15
|
-
elements "
|
8
|
+
elements "TextContent", :subset, :cardinality => 0..n
|
9
|
+
elements "CitedContent", :subset, :cardinality => 0..n
|
10
|
+
elements "SupportingResource", :subset, :cardinality => 0..n
|
11
|
+
elements "Prize", :subset, :cardinality => 0..n
|
16
12
|
|
17
13
|
# @!group High level
|
18
14
|
|
data/lib/onix/collection.rb
CHANGED
@@ -1,15 +1,23 @@
|
|
1
|
+
require 'onix/collection_sequence'
|
2
|
+
|
1
3
|
module ONIX
|
2
4
|
class Collection < SubsetDSL
|
3
|
-
element "CollectionType", :subset, :shortcut => :type
|
4
|
-
|
5
|
-
elements "
|
6
|
-
elements "CollectionSequence", :subset, :shortcut => :sequences
|
5
|
+
element "CollectionType", :subset, :shortcut => :type, :cardinality => 1
|
6
|
+
element "SourceName", :text, :cardinality => 0..1
|
7
|
+
elements "CollectionIdentifier", :subset, :shortcut => :identifiers, :cardinality => 0..n
|
8
|
+
elements "CollectionSequence", :subset, :shortcut => :sequences, :cardinality => 0..n
|
9
|
+
elements "TitleDetail", :subset, :cardinality => 0..n
|
10
|
+
elements "Contributor", :subset, :cardinality => 0..n
|
11
|
+
elements "ContributorStatement", :text, :cardinality => 0..n
|
12
|
+
elements "ContributorStatement", :text, :cardinality => 0..n
|
13
|
+
element "NoContributor", :bool, :cardinality => 0..1
|
7
14
|
|
8
15
|
scope :publisher, lambda { human_code_match(:collection_type, "PublisherCollection") }
|
9
16
|
|
10
17
|
# @!group High level
|
11
18
|
|
12
19
|
# collection title string
|
20
|
+
# @return [String]
|
13
21
|
def title
|
14
22
|
if collection_title_element
|
15
23
|
collection_title_element.title
|
@@ -17,12 +25,14 @@ module ONIX
|
|
17
25
|
end
|
18
26
|
|
19
27
|
# collection subtitle string
|
28
|
+
# @return [String]
|
20
29
|
def subtitle
|
21
30
|
if collection_title_element
|
22
31
|
collection_title_element.subtitle
|
23
32
|
end
|
24
33
|
end
|
25
34
|
|
35
|
+
# @return [TitleElement]
|
26
36
|
def collection_title_element
|
27
37
|
distinctive_title = @title_details.distinctive_title.first
|
28
38
|
#select { |td| td.type.human=~/DistinctiveTitle/}.first
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module ONIX
|
2
2
|
class CollectionSequence < SubsetDSL
|
3
|
-
element "CollectionSequenceType", :subset, :shortcut => :type
|
4
|
-
element "CollectionSequenceTypeName", :string, :shortcut => :type_name
|
5
|
-
element "CollectionSequenceNumber", :string, :shortcut => :number
|
3
|
+
element "CollectionSequenceType", :subset, :shortcut => :type, :cardinality => 1
|
4
|
+
element "CollectionSequenceTypeName", :string, :shortcut => :type_name, :cardinality => 0..1
|
5
|
+
element "CollectionSequenceNumber", :string, :shortcut => :number, :cardinality => 1
|
6
6
|
end
|
7
7
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'onix/code'
|
2
|
+
require 'onix/identifier'
|
3
|
+
|
4
|
+
module ONIX
|
5
|
+
class ComparisonProductPrice < SubsetDSL
|
6
|
+
elements "ProductIdentifier", :subset, :cardinality => 1..n
|
7
|
+
element "PriceType", :subset, :shortcut => :type, :cardinality => 0..1
|
8
|
+
element "PriceAmount", :float,
|
9
|
+
{
|
10
|
+
:shortcut => :amount,
|
11
|
+
:parse_lambda => lambda { |v| (v * 100).round },
|
12
|
+
:serialize_lambda => lambda { |v| v / 100.0 },
|
13
|
+
:cardinality => 1
|
14
|
+
}
|
15
|
+
element "CurrencyCode", :text, :shortcut => :currency, :cardinality => 0..1
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'onix/text_item'
|
2
|
+
require 'onix/contributor'
|
3
|
+
require 'onix/language'
|
4
|
+
require 'onix/subject'
|
5
|
+
require 'onix/title_detail'
|
6
|
+
require 'onix/text_content'
|
7
|
+
require 'onix/cited_content'
|
8
|
+
require 'onix/supporting_resource'
|
9
|
+
require 'onix/related_work'
|
10
|
+
require 'onix/related_product'
|
11
|
+
|
12
|
+
module ONIX
|
13
|
+
class ContentItem < SubsetDSL
|
14
|
+
element "LevelSequenceNumber", :integer, :cardinality => 0..1
|
15
|
+
element "TextItem", :subset, :cardinality => 0..1
|
16
|
+
|
17
|
+
# element "AVItem", :subset, :cardinality => 0..1
|
18
|
+
|
19
|
+
|
20
|
+
element "ComponentTypeName", :text, :cardinality => 0..1
|
21
|
+
element "ComponentNumber", :text, :cardinality => 0..1
|
22
|
+
elements "TitleDetail", :subset, :cardinality => 0..n
|
23
|
+
elements "Contributor", :subset, :cardinality => 0..n
|
24
|
+
elements "ContributorStatement", :text, :cardinality => 0..n
|
25
|
+
element "NoContributor", :bool, :cardinality => 0..1
|
26
|
+
elements "Language", :subset, :cardinality => 0..n
|
27
|
+
elements "Subject", :subset, :cardinality => 0..n
|
28
|
+
|
29
|
+
# elements "NameAsSubject", :subset, :cardinality => 0..n
|
30
|
+
|
31
|
+
|
32
|
+
elements "TextContent", :subset, :cardinality => 0..n
|
33
|
+
elements "CitedContent", :subset, :cardinality => 0..n
|
34
|
+
elements "SupportingResource", :subset, :cardinality => 0..n
|
35
|
+
elements "RelatedWork", :subset, :cardinality => 0..n
|
36
|
+
elements "RelatedProduct", :subset, :cardinality => 0..n
|
37
|
+
end
|
38
|
+
end
|