im_onix 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +39 -0
- data/bin/html_codelist_to_yml.rb +46 -0
- data/bin/onix3_to_onix2.rb +192 -0
- data/bin/onix3_to_onix3.rb +401 -0
- data/bin/onix_bench.rb +15 -0
- data/bin/onix_pp.rb +216 -0
- data/bin/onix_split.rb +72 -0
- data/data/codelists/codelist-1.yml +12 -0
- data/data/codelists/codelist-10.yml +51 -0
- data/data/codelists/codelist-100.yml +8 -0
- data/data/codelists/codelist-101.yml +7 -0
- data/data/codelists/codelist-102.yml +5 -0
- data/data/codelists/codelist-11.yml +13 -0
- data/data/codelists/codelist-12.yml +15 -0
- data/data/codelists/codelist-121.yml +162 -0
- data/data/codelists/codelist-13.yml +10 -0
- data/data/codelists/codelist-138.yml +8 -0
- data/data/codelists/codelist-139.yml +102 -0
- data/data/codelists/codelist-14.yml +6 -0
- data/data/codelists/codelist-140.yml +9 -0
- data/data/codelists/codelist-141.yml +12 -0
- data/data/codelists/codelist-142.yml +14 -0
- data/data/codelists/codelist-143.yml +9 -0
- data/data/codelists/codelist-144.yml +10 -0
- data/data/codelists/codelist-145.yml +9 -0
- data/data/codelists/codelist-146.yml +5 -0
- data/data/codelists/codelist-147.yml +16 -0
- data/data/codelists/codelist-148.yml +6 -0
- data/data/codelists/codelist-149.yml +7 -0
- data/data/codelists/codelist-15.yml +15 -0
- data/data/codelists/codelist-150.yml +128 -0
- data/data/codelists/codelist-151.yml +10 -0
- data/data/codelists/codelist-152.yml +4 -0
- data/data/codelists/codelist-153.yml +19 -0
- data/data/codelists/codelist-154.yml +11 -0
- data/data/codelists/codelist-155.yml +10 -0
- data/data/codelists/codelist-156.yml +6 -0
- data/data/codelists/codelist-157.yml +6 -0
- data/data/codelists/codelist-158.yml +32 -0
- data/data/codelists/codelist-159.yml +8 -0
- data/data/codelists/codelist-16.yml +8 -0
- data/data/codelists/codelist-160.yml +6 -0
- data/data/codelists/codelist-161.yml +5 -0
- data/data/codelists/codelist-162.yml +9 -0
- data/data/codelists/codelist-163.yml +18 -0
- data/data/codelists/codelist-164.yml +7 -0
- data/data/codelists/codelist-165.yml +6 -0
- data/data/codelists/codelist-166.yml +6 -0
- data/data/codelists/codelist-167.yml +7 -0
- data/data/codelists/codelist-168.yml +4 -0
- data/data/codelists/codelist-169.yml +7 -0
- data/data/codelists/codelist-17.yml +95 -0
- data/data/codelists/codelist-170.yml +2 -0
- data/data/codelists/codelist-171.yml +4 -0
- data/data/codelists/codelist-172.yml +3 -0
- data/data/codelists/codelist-173.yml +5 -0
- data/data/codelists/codelist-174.yml +4 -0
- data/data/codelists/codelist-175.yml +217 -0
- data/data/codelists/codelist-176.yml +16 -0
- data/data/codelists/codelist-177.yml +4 -0
- data/data/codelists/codelist-178.yml +30 -0
- data/data/codelists/codelist-179.yml +4 -0
- data/data/codelists/codelist-18.yml +8 -0
- data/data/codelists/codelist-184.yml +10 -0
- data/data/codelists/codelist-19.yml +9 -0
- data/data/codelists/codelist-196.yml +22 -0
- data/data/codelists/codelist-197.yml +7 -0
- data/data/codelists/codelist-198.yml +4 -0
- data/data/codelists/codelist-2.yml +8 -0
- data/data/codelists/codelist-20.yml +2 -0
- data/data/codelists/codelist-203.yml +10 -0
- data/data/codelists/codelist-204.yml +6 -0
- data/data/codelists/codelist-21.yml +36 -0
- data/data/codelists/codelist-22.yml +11 -0
- data/data/codelists/codelist-23.yml +17 -0
- data/data/codelists/codelist-24.yml +13 -0
- data/data/codelists/codelist-25.yml +31 -0
- data/data/codelists/codelist-26.yml +94 -0
- data/data/codelists/codelist-27.yml +101 -0
- data/data/codelists/codelist-28.yml +10 -0
- data/data/codelists/codelist-29.yml +26 -0
- data/data/codelists/codelist-3.yml +13 -0
- data/data/codelists/codelist-30.yml +19 -0
- data/data/codelists/codelist-31.yml +5 -0
- data/data/codelists/codelist-32.yml +5 -0
- data/data/codelists/codelist-33.yml +44 -0
- data/data/codelists/codelist-34.yml +18 -0
- data/data/codelists/codelist-35.yml +8 -0
- data/data/codelists/codelist-36.yml +5 -0
- data/data/codelists/codelist-37.yml +8 -0
- data/data/codelists/codelist-38.yml +42 -0
- data/data/codelists/codelist-39.yml +21 -0
- data/data/codelists/codelist-40.yml +8 -0
- data/data/codelists/codelist-41.yml +8 -0
- data/data/codelists/codelist-42.yml +18 -0
- data/data/codelists/codelist-43.yml +8 -0
- data/data/codelists/codelist-44.yml +22 -0
- data/data/codelists/codelist-45.yml +15 -0
- data/data/codelists/codelist-46.yml +11 -0
- data/data/codelists/codelist-47.yml +6 -0
- data/data/codelists/codelist-48.yml +13 -0
- data/data/codelists/codelist-49.yml +87 -0
- data/data/codelists/codelist-5.yml +20 -0
- data/data/codelists/codelist-50.yml +10 -0
- data/data/codelists/codelist-51.yml +37 -0
- data/data/codelists/codelist-52.yml +3 -0
- data/data/codelists/codelist-53.yml +7 -0
- data/data/codelists/codelist-54.yml +25 -0
- data/data/codelists/codelist-55.yml +21 -0
- data/data/codelists/codelist-56.yml +4 -0
- data/data/codelists/codelist-57.yml +7 -0
- data/data/codelists/codelist-58.yml +27 -0
- data/data/codelists/codelist-59.yml +12 -0
- data/data/codelists/codelist-6.yml +78 -0
- data/data/codelists/codelist-60.yml +4 -0
- data/data/codelists/codelist-61.yml +5 -0
- data/data/codelists/codelist-62.yml +7 -0
- data/data/codelists/codelist-63.yml +2 -0
- data/data/codelists/codelist-64.yml +18 -0
- data/data/codelists/codelist-65.yml +31 -0
- data/data/codelists/codelist-66.yml +6 -0
- data/data/codelists/codelist-67.yml +4 -0
- data/data/codelists/codelist-68.yml +19 -0
- data/data/codelists/codelist-69.yml +6 -0
- data/data/codelists/codelist-7.yml +128 -0
- data/data/codelists/codelist-70.yml +4 -0
- data/data/codelists/codelist-71.yml +13 -0
- data/data/codelists/codelist-72.yml +9 -0
- data/data/codelists/codelist-73.yml +43 -0
- data/data/codelists/codelist-74.yml +491 -0
- data/data/codelists/codelist-75.yml +4 -0
- data/data/codelists/codelist-76.yml +14 -0
- data/data/codelists/codelist-77.yml +21 -0
- data/data/codelists/codelist-78.yml +179 -0
- data/data/codelists/codelist-79.yml +25 -0
- data/data/codelists/codelist-8.yml +9 -0
- data/data/codelists/codelist-80.yml +23 -0
- data/data/codelists/codelist-81.yml +41 -0
- data/data/codelists/codelist-82.yml +19 -0
- data/data/codelists/codelist-83.yml +71 -0
- data/data/codelists/codelist-84.yml +12 -0
- data/data/codelists/codelist-85.yml +25 -0
- data/data/codelists/codelist-86.yml +7 -0
- data/data/codelists/codelist-87.yml +8 -0
- data/data/codelists/codelist-88.yml +2 -0
- data/data/codelists/codelist-89.yml +3 -0
- data/data/codelists/codelist-9.yml +11 -0
- data/data/codelists/codelist-90.yml +13 -0
- data/data/codelists/codelist-91.yml +254 -0
- data/data/codelists/codelist-92.yml +11 -0
- data/data/codelists/codelist-93.yml +15 -0
- data/data/codelists/codelist-94.yml +5 -0
- data/data/codelists/codelist-95.yml +5 -0
- data/data/codelists/codelist-96.yml +193 -0
- data/data/codelists/codelist-97.yml +3 -0
- data/data/codelists/codelist-98.yml +23 -0
- data/data/codelists/codelist-99.yml +26 -0
- data/data/onix21/codelists/codelist-1.yml +14 -0
- data/data/onix21/codelists/codelist-10.yml +52 -0
- data/data/onix21/codelists/codelist-100.yml +8 -0
- data/data/onix21/codelists/codelist-101.yml +7 -0
- data/data/onix21/codelists/codelist-102.yml +5 -0
- data/data/onix21/codelists/codelist-11.yml +13 -0
- data/data/onix21/codelists/codelist-12.yml +16 -0
- data/data/onix21/codelists/codelist-121.yml +162 -0
- data/data/onix21/codelists/codelist-13.yml +11 -0
- data/data/onix21/codelists/codelist-138.yml +8 -0
- data/data/onix21/codelists/codelist-139.yml +109 -0
- data/data/onix21/codelists/codelist-14.yml +6 -0
- data/data/onix21/codelists/codelist-140.yml +9 -0
- data/data/onix21/codelists/codelist-141.yml +12 -0
- data/data/onix21/codelists/codelist-142.yml +14 -0
- data/data/onix21/codelists/codelist-143.yml +9 -0
- data/data/onix21/codelists/codelist-144.yml +8 -0
- data/data/onix21/codelists/codelist-145.yml +10 -0
- data/data/onix21/codelists/codelist-146.yml +5 -0
- data/data/onix21/codelists/codelist-147.yml +16 -0
- data/data/onix21/codelists/codelist-148.yml +6 -0
- data/data/onix21/codelists/codelist-149.yml +8 -0
- data/data/onix21/codelists/codelist-15.yml +16 -0
- data/data/onix21/codelists/codelist-150.yml +133 -0
- data/data/onix21/codelists/codelist-151.yml +10 -0
- data/data/onix21/codelists/codelist-152.yml +4 -0
- data/data/onix21/codelists/codelist-153.yml +22 -0
- data/data/onix21/codelists/codelist-154.yml +11 -0
- data/data/onix21/codelists/codelist-155.yml +10 -0
- data/data/onix21/codelists/codelist-156.yml +6 -0
- data/data/onix21/codelists/codelist-157.yml +6 -0
- data/data/onix21/codelists/codelist-158.yml +35 -0
- data/data/onix21/codelists/codelist-159.yml +8 -0
- data/data/onix21/codelists/codelist-16.yml +8 -0
- data/data/onix21/codelists/codelist-160.yml +7 -0
- data/data/onix21/codelists/codelist-161.yml +5 -0
- data/data/onix21/codelists/codelist-162.yml +9 -0
- data/data/onix21/codelists/codelist-163.yml +18 -0
- data/data/onix21/codelists/codelist-164.yml +7 -0
- data/data/onix21/codelists/codelist-165.yml +6 -0
- data/data/onix21/codelists/codelist-166.yml +6 -0
- data/data/onix21/codelists/codelist-167.yml +11 -0
- data/data/onix21/codelists/codelist-168.yml +4 -0
- data/data/onix21/codelists/codelist-169.yml +7 -0
- data/data/onix21/codelists/codelist-17.yml +98 -0
- data/data/onix21/codelists/codelist-170.yml +6 -0
- data/data/onix21/codelists/codelist-171.yml +4 -0
- data/data/onix21/codelists/codelist-172.yml +3 -0
- data/data/onix21/codelists/codelist-173.yml +5 -0
- data/data/onix21/codelists/codelist-174.yml +4 -0
- data/data/onix21/codelists/codelist-175.yml +230 -0
- data/data/onix21/codelists/codelist-176.yml +16 -0
- data/data/onix21/codelists/codelist-177.yml +4 -0
- data/data/onix21/codelists/codelist-178.yml +30 -0
- data/data/onix21/codelists/codelist-179.yml +5 -0
- data/data/onix21/codelists/codelist-18.yml +8 -0
- data/data/onix21/codelists/codelist-184.yml +10 -0
- data/data/onix21/codelists/codelist-19.yml +9 -0
- data/data/onix21/codelists/codelist-196.yml +22 -0
- data/data/onix21/codelists/codelist-197.yml +7 -0
- data/data/onix21/codelists/codelist-198.yml +8 -0
- data/data/onix21/codelists/codelist-2.yml +8 -0
- data/data/onix21/codelists/codelist-20.yml +2 -0
- data/data/onix21/codelists/codelist-203.yml +10 -0
- data/data/onix21/codelists/codelist-204.yml +7 -0
- data/data/onix21/codelists/codelist-21.yml +36 -0
- data/data/onix21/codelists/codelist-215.yml +9 -0
- data/data/onix21/codelists/codelist-216.yml +11 -0
- data/data/onix21/codelists/codelist-217.yml +3 -0
- data/data/onix21/codelists/codelist-218.yml +5 -0
- data/data/onix21/codelists/codelist-219.yml +5 -0
- data/data/onix21/codelists/codelist-22.yml +11 -0
- data/data/onix21/codelists/codelist-220.yml +7 -0
- data/data/onix21/codelists/codelist-23.yml +17 -0
- data/data/onix21/codelists/codelist-24.yml +14 -0
- data/data/onix21/codelists/codelist-25.yml +31 -0
- data/data/onix21/codelists/codelist-26.yml +100 -0
- data/data/onix21/codelists/codelist-27.yml +107 -0
- data/data/onix21/codelists/codelist-28.yml +10 -0
- data/data/onix21/codelists/codelist-29.yml +30 -0
- data/data/onix21/codelists/codelist-3.yml +13 -0
- data/data/onix21/codelists/codelist-30.yml +20 -0
- data/data/onix21/codelists/codelist-31.yml +5 -0
- data/data/onix21/codelists/codelist-32.yml +10 -0
- data/data/onix21/codelists/codelist-33.yml +46 -0
- data/data/onix21/codelists/codelist-34.yml +18 -0
- data/data/onix21/codelists/codelist-35.yml +8 -0
- data/data/onix21/codelists/codelist-36.yml +5 -0
- data/data/onix21/codelists/codelist-37.yml +8 -0
- data/data/onix21/codelists/codelist-38.yml +42 -0
- data/data/onix21/codelists/codelist-39.yml +21 -0
- data/data/onix21/codelists/codelist-40.yml +8 -0
- data/data/onix21/codelists/codelist-41.yml +9 -0
- data/data/onix21/codelists/codelist-42.yml +18 -0
- data/data/onix21/codelists/codelist-43.yml +9 -0
- data/data/onix21/codelists/codelist-44.yml +27 -0
- data/data/onix21/codelists/codelist-45.yml +20 -0
- data/data/onix21/codelists/codelist-46.yml +11 -0
- data/data/onix21/codelists/codelist-47.yml +6 -0
- data/data/onix21/codelists/codelist-48.yml +13 -0
- data/data/onix21/codelists/codelist-49.yml +281 -0
- data/data/onix21/codelists/codelist-5.yml +20 -0
- data/data/onix21/codelists/codelist-50.yml +10 -0
- data/data/onix21/codelists/codelist-51.yml +37 -0
- data/data/onix21/codelists/codelist-52.yml +3 -0
- data/data/onix21/codelists/codelist-53.yml +7 -0
- data/data/onix21/codelists/codelist-54.yml +25 -0
- data/data/onix21/codelists/codelist-55.yml +21 -0
- data/data/onix21/codelists/codelist-56.yml +4 -0
- data/data/onix21/codelists/codelist-57.yml +7 -0
- data/data/onix21/codelists/codelist-58.yml +27 -0
- data/data/onix21/codelists/codelist-59.yml +12 -0
- data/data/onix21/codelists/codelist-6.yml +78 -0
- data/data/onix21/codelists/codelist-60.yml +4 -0
- data/data/onix21/codelists/codelist-61.yml +5 -0
- data/data/onix21/codelists/codelist-62.yml +7 -0
- data/data/onix21/codelists/codelist-63.yml +2 -0
- data/data/onix21/codelists/codelist-64.yml +18 -0
- data/data/onix21/codelists/codelist-65.yml +31 -0
- data/data/onix21/codelists/codelist-66.yml +6 -0
- data/data/onix21/codelists/codelist-67.yml +4 -0
- data/data/onix21/codelists/codelist-68.yml +19 -0
- data/data/onix21/codelists/codelist-69.yml +6 -0
- data/data/onix21/codelists/codelist-7.yml +132 -0
- data/data/onix21/codelists/codelist-70.yml +4 -0
- data/data/onix21/codelists/codelist-71.yml +14 -0
- data/data/onix21/codelists/codelist-72.yml +9 -0
- data/data/onix21/codelists/codelist-73.yml +43 -0
- data/data/onix21/codelists/codelist-74.yml +492 -0
- data/data/onix21/codelists/codelist-75.yml +4 -0
- data/data/onix21/codelists/codelist-76.yml +14 -0
- data/data/onix21/codelists/codelist-77.yml +21 -0
- data/data/onix21/codelists/codelist-78.yml +191 -0
- data/data/onix21/codelists/codelist-79.yml +26 -0
- data/data/onix21/codelists/codelist-8.yml +9 -0
- data/data/onix21/codelists/codelist-80.yml +23 -0
- data/data/onix21/codelists/codelist-81.yml +41 -0
- data/data/onix21/codelists/codelist-82.yml +19 -0
- data/data/onix21/codelists/codelist-83.yml +72 -0
- data/data/onix21/codelists/codelist-84.yml +12 -0
- data/data/onix21/codelists/codelist-85.yml +25 -0
- data/data/onix21/codelists/codelist-86.yml +7 -0
- data/data/onix21/codelists/codelist-87.yml +8 -0
- data/data/onix21/codelists/codelist-88.yml +2 -0
- data/data/onix21/codelists/codelist-89.yml +3 -0
- data/data/onix21/codelists/codelist-9.yml +13 -0
- data/data/onix21/codelists/codelist-90.yml +13 -0
- data/data/onix21/codelists/codelist-91.yml +254 -0
- data/data/onix21/codelists/codelist-92.yml +11 -0
- data/data/onix21/codelists/codelist-93.yml +15 -0
- data/data/onix21/codelists/codelist-94.yml +5 -0
- data/data/onix21/codelists/codelist-95.yml +5 -0
- data/data/onix21/codelists/codelist-96.yml +194 -0
- data/data/onix21/codelists/codelist-97.yml +3 -0
- data/data/onix21/codelists/codelist-98.yml +25 -0
- data/data/onix21/codelists/codelist-99.yml +26 -0
- data/data/onix21/shortnames.yml +431 -0
- data/data/shortnames.yml +395 -0
- data/lib/im_onix.rb +2 -0
- data/lib/onix/code.rb +543 -0
- data/lib/onix/collateral_detail.rb +94 -0
- data/lib/onix/contributor.rb +87 -0
- data/lib/onix/date.rb +183 -0
- data/lib/onix/descriptive_detail.rb +552 -0
- data/lib/onix/discount_coded.rb +20 -0
- data/lib/onix/entity.rb +135 -0
- data/lib/onix/error.rb +6 -0
- data/lib/onix/helper.rb +66 -0
- data/lib/onix/identifier.rb +158 -0
- data/lib/onix/onix21.rb +604 -0
- data/lib/onix/onix_message.rb +187 -0
- data/lib/onix/price.rb +74 -0
- data/lib/onix/product.rb +846 -0
- data/lib/onix/product_supply.rb +89 -0
- data/lib/onix/publishing_detail.rb +86 -0
- data/lib/onix/related_material.rb +30 -0
- data/lib/onix/related_product.rb +45 -0
- data/lib/onix/related_work.rb +24 -0
- data/lib/onix/sales_outlet.rb +14 -0
- data/lib/onix/sales_restriction.rb +37 -0
- data/lib/onix/sales_rights.rb +12 -0
- data/lib/onix/subject.rb +35 -0
- data/lib/onix/subset.rb +334 -0
- data/lib/onix/supporting_resource.rb +192 -0
- data/lib/onix/tax.rb +23 -0
- data/lib/onix/territory.rb +56 -0
- data/lib/onix/website.rb +21 -0
- metadata +477 -0
@@ -0,0 +1,192 @@
|
|
1
|
+
require 'onix/date'
|
2
|
+
|
3
|
+
module ONIX
|
4
|
+
class ResourceVersionFeature < SubsetDSL
|
5
|
+
element "ResourceVersionFeatureType", :subset
|
6
|
+
elements "FeatureNote", :text
|
7
|
+
element "FeatureValue", :text, :serialize_lambda => lambda {|v| v.class == SupportingResourceFileFormat ? v.code : v}
|
8
|
+
|
9
|
+
scope :image_pixels_width, lambda { human_code_match(:resource_version_feature_type,"ImageWidthInPixels") }
|
10
|
+
scope :image_pixels_height, lambda { human_code_match(:resource_version_feature_type,"ImageHeightInPixels") }
|
11
|
+
scope :md5_hash, lambda { human_code_match(:resource_version_feature_type,"Md5HashValue")}
|
12
|
+
|
13
|
+
def type
|
14
|
+
@resource_version_feature_type
|
15
|
+
end
|
16
|
+
|
17
|
+
def value
|
18
|
+
@feature_value
|
19
|
+
end
|
20
|
+
|
21
|
+
def notes
|
22
|
+
@feature_notes
|
23
|
+
end
|
24
|
+
|
25
|
+
def parse(n)
|
26
|
+
super
|
27
|
+
|
28
|
+
if @resource_version_feature_type.human=="FileFormat"
|
29
|
+
@feature_value=SupportingResourceFileFormat.from_code(@feature_value)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
class ResourceVersion < SubsetDSL
|
35
|
+
element "ResourceForm", :subset
|
36
|
+
elements "ResourceVersionFeature", :subset
|
37
|
+
elements "ResourceLink", :text
|
38
|
+
elements "ContentDate", :subset
|
39
|
+
|
40
|
+
# shortcuts
|
41
|
+
def form
|
42
|
+
@resource_form
|
43
|
+
end
|
44
|
+
|
45
|
+
def links
|
46
|
+
@resource_links
|
47
|
+
end
|
48
|
+
|
49
|
+
def features
|
50
|
+
@resource_version_features
|
51
|
+
end
|
52
|
+
|
53
|
+
def filename
|
54
|
+
if @resource_form.human=="DownloadableFile"
|
55
|
+
@resource_links.first
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def file_format_feature
|
60
|
+
@resource_version_features.select { |f| f.type.human=="FileFormat" }.first
|
61
|
+
end
|
62
|
+
|
63
|
+
def file_format
|
64
|
+
if ["DownloadableFile", "LinkableResource"].include?(@resource_form.human)
|
65
|
+
if file_format_feature
|
66
|
+
file_format_feature.value.human
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def file_mimetype
|
72
|
+
if ["DownloadableFile", "LinkableResource"].include?(@resource_form.human)
|
73
|
+
if file_format_feature
|
74
|
+
file_format_feature.value.mimetype
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def image_width_feature
|
80
|
+
@resource_version_features.image_pixels_width.first
|
81
|
+
end
|
82
|
+
|
83
|
+
def image_height_feature
|
84
|
+
@resource_version_features.image_pixels_height.first
|
85
|
+
end
|
86
|
+
|
87
|
+
def md5_hash_feature
|
88
|
+
@resource_version_features.md5_hash.first
|
89
|
+
end
|
90
|
+
|
91
|
+
def image_width
|
92
|
+
if self.image_width_feature
|
93
|
+
self.image_width_feature.value.to_i
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
def image_height
|
98
|
+
if self.image_height_feature
|
99
|
+
self.image_height_feature.value.to_i
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
def md5_hash
|
104
|
+
if self.md5_hash_feature
|
105
|
+
self.md5_hash_feature.value
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
def last_updated_content_date
|
110
|
+
@content_dates.last_updated.first
|
111
|
+
end
|
112
|
+
|
113
|
+
def last_updated
|
114
|
+
if self.last_updated_content_date
|
115
|
+
self.last_updated_content_date.date
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
def last_updated_utc
|
120
|
+
if self.last_updated_content_date and self.last_updated_content_date.date
|
121
|
+
self.last_updated_content_date.date.to_time.utc.strftime('%Y%m%dT%H%M%S%z')
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
class ResourceFeature < SubsetDSL
|
127
|
+
element "ResourceFeatureType", :subset
|
128
|
+
element "FeatureValue", :text
|
129
|
+
elements "FeatureNotes", :text
|
130
|
+
|
131
|
+
scope :caption, lambda { human_code_match(:resource_feature_type, "Caption")}
|
132
|
+
|
133
|
+
# shortcuts
|
134
|
+
def type
|
135
|
+
@resource_feature_type
|
136
|
+
end
|
137
|
+
|
138
|
+
def value
|
139
|
+
@feature_value
|
140
|
+
end
|
141
|
+
|
142
|
+
def notes
|
143
|
+
@feature_notes
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
class SupportingResource < SubsetDSL
|
148
|
+
element "ResourceContentType", :subset
|
149
|
+
element "ContentAudience", :subset
|
150
|
+
element "ResourceMode", :subset
|
151
|
+
elements "ResourceVersion", :subset
|
152
|
+
elements "ResourceFeature", :subset
|
153
|
+
|
154
|
+
scope :front_cover, lambda { human_code_match(:resource_content_type, "FrontCover")}
|
155
|
+
scope :sample_content, lambda { human_code_match(:resource_content_type, "SampleContent")}
|
156
|
+
|
157
|
+
scope :image, lambda {human_code_match(:resource_mode, "Image")}
|
158
|
+
scope :text, lambda {human_code_match(:resource_mode, "Text")}
|
159
|
+
|
160
|
+
# shortcuts
|
161
|
+
def type
|
162
|
+
@resource_content_type
|
163
|
+
end
|
164
|
+
|
165
|
+
def mode
|
166
|
+
@resource_mode
|
167
|
+
end
|
168
|
+
|
169
|
+
def versions
|
170
|
+
@resource_versions
|
171
|
+
end
|
172
|
+
|
173
|
+
def features
|
174
|
+
@resource_features
|
175
|
+
end
|
176
|
+
|
177
|
+
def caption_feature
|
178
|
+
self.features.caption.first
|
179
|
+
end
|
180
|
+
|
181
|
+
def caption
|
182
|
+
if self.caption_feature
|
183
|
+
self.caption_feature.value
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
def target_audience
|
188
|
+
@content_audience
|
189
|
+
end
|
190
|
+
|
191
|
+
end
|
192
|
+
end
|
data/lib/onix/tax.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
module ONIX
|
2
|
+
|
3
|
+
class Tax < SubsetDSL
|
4
|
+
element "TaxType", :subset
|
5
|
+
element "TaxRateCode", :subset
|
6
|
+
element "TaxRatePercent", :float
|
7
|
+
element "TaxableAmount", :float, {:parse_lambda=>lambda{|v| (v*100).round}}
|
8
|
+
element "TaxAmount", :float, {:parse_lambda=>lambda{|v| (v*100).round}}
|
9
|
+
|
10
|
+
# shortcuts
|
11
|
+
def rate_code
|
12
|
+
@tax_rate_code
|
13
|
+
end
|
14
|
+
|
15
|
+
def amount
|
16
|
+
@tax_amount
|
17
|
+
end
|
18
|
+
|
19
|
+
def rate_percent
|
20
|
+
@tax_rate_percent
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'onix/code'
|
2
|
+
module ONIX
|
3
|
+
class Territory < SubsetDSL
|
4
|
+
element "CountriesIncluded", :text
|
5
|
+
element "RegionsIncluded", :text
|
6
|
+
element "CountriesExcluded", :text
|
7
|
+
element "RegionsExcluded", :text
|
8
|
+
|
9
|
+
# all countries array
|
10
|
+
def countries
|
11
|
+
countries=[]
|
12
|
+
if @countries_included
|
13
|
+
countries+=@countries_included.split(" ")
|
14
|
+
end
|
15
|
+
if @regions_included
|
16
|
+
countries+=@regions_included.split(" ").map{|region| self.class.region_to_countries(region)}.flatten.uniq
|
17
|
+
end
|
18
|
+
if @countries_excluded
|
19
|
+
countries-=@countries_excluded.split(" ")
|
20
|
+
end
|
21
|
+
if @regions_excluded
|
22
|
+
countries-=@regions_excluded.split(" ").map{|region| self.class.region_to_countries(region)}.flatten.uniq
|
23
|
+
end
|
24
|
+
countries.uniq.sort
|
25
|
+
end
|
26
|
+
|
27
|
+
# has worldwide rights ?
|
28
|
+
def worldwide?
|
29
|
+
self.class.worldwide?(self.countries)
|
30
|
+
end
|
31
|
+
|
32
|
+
def countries=v
|
33
|
+
if (v.uniq & CountryCode.list).length==CountryCode.list.length
|
34
|
+
@regions_included="WORLD"
|
35
|
+
else
|
36
|
+
@countries_included=v.uniq.join(" ")
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.region_to_countries(region)
|
41
|
+
case region
|
42
|
+
when "WORLD"
|
43
|
+
CountryCode.list
|
44
|
+
when "ECZ"
|
45
|
+
["AT","BE","CY","EE","FI","FR","DE","ES","GR","IE","IT",
|
46
|
+
"LU","MT","NL","PT","SI","SK","AD","MC","SM","VA","ME"]
|
47
|
+
else
|
48
|
+
[]
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def self.worldwide?(countries)
|
53
|
+
(countries & CountryCode.list).length==CountryCode.list.length
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
data/lib/onix/website.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'onix/code'
|
2
|
+
module ONIX
|
3
|
+
class Website < SubsetDSL
|
4
|
+
element "WebsiteRole", :subset
|
5
|
+
element "WebsiteLink", :text
|
6
|
+
element "WebsiteDescription", :text
|
7
|
+
|
8
|
+
# shortcuts
|
9
|
+
def role
|
10
|
+
@website_role
|
11
|
+
end
|
12
|
+
|
13
|
+
def link
|
14
|
+
@website_link
|
15
|
+
end
|
16
|
+
|
17
|
+
def description
|
18
|
+
@website_description
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|