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.
Files changed (311) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -6
  3. data/README.md +1 -1
  4. data/bin/html_codelist_to_yml.rb +10 -6
  5. data/bin/onix_bench.rb +25 -4
  6. data/bin/onix_pp.rb +26 -26
  7. data/bin/onix_serialize.rb +12 -16
  8. data/data/codelists/codelist-1.yml +4 -5
  9. data/data/codelists/codelist-10.yml +13 -11
  10. data/data/codelists/codelist-100.yml +1 -0
  11. data/data/codelists/codelist-102.yml +3 -2
  12. data/data/codelists/codelist-11.yml +2 -2
  13. data/data/codelists/codelist-12.yml +8 -3
  14. data/data/codelists/codelist-121.yml +46 -17
  15. data/data/codelists/codelist-13.yml +3 -0
  16. data/data/codelists/codelist-139.yml +83 -9
  17. data/data/codelists/codelist-141.yml +4 -4
  18. data/data/codelists/codelist-142.yml +2 -2
  19. data/data/codelists/codelist-143.yml +11 -0
  20. data/data/codelists/codelist-144.yml +2 -2
  21. data/data/codelists/codelist-145.yml +4 -1
  22. data/data/codelists/codelist-147.yml +18 -2
  23. data/data/codelists/codelist-149.yml +1 -0
  24. data/data/codelists/codelist-15.yml +2 -1
  25. data/data/codelists/codelist-150.yml +46 -26
  26. data/data/codelists/codelist-151.yml +4 -1
  27. data/data/codelists/codelist-153.yml +19 -4
  28. data/data/codelists/codelist-154.yml +4 -2
  29. data/data/codelists/codelist-155.yml +3 -1
  30. data/data/codelists/codelist-156.yml +1 -0
  31. data/data/codelists/codelist-158.yml +18 -0
  32. data/data/codelists/codelist-159.yml +1 -1
  33. data/data/codelists/codelist-16.yml +3 -0
  34. data/data/codelists/codelist-160.yml +2 -0
  35. data/data/codelists/codelist-162.yml +2 -0
  36. data/data/codelists/codelist-163.yml +8 -3
  37. data/data/codelists/codelist-165.yml +3 -0
  38. data/data/codelists/codelist-166.yml +7 -2
  39. data/data/codelists/codelist-167.yml +6 -0
  40. data/data/codelists/codelist-168.yml +1 -0
  41. data/data/codelists/codelist-169.yml +2 -2
  42. data/data/codelists/codelist-17.yml +20 -2
  43. data/data/codelists/codelist-170.yml +5 -1
  44. data/data/codelists/codelist-171.yml +1 -0
  45. data/data/codelists/codelist-173.yml +1 -1
  46. data/data/codelists/codelist-175.yml +113 -35
  47. data/data/codelists/codelist-176.yml +2 -2
  48. data/data/codelists/codelist-177.yml +1 -0
  49. data/data/codelists/codelist-178.yml +6 -0
  50. data/data/codelists/codelist-179.yml +1 -0
  51. data/data/codelists/codelist-18.yml +3 -1
  52. data/data/codelists/codelist-184.yml +1 -0
  53. data/data/codelists/codelist-19.yml +5 -4
  54. data/data/codelists/codelist-196.yml +16 -4
  55. data/data/codelists/codelist-197.yml +2 -0
  56. data/data/codelists/codelist-198.yml +7 -0
  57. data/data/codelists/codelist-2.yml +6 -6
  58. data/data/codelists/codelist-20.yml +10 -1
  59. data/data/codelists/codelist-203.yml +1 -1
  60. data/data/codelists/codelist-204.yml +4 -0
  61. data/data/codelists/codelist-21.yml +24 -19
  62. data/data/codelists/codelist-215.yml +9 -0
  63. data/data/codelists/codelist-216.yml +11 -0
  64. data/data/codelists/codelist-217.yml +9 -0
  65. data/data/codelists/codelist-218.yml +5 -0
  66. data/data/codelists/codelist-219.yml +5 -0
  67. data/data/codelists/codelist-22.yml +5 -4
  68. data/data/codelists/codelist-220.yml +10 -0
  69. data/data/codelists/codelist-221.yml +6 -0
  70. data/data/codelists/codelist-222.yml +4 -0
  71. data/data/codelists/codelist-223.yml +4 -0
  72. data/data/codelists/codelist-224.yml +8 -0
  73. data/data/codelists/codelist-225.yml +4 -0
  74. data/data/codelists/codelist-226.yml +7 -0
  75. data/data/codelists/codelist-227.yml +21 -0
  76. data/data/codelists/codelist-228.yml +3 -0
  77. data/data/codelists/codelist-229.yml +5 -0
  78. data/data/codelists/codelist-23.yml +5 -3
  79. data/data/codelists/codelist-230.yml +8 -0
  80. data/data/codelists/codelist-238.yml +23 -0
  81. data/data/codelists/codelist-239.yml +4 -0
  82. data/data/codelists/codelist-24.yml +3 -0
  83. data/data/codelists/codelist-240.yml +6 -0
  84. data/data/codelists/codelist-241.yml +9 -0
  85. data/data/codelists/codelist-242.yml +24 -0
  86. data/data/codelists/codelist-243.yml +9 -0
  87. data/data/codelists/codelist-244.yml +3 -0
  88. data/data/codelists/codelist-245.yml +5 -0
  89. data/data/codelists/codelist-246.yml +4 -0
  90. data/data/codelists/codelist-247.yml +4 -0
  91. data/data/codelists/codelist-25.yml +4 -2
  92. data/data/codelists/codelist-26.yml +28 -18
  93. data/data/codelists/codelist-27.yml +35 -19
  94. data/data/codelists/codelist-28.yml +2 -1
  95. data/data/codelists/codelist-29.yml +8 -3
  96. data/data/codelists/codelist-3.yml +5 -2
  97. data/data/codelists/codelist-30.yml +6 -2
  98. data/data/codelists/codelist-32.yml +7 -0
  99. data/data/codelists/codelist-33.yml +6 -2
  100. data/data/codelists/codelist-34.yml +0 -11
  101. data/data/codelists/codelist-38.yml +1 -1
  102. data/data/codelists/codelist-39.yml +2 -2
  103. data/data/codelists/codelist-41.yml +4 -3
  104. data/data/codelists/codelist-42.yml +0 -12
  105. data/data/codelists/codelist-43.yml +3 -1
  106. data/data/codelists/codelist-44.yml +16 -3
  107. data/data/codelists/codelist-45.yml +8 -3
  108. data/data/codelists/codelist-46.yml +4 -4
  109. data/data/codelists/codelist-48.yml +20 -2
  110. data/data/codelists/codelist-49.yml +268 -1
  111. data/data/codelists/codelist-5.yml +6 -3
  112. data/data/codelists/codelist-51.yml +11 -5
  113. data/data/codelists/codelist-55.yml +2 -2
  114. data/data/codelists/codelist-57.yml +1 -0
  115. data/data/codelists/codelist-58.yml +14 -12
  116. data/data/codelists/codelist-59.yml +10 -1
  117. data/data/codelists/codelist-6.yml +39 -39
  118. data/data/codelists/codelist-60.yml +1 -1
  119. data/data/codelists/codelist-62.yml +2 -1
  120. data/data/codelists/codelist-64.yml +3 -2
  121. data/data/codelists/codelist-65.yml +1 -0
  122. data/data/codelists/codelist-68.yml +2 -2
  123. data/data/codelists/codelist-69.yml +2 -2
  124. data/data/codelists/codelist-7.yml +21 -17
  125. data/data/codelists/codelist-71.yml +16 -6
  126. data/data/codelists/codelist-73.yml +7 -5
  127. data/data/codelists/codelist-74.yml +59 -31
  128. data/data/codelists/codelist-75.yml +1 -1
  129. data/data/codelists/codelist-76.yml +3 -3
  130. data/data/codelists/codelist-78.yml +52 -26
  131. data/data/codelists/codelist-79.yml +16 -7
  132. data/data/codelists/codelist-8.yml +3 -3
  133. data/data/codelists/codelist-80.yml +6 -5
  134. data/data/codelists/codelist-81.yml +8 -5
  135. data/data/codelists/codelist-83.yml +3 -2
  136. data/data/codelists/codelist-85.yml +1 -1
  137. data/data/codelists/codelist-9.yml +7 -3
  138. data/data/codelists/codelist-90.yml +2 -2
  139. data/data/codelists/codelist-91.yml +11 -11
  140. data/data/codelists/codelist-92.yml +1 -1
  141. data/data/codelists/codelist-93.yml +9 -6
  142. data/data/codelists/codelist-96.yml +45 -40
  143. data/data/codelists/codelist-98.yml +6 -3
  144. data/data/codelists/codelist-99.yml +8 -5
  145. data/data/onix21/codelists/codelist-1.yml +2 -2
  146. data/data/onix21/codelists/codelist-10.yml +12 -12
  147. data/data/onix21/codelists/codelist-11.yml +2 -2
  148. data/data/onix21/codelists/codelist-12.yml +3 -3
  149. data/data/onix21/codelists/codelist-121.yml +9 -9
  150. data/data/onix21/codelists/codelist-13.yml +1 -1
  151. data/data/onix21/codelists/codelist-139.yml +6 -6
  152. data/data/onix21/codelists/codelist-141.yml +4 -4
  153. data/data/onix21/codelists/codelist-142.yml +2 -2
  154. data/data/onix21/codelists/codelist-145.yml +2 -2
  155. data/data/onix21/codelists/codelist-147.yml +2 -2
  156. data/data/onix21/codelists/codelist-148.yml +1 -1
  157. data/data/onix21/codelists/codelist-149.yml +1 -1
  158. data/data/onix21/codelists/codelist-15.yml +1 -1
  159. data/data/onix21/codelists/codelist-150.yml +23 -23
  160. data/data/onix21/codelists/codelist-151.yml +1 -1
  161. data/data/onix21/codelists/codelist-153.yml +3 -3
  162. data/data/onix21/codelists/codelist-154.yml +2 -2
  163. data/data/onix21/codelists/codelist-155.yml +1 -1
  164. data/data/onix21/codelists/codelist-158.yml +2 -2
  165. data/data/onix21/codelists/codelist-159.yml +1 -1
  166. data/data/onix21/codelists/codelist-163.yml +2 -2
  167. data/data/onix21/codelists/codelist-166.yml +1 -1
  168. data/data/onix21/codelists/codelist-169.yml +2 -2
  169. data/data/onix21/codelists/codelist-17.yml +2 -2
  170. data/data/onix21/codelists/codelist-173.yml +1 -1
  171. data/data/onix21/codelists/codelist-175.yml +23 -23
  172. data/data/onix21/codelists/codelist-176.yml +2 -2
  173. data/data/onix21/codelists/codelist-18.yml +1 -1
  174. data/data/onix21/codelists/codelist-196.yml +4 -4
  175. data/data/onix21/codelists/codelist-2.yml +6 -6
  176. data/data/onix21/codelists/codelist-203.yml +1 -1
  177. data/data/onix21/codelists/codelist-21.yml +1 -1
  178. data/data/onix21/codelists/codelist-216.yml +2 -2
  179. data/data/onix21/codelists/codelist-218.yml +1 -1
  180. data/data/onix21/codelists/codelist-22.yml +3 -3
  181. data/data/onix21/codelists/codelist-23.yml +2 -2
  182. data/data/onix21/codelists/codelist-25.yml +2 -2
  183. data/data/onix21/codelists/codelist-26.yml +18 -18
  184. data/data/onix21/codelists/codelist-27.yml +18 -18
  185. data/data/onix21/codelists/codelist-28.yml +1 -1
  186. data/data/onix21/codelists/codelist-29.yml +3 -3
  187. data/data/onix21/codelists/codelist-3.yml +2 -2
  188. data/data/onix21/codelists/codelist-30.yml +1 -1
  189. data/data/onix21/codelists/codelist-32.yml +1 -1
  190. data/data/onix21/codelists/codelist-33.yml +2 -2
  191. data/data/onix21/codelists/codelist-34.yml +2 -2
  192. data/data/onix21/codelists/codelist-38.yml +1 -1
  193. data/data/onix21/codelists/codelist-39.yml +2 -2
  194. data/data/onix21/codelists/codelist-41.yml +3 -3
  195. data/data/onix21/codelists/codelist-43.yml +1 -1
  196. data/data/onix21/codelists/codelist-44.yml +2 -2
  197. data/data/onix21/codelists/codelist-45.yml +4 -4
  198. data/data/onix21/codelists/codelist-46.yml +3 -3
  199. data/data/onix21/codelists/codelist-48.yml +2 -2
  200. data/data/onix21/codelists/codelist-49.yml +12 -12
  201. data/data/onix21/codelists/codelist-5.yml +3 -3
  202. data/data/onix21/codelists/codelist-51.yml +3 -3
  203. data/data/onix21/codelists/codelist-55.yml +2 -2
  204. data/data/onix21/codelists/codelist-58.yml +10 -10
  205. data/data/onix21/codelists/codelist-59.yml +2 -2
  206. data/data/onix21/codelists/codelist-6.yml +36 -36
  207. data/data/onix21/codelists/codelist-60.yml +1 -1
  208. data/data/onix21/codelists/codelist-62.yml +1 -1
  209. data/data/onix21/codelists/codelist-64.yml +2 -2
  210. data/data/onix21/codelists/codelist-68.yml +2 -2
  211. data/data/onix21/codelists/codelist-69.yml +2 -2
  212. data/data/onix21/codelists/codelist-7.yml +17 -17
  213. data/data/onix21/codelists/codelist-71.yml +2 -2
  214. data/data/onix21/codelists/codelist-73.yml +5 -5
  215. data/data/onix21/codelists/codelist-74.yml +28 -28
  216. data/data/onix21/codelists/codelist-75.yml +1 -1
  217. data/data/onix21/codelists/codelist-76.yml +3 -3
  218. data/data/onix21/codelists/codelist-78.yml +24 -24
  219. data/data/onix21/codelists/codelist-79.yml +6 -6
  220. data/data/onix21/codelists/codelist-8.yml +3 -3
  221. data/data/onix21/codelists/codelist-80.yml +5 -5
  222. data/data/onix21/codelists/codelist-81.yml +4 -4
  223. data/data/onix21/codelists/codelist-83.yml +2 -2
  224. data/data/onix21/codelists/codelist-85.yml +1 -1
  225. data/data/onix21/codelists/codelist-9.yml +3 -3
  226. data/data/onix21/codelists/codelist-90.yml +2 -2
  227. data/data/onix21/codelists/codelist-91.yml +6 -6
  228. data/data/onix21/codelists/codelist-92.yml +1 -1
  229. data/data/onix21/codelists/codelist-93.yml +6 -6
  230. data/data/onix21/codelists/codelist-96.yml +1 -1
  231. data/data/onix21/codelists/codelist-98.yml +2 -2
  232. data/data/onix21/codelists/codelist-99.yml +4 -4
  233. data/doc-src/handlers.rb +32 -2
  234. data/im_onix.gemspec +3 -1
  235. data/lib/onix/addressee.rb +5 -3
  236. data/lib/onix/ancillary_content.rb +7 -0
  237. data/lib/onix/audience.rb +7 -0
  238. data/lib/onix/audience_range.rb +10 -0
  239. data/lib/onix/barcode.rb +6 -0
  240. data/lib/onix/builder.rb +197 -0
  241. data/lib/onix/cited_content.rb +15 -0
  242. data/lib/onix/code.rb +322 -42
  243. data/lib/onix/collateral_detail.rb +9 -13
  244. data/lib/onix/collection.rb +14 -4
  245. data/lib/onix/collection_sequence.rb +3 -3
  246. data/lib/onix/comparison_product_price.rb +17 -0
  247. data/lib/onix/complexity.rb +6 -0
  248. data/lib/onix/content_detail.rb +7 -0
  249. data/lib/onix/content_item.rb +38 -0
  250. data/lib/onix/contributor.rb +56 -34
  251. data/lib/onix/contributor_place.rb +12 -0
  252. data/lib/onix/copyright_statement.rb +8 -0
  253. data/lib/onix/date.rb +107 -56
  254. data/lib/onix/descriptive_detail.rb +98 -49
  255. data/lib/onix/discount.rb +9 -0
  256. data/lib/onix/discount_coded.rb +3 -3
  257. data/lib/onix/entity.rb +22 -37
  258. data/lib/onix/epub_license.rb +8 -0
  259. data/lib/onix/epub_license_expression.rb +7 -0
  260. data/lib/onix/epub_usage_constraint.rb +5 -3
  261. data/lib/onix/epub_usage_limit.rb +2 -2
  262. data/lib/onix/error.rb +2 -0
  263. data/lib/onix/extent.rb +4 -3
  264. data/lib/onix/header.rb +17 -0
  265. data/lib/onix/helper.rb +3 -12
  266. data/lib/onix/identifier.rb +81 -57
  267. data/lib/onix/language.rb +5 -2
  268. data/lib/onix/market.rb +2 -1
  269. data/lib/onix/market_publishing_detail.rb +14 -3
  270. data/lib/onix/measure.rb +7 -0
  271. data/lib/onix/onix21.rb +26 -24
  272. data/lib/onix/onix_message.rb +40 -48
  273. data/lib/onix/page_run.rb +6 -0
  274. data/lib/onix/price.rb +44 -11
  275. data/lib/onix/prize.rb +11 -0
  276. data/lib/onix/product.rb +45 -17
  277. data/lib/onix/product_classification.rb +8 -0
  278. data/lib/onix/product_contact.rb +11 -0
  279. data/lib/onix/product_part.rb +25 -10
  280. data/lib/onix/{product_supplies_extractor.rb → product_supplies_methods.rb} +3 -3
  281. data/lib/onix/product_supply.rb +4 -3
  282. data/lib/onix/professional_affiliation.rb +6 -0
  283. data/lib/onix/publisher_representative.rb +11 -0
  284. data/lib/onix/publishing_detail.rb +22 -9
  285. data/lib/onix/related_material.rb +6 -2
  286. data/lib/onix/related_product.rb +14 -6
  287. data/lib/onix/related_work.rb +5 -3
  288. data/lib/onix/resource_feature.rb +9 -0
  289. data/lib/onix/resource_version.rb +85 -0
  290. data/lib/onix/resource_version_feature.rb +22 -0
  291. data/lib/onix/returns_conditions.rb +8 -0
  292. data/lib/onix/review_rating.rb +7 -0
  293. data/lib/onix/sales_outlet.rb +12 -2
  294. data/lib/onix/sales_restriction.rb +7 -16
  295. data/lib/onix/sales_rights.rb +6 -3
  296. data/lib/onix/sender.rb +5 -5
  297. data/lib/onix/serializer.rb +131 -87
  298. data/lib/onix/subject.rb +11 -6
  299. data/lib/onix/subset.rb +255 -104
  300. data/lib/onix/supplier_own_coding.rb +7 -0
  301. data/lib/onix/supply_contact.rb +9 -0
  302. data/lib/onix/supply_detail.rb +28 -5
  303. data/lib/onix/supporting_resource.rb +10 -113
  304. data/lib/onix/tax.rb +11 -5
  305. data/lib/onix/territory.rb +8 -4
  306. data/lib/onix/text_content.rb +13 -0
  307. data/lib/onix/text_item.rb +12 -0
  308. data/lib/onix/title_detail.rb +4 -3
  309. data/lib/onix/title_element.rb +16 -13
  310. data/lib/onix/website.rb +4 -3
  311. metadata +89 -3
data/lib/onix/tax.rb CHANGED
@@ -1,14 +1,20 @@
1
1
  module ONIX
2
2
  class Tax < SubsetDSL
3
- element "TaxType", :subset
4
- element "TaxRateCode", :subset, :shortcut => :rate_code
5
- element "TaxRatePercent", :float, :shortcut => :rate_percent
3
+ elements "ProductIdentifier", :subset, :cardinality => 0..n
4
+ elements "PricePartDescription", :text, :cardinality => 0..n
5
+ element "TaxType", :subset, :cardinality => 0..1
6
+ element "TaxRateCode", :subset, :shortcut => :rate_code, :cardinality => 0..1
7
+ element "TaxRatePercent", :float, :shortcut => :rate_percent, :cardinality => 0..1
6
8
  element "TaxableAmount", :float, {
7
- :parse_lambda => lambda { |v| (v * 100).round }
9
+ :parse_lambda => lambda { |v| (v * 100).round },
10
+ :serialize_lambda => lambda { |v| format("%.2f", v / 100.0) },
11
+ :cardinality => 0..1
8
12
  }
9
13
  element "TaxAmount", :float, {
10
14
  :shortcut => :amount,
11
- :parse_lambda => lambda { |v| (v * 100).round }
15
+ :parse_lambda => lambda { |v| (v * 100).round },
16
+ :serialize_lambda => lambda { |v| format("%.2f", v / 100.0) },
17
+ :cardinality => 0..1
12
18
  }
13
19
  end
14
20
  end
@@ -1,10 +1,10 @@
1
1
  require 'onix/code'
2
2
  module ONIX
3
3
  class Territory < SubsetDSL
4
- element "CountriesIncluded", :text
5
- element "RegionsIncluded", :text
6
- element "CountriesExcluded", :text
7
- element "RegionsExcluded", :text
4
+ element "CountriesIncluded", :text, :cardinality => 0..1
5
+ element "RegionsIncluded", :text, :cardinality => 0..1
6
+ element "CountriesExcluded", :text, :cardinality => 0..1
7
+ element "RegionsExcluded", :text, :cardinality => 0..1
8
8
 
9
9
  # @!group High level
10
10
 
@@ -33,6 +33,7 @@ module ONIX
33
33
  self.class.worldwide?(self.countries)
34
34
  end
35
35
 
36
+ # @param [Array<String>] v
36
37
  def countries= v
37
38
  if (v.uniq & CountryCode.list).length == CountryCode.list.length
38
39
  @regions_included = "WORLD"
@@ -43,6 +44,8 @@ module ONIX
43
44
 
44
45
  # !@endgroup
45
46
 
47
+ # @param [String] region
48
+ # @return [Array<String>]
46
49
  def self.region_to_countries(region)
47
50
  case region
48
51
  when "WORLD"
@@ -55,6 +58,7 @@ module ONIX
55
58
  end
56
59
  end
57
60
 
61
+ # @return [Boolean]
58
62
  def self.worldwide?(countries)
59
63
  (countries & CountryCode.list).length == CountryCode.list.length
60
64
  end
@@ -0,0 +1,13 @@
1
+ module ONIX
2
+ class TextContent < SubsetDSL
3
+ element "TextType", :subset, :shortcut => :type, :cardinality => 1
4
+ element "ContentAudience", :subset, :cardinality => 1..n
5
+ element "Text", :text, :cardinality => 1..n
6
+ element "TextAuthor", :text, :cardinality => 0..n
7
+ element "TextSourceCorporate", :text, :cardinality => 0..1
8
+ element "SourceTitle", :text, :cardinality => 0..n
9
+
10
+ scope :description, lambda { human_code_match(:text_type, "Description") }
11
+ scope :short_description, lambda { human_code_match(:text_type, "ShortDescriptionannotation") }
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ require 'onix/code'
2
+ require 'onix/identifier'
3
+ require 'onix/page_run'
4
+
5
+ module ONIX
6
+ class TextItem < SubsetDSL
7
+ element "TextItemType", :subset, :cardinality => 1
8
+ elements "TextItemIdentifier", :subset, :cardinality => 0..n
9
+ elements "PageRun", :subset, :cardinality => 0..n
10
+ element "NumberOfPages", :integer, :cardinality => 0..1
11
+ end
12
+ end
@@ -2,14 +2,15 @@ require 'onix/title_element'
2
2
 
3
3
  module ONIX
4
4
  class TitleDetail < SubsetDSL
5
- element "TitleType", :subset, :shortcut => :type
6
- elements "TitleElement", :subset
7
- element "TitleStatement", :text
5
+ element "TitleType", :subset, :shortcut => :type, :cardinality => 1
6
+ elements "TitleElement", :subset, :cardinality => 1..n
7
+ element "TitleStatement", :text, :cardinality => 0..1
8
8
 
9
9
  scope :distinctive_title, lambda { human_code_match(:title_type, /DistinctiveTitle/) }
10
10
 
11
11
  # :category: High level
12
12
  # flatten title string
13
+ # @return [String]
13
14
  def title
14
15
  return title_statement if title_statement
15
16
 
@@ -1,27 +1,30 @@
1
1
  module ONIX
2
2
  class TitleElement < SubsetDSL
3
- element "TitleElementLevel", :subset, :shortcut => :level
4
- element "TitleText", :text
5
- element "TitlePrefix", :text
6
- element "TitleWithoutPrefix", :text
7
- element "Subtitle", :text
8
- element "PartNumber", :integer
9
- element "SequenceNumber", :integer
3
+ element "SequenceNumber", :integer, :cardinality => 0..1
4
+ element "TitleElementLevel", :subset, :shortcut => :level, :cardinality => 1
5
+ element "PartNumber", :text, :cardinality => 0..1
6
+ element "YearOfAnnual", :text, :cardinality => 0..1
7
+ element "TitleText", :text, :cardinality => 0..1
8
+ element "TitlePrefix", :text, :cardinality => 0..1
9
+ element "NoPrefix", :bool, :cardinality => 0..1
10
+ element "TitleWithoutPrefix", :text, :cardinality => 0..1
11
+ element "Subtitle", :text, :cardinality => 0..1
10
12
 
11
13
  scope :product_level, lambda { human_code_match(:title_element_level, /Product/) }
12
14
  scope :collection_level, lambda { human_code_match(:title_element_level, /collection/i) }
13
15
 
14
16
  # @!group High level
15
17
  # flatten title string
18
+ # @return [String]
16
19
  def title
17
- if @title_text
18
- @title_text
20
+ if title_text
21
+ title_text
19
22
  else
20
- if @title_without_prefix
21
- if @title_prefix
22
- "#{@title_prefix} #{@title_without_prefix}"
23
+ if title_without_prefix
24
+ if title_prefix
25
+ "#{title_prefix} #{title_without_prefix}"
23
26
  else
24
- @title_without_prefix
27
+ title_without_prefix
25
28
  end
26
29
  end
27
30
  end
data/lib/onix/website.rb CHANGED
@@ -1,8 +1,9 @@
1
1
  require 'onix/code'
2
+
2
3
  module ONIX
3
4
  class Website < SubsetDSL
4
- element "WebsiteRole", :subset, :shortcut => :role
5
- element "WebsiteLink", :text, :shortcut => :link
6
- element "WebsiteDescription", :text, :shortcut => :description
5
+ element "WebsiteRole", :subset, :shortcut => :role, :cardinality => 0..1
6
+ element "WebsiteDescription", :text, :shortcut => :description, :cardinality => 0..n
7
+ element "WebsiteLink", :text, :shortcut => :link, :cardinality => 1..n
7
8
  end
8
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: im_onix
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julien Boulnois
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-09-21 00:00:00.000000000 Z
11
+ date: 2022-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -80,6 +80,34 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: simplecov
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: ruby-prof
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: nokogiri
85
113
  requirement: !ruby/object:Gem::Requirement
@@ -180,9 +208,35 @@ files:
180
208
  - data/codelists/codelist-203.yml
181
209
  - data/codelists/codelist-204.yml
182
210
  - data/codelists/codelist-21.yml
211
+ - data/codelists/codelist-215.yml
212
+ - data/codelists/codelist-216.yml
213
+ - data/codelists/codelist-217.yml
214
+ - data/codelists/codelist-218.yml
215
+ - data/codelists/codelist-219.yml
183
216
  - data/codelists/codelist-22.yml
217
+ - data/codelists/codelist-220.yml
218
+ - data/codelists/codelist-221.yml
219
+ - data/codelists/codelist-222.yml
220
+ - data/codelists/codelist-223.yml
221
+ - data/codelists/codelist-224.yml
222
+ - data/codelists/codelist-225.yml
223
+ - data/codelists/codelist-226.yml
224
+ - data/codelists/codelist-227.yml
225
+ - data/codelists/codelist-228.yml
226
+ - data/codelists/codelist-229.yml
184
227
  - data/codelists/codelist-23.yml
228
+ - data/codelists/codelist-230.yml
229
+ - data/codelists/codelist-238.yml
230
+ - data/codelists/codelist-239.yml
185
231
  - data/codelists/codelist-24.yml
232
+ - data/codelists/codelist-240.yml
233
+ - data/codelists/codelist-241.yml
234
+ - data/codelists/codelist-242.yml
235
+ - data/codelists/codelist-243.yml
236
+ - data/codelists/codelist-244.yml
237
+ - data/codelists/codelist-245.yml
238
+ - data/codelists/codelist-246.yml
239
+ - data/codelists/codelist-247.yml
186
240
  - data/codelists/codelist-25.yml
187
241
  - data/codelists/codelist-26.yml
188
242
  - data/codelists/codelist-27.yml
@@ -426,36 +480,64 @@ files:
426
480
  - im_onix.gemspec
427
481
  - lib/im_onix.rb
428
482
  - lib/onix/addressee.rb
483
+ - lib/onix/ancillary_content.rb
484
+ - lib/onix/audience.rb
485
+ - lib/onix/audience_range.rb
486
+ - lib/onix/barcode.rb
487
+ - lib/onix/builder.rb
488
+ - lib/onix/cited_content.rb
429
489
  - lib/onix/code.rb
430
490
  - lib/onix/collateral_detail.rb
431
491
  - lib/onix/collection.rb
432
492
  - lib/onix/collection_sequence.rb
493
+ - lib/onix/comparison_product_price.rb
494
+ - lib/onix/complexity.rb
495
+ - lib/onix/content_detail.rb
496
+ - lib/onix/content_item.rb
433
497
  - lib/onix/contributor.rb
498
+ - lib/onix/contributor_place.rb
499
+ - lib/onix/copyright_statement.rb
434
500
  - lib/onix/date.rb
435
501
  - lib/onix/descriptive_detail.rb
502
+ - lib/onix/discount.rb
436
503
  - lib/onix/discount_coded.rb
437
504
  - lib/onix/entity.rb
505
+ - lib/onix/epub_license.rb
506
+ - lib/onix/epub_license_expression.rb
438
507
  - lib/onix/epub_usage_constraint.rb
439
508
  - lib/onix/epub_usage_limit.rb
440
509
  - lib/onix/error.rb
441
510
  - lib/onix/extent.rb
511
+ - lib/onix/header.rb
442
512
  - lib/onix/helper.rb
443
513
  - lib/onix/identifier.rb
444
514
  - lib/onix/language.rb
445
515
  - lib/onix/market.rb
446
516
  - lib/onix/market_publishing_detail.rb
517
+ - lib/onix/measure.rb
447
518
  - lib/onix/onix21.rb
448
519
  - lib/onix/onix_message.rb
520
+ - lib/onix/page_run.rb
449
521
  - lib/onix/price.rb
522
+ - lib/onix/prize.rb
450
523
  - lib/onix/product.rb
524
+ - lib/onix/product_classification.rb
525
+ - lib/onix/product_contact.rb
451
526
  - lib/onix/product_form_feature.rb
452
527
  - lib/onix/product_part.rb
453
- - lib/onix/product_supplies_extractor.rb
528
+ - lib/onix/product_supplies_methods.rb
454
529
  - lib/onix/product_supply.rb
530
+ - lib/onix/professional_affiliation.rb
531
+ - lib/onix/publisher_representative.rb
455
532
  - lib/onix/publishing_detail.rb
456
533
  - lib/onix/related_material.rb
457
534
  - lib/onix/related_product.rb
458
535
  - lib/onix/related_work.rb
536
+ - lib/onix/resource_feature.rb
537
+ - lib/onix/resource_version.rb
538
+ - lib/onix/resource_version_feature.rb
539
+ - lib/onix/returns_conditions.rb
540
+ - lib/onix/review_rating.rb
459
541
  - lib/onix/sales_outlet.rb
460
542
  - lib/onix/sales_restriction.rb
461
543
  - lib/onix/sales_rights.rb
@@ -463,10 +545,14 @@ files:
463
545
  - lib/onix/serializer.rb
464
546
  - lib/onix/subject.rb
465
547
  - lib/onix/subset.rb
548
+ - lib/onix/supplier_own_coding.rb
549
+ - lib/onix/supply_contact.rb
466
550
  - lib/onix/supply_detail.rb
467
551
  - lib/onix/supporting_resource.rb
468
552
  - lib/onix/tax.rb
469
553
  - lib/onix/territory.rb
554
+ - lib/onix/text_content.rb
555
+ - lib/onix/text_item.rb
470
556
  - lib/onix/title_detail.rb
471
557
  - lib/onix/title_element.rb
472
558
  - lib/onix/website.rb