im_onix 1.0.2

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.
Files changed (346) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +39 -0
  3. data/bin/html_codelist_to_yml.rb +46 -0
  4. data/bin/onix3_to_onix2.rb +192 -0
  5. data/bin/onix3_to_onix3.rb +401 -0
  6. data/bin/onix_bench.rb +15 -0
  7. data/bin/onix_pp.rb +216 -0
  8. data/bin/onix_split.rb +72 -0
  9. data/data/codelists/codelist-1.yml +12 -0
  10. data/data/codelists/codelist-10.yml +51 -0
  11. data/data/codelists/codelist-100.yml +8 -0
  12. data/data/codelists/codelist-101.yml +7 -0
  13. data/data/codelists/codelist-102.yml +5 -0
  14. data/data/codelists/codelist-11.yml +13 -0
  15. data/data/codelists/codelist-12.yml +15 -0
  16. data/data/codelists/codelist-121.yml +162 -0
  17. data/data/codelists/codelist-13.yml +10 -0
  18. data/data/codelists/codelist-138.yml +8 -0
  19. data/data/codelists/codelist-139.yml +102 -0
  20. data/data/codelists/codelist-14.yml +6 -0
  21. data/data/codelists/codelist-140.yml +9 -0
  22. data/data/codelists/codelist-141.yml +12 -0
  23. data/data/codelists/codelist-142.yml +14 -0
  24. data/data/codelists/codelist-143.yml +9 -0
  25. data/data/codelists/codelist-144.yml +10 -0
  26. data/data/codelists/codelist-145.yml +9 -0
  27. data/data/codelists/codelist-146.yml +5 -0
  28. data/data/codelists/codelist-147.yml +16 -0
  29. data/data/codelists/codelist-148.yml +6 -0
  30. data/data/codelists/codelist-149.yml +7 -0
  31. data/data/codelists/codelist-15.yml +15 -0
  32. data/data/codelists/codelist-150.yml +128 -0
  33. data/data/codelists/codelist-151.yml +10 -0
  34. data/data/codelists/codelist-152.yml +4 -0
  35. data/data/codelists/codelist-153.yml +19 -0
  36. data/data/codelists/codelist-154.yml +11 -0
  37. data/data/codelists/codelist-155.yml +10 -0
  38. data/data/codelists/codelist-156.yml +6 -0
  39. data/data/codelists/codelist-157.yml +6 -0
  40. data/data/codelists/codelist-158.yml +32 -0
  41. data/data/codelists/codelist-159.yml +8 -0
  42. data/data/codelists/codelist-16.yml +8 -0
  43. data/data/codelists/codelist-160.yml +6 -0
  44. data/data/codelists/codelist-161.yml +5 -0
  45. data/data/codelists/codelist-162.yml +9 -0
  46. data/data/codelists/codelist-163.yml +18 -0
  47. data/data/codelists/codelist-164.yml +7 -0
  48. data/data/codelists/codelist-165.yml +6 -0
  49. data/data/codelists/codelist-166.yml +6 -0
  50. data/data/codelists/codelist-167.yml +7 -0
  51. data/data/codelists/codelist-168.yml +4 -0
  52. data/data/codelists/codelist-169.yml +7 -0
  53. data/data/codelists/codelist-17.yml +95 -0
  54. data/data/codelists/codelist-170.yml +2 -0
  55. data/data/codelists/codelist-171.yml +4 -0
  56. data/data/codelists/codelist-172.yml +3 -0
  57. data/data/codelists/codelist-173.yml +5 -0
  58. data/data/codelists/codelist-174.yml +4 -0
  59. data/data/codelists/codelist-175.yml +217 -0
  60. data/data/codelists/codelist-176.yml +16 -0
  61. data/data/codelists/codelist-177.yml +4 -0
  62. data/data/codelists/codelist-178.yml +30 -0
  63. data/data/codelists/codelist-179.yml +4 -0
  64. data/data/codelists/codelist-18.yml +8 -0
  65. data/data/codelists/codelist-184.yml +10 -0
  66. data/data/codelists/codelist-19.yml +9 -0
  67. data/data/codelists/codelist-196.yml +22 -0
  68. data/data/codelists/codelist-197.yml +7 -0
  69. data/data/codelists/codelist-198.yml +4 -0
  70. data/data/codelists/codelist-2.yml +8 -0
  71. data/data/codelists/codelist-20.yml +2 -0
  72. data/data/codelists/codelist-203.yml +10 -0
  73. data/data/codelists/codelist-204.yml +6 -0
  74. data/data/codelists/codelist-21.yml +36 -0
  75. data/data/codelists/codelist-22.yml +11 -0
  76. data/data/codelists/codelist-23.yml +17 -0
  77. data/data/codelists/codelist-24.yml +13 -0
  78. data/data/codelists/codelist-25.yml +31 -0
  79. data/data/codelists/codelist-26.yml +94 -0
  80. data/data/codelists/codelist-27.yml +101 -0
  81. data/data/codelists/codelist-28.yml +10 -0
  82. data/data/codelists/codelist-29.yml +26 -0
  83. data/data/codelists/codelist-3.yml +13 -0
  84. data/data/codelists/codelist-30.yml +19 -0
  85. data/data/codelists/codelist-31.yml +5 -0
  86. data/data/codelists/codelist-32.yml +5 -0
  87. data/data/codelists/codelist-33.yml +44 -0
  88. data/data/codelists/codelist-34.yml +18 -0
  89. data/data/codelists/codelist-35.yml +8 -0
  90. data/data/codelists/codelist-36.yml +5 -0
  91. data/data/codelists/codelist-37.yml +8 -0
  92. data/data/codelists/codelist-38.yml +42 -0
  93. data/data/codelists/codelist-39.yml +21 -0
  94. data/data/codelists/codelist-40.yml +8 -0
  95. data/data/codelists/codelist-41.yml +8 -0
  96. data/data/codelists/codelist-42.yml +18 -0
  97. data/data/codelists/codelist-43.yml +8 -0
  98. data/data/codelists/codelist-44.yml +22 -0
  99. data/data/codelists/codelist-45.yml +15 -0
  100. data/data/codelists/codelist-46.yml +11 -0
  101. data/data/codelists/codelist-47.yml +6 -0
  102. data/data/codelists/codelist-48.yml +13 -0
  103. data/data/codelists/codelist-49.yml +87 -0
  104. data/data/codelists/codelist-5.yml +20 -0
  105. data/data/codelists/codelist-50.yml +10 -0
  106. data/data/codelists/codelist-51.yml +37 -0
  107. data/data/codelists/codelist-52.yml +3 -0
  108. data/data/codelists/codelist-53.yml +7 -0
  109. data/data/codelists/codelist-54.yml +25 -0
  110. data/data/codelists/codelist-55.yml +21 -0
  111. data/data/codelists/codelist-56.yml +4 -0
  112. data/data/codelists/codelist-57.yml +7 -0
  113. data/data/codelists/codelist-58.yml +27 -0
  114. data/data/codelists/codelist-59.yml +12 -0
  115. data/data/codelists/codelist-6.yml +78 -0
  116. data/data/codelists/codelist-60.yml +4 -0
  117. data/data/codelists/codelist-61.yml +5 -0
  118. data/data/codelists/codelist-62.yml +7 -0
  119. data/data/codelists/codelist-63.yml +2 -0
  120. data/data/codelists/codelist-64.yml +18 -0
  121. data/data/codelists/codelist-65.yml +31 -0
  122. data/data/codelists/codelist-66.yml +6 -0
  123. data/data/codelists/codelist-67.yml +4 -0
  124. data/data/codelists/codelist-68.yml +19 -0
  125. data/data/codelists/codelist-69.yml +6 -0
  126. data/data/codelists/codelist-7.yml +128 -0
  127. data/data/codelists/codelist-70.yml +4 -0
  128. data/data/codelists/codelist-71.yml +13 -0
  129. data/data/codelists/codelist-72.yml +9 -0
  130. data/data/codelists/codelist-73.yml +43 -0
  131. data/data/codelists/codelist-74.yml +491 -0
  132. data/data/codelists/codelist-75.yml +4 -0
  133. data/data/codelists/codelist-76.yml +14 -0
  134. data/data/codelists/codelist-77.yml +21 -0
  135. data/data/codelists/codelist-78.yml +179 -0
  136. data/data/codelists/codelist-79.yml +25 -0
  137. data/data/codelists/codelist-8.yml +9 -0
  138. data/data/codelists/codelist-80.yml +23 -0
  139. data/data/codelists/codelist-81.yml +41 -0
  140. data/data/codelists/codelist-82.yml +19 -0
  141. data/data/codelists/codelist-83.yml +71 -0
  142. data/data/codelists/codelist-84.yml +12 -0
  143. data/data/codelists/codelist-85.yml +25 -0
  144. data/data/codelists/codelist-86.yml +7 -0
  145. data/data/codelists/codelist-87.yml +8 -0
  146. data/data/codelists/codelist-88.yml +2 -0
  147. data/data/codelists/codelist-89.yml +3 -0
  148. data/data/codelists/codelist-9.yml +11 -0
  149. data/data/codelists/codelist-90.yml +13 -0
  150. data/data/codelists/codelist-91.yml +254 -0
  151. data/data/codelists/codelist-92.yml +11 -0
  152. data/data/codelists/codelist-93.yml +15 -0
  153. data/data/codelists/codelist-94.yml +5 -0
  154. data/data/codelists/codelist-95.yml +5 -0
  155. data/data/codelists/codelist-96.yml +193 -0
  156. data/data/codelists/codelist-97.yml +3 -0
  157. data/data/codelists/codelist-98.yml +23 -0
  158. data/data/codelists/codelist-99.yml +26 -0
  159. data/data/onix21/codelists/codelist-1.yml +14 -0
  160. data/data/onix21/codelists/codelist-10.yml +52 -0
  161. data/data/onix21/codelists/codelist-100.yml +8 -0
  162. data/data/onix21/codelists/codelist-101.yml +7 -0
  163. data/data/onix21/codelists/codelist-102.yml +5 -0
  164. data/data/onix21/codelists/codelist-11.yml +13 -0
  165. data/data/onix21/codelists/codelist-12.yml +16 -0
  166. data/data/onix21/codelists/codelist-121.yml +162 -0
  167. data/data/onix21/codelists/codelist-13.yml +11 -0
  168. data/data/onix21/codelists/codelist-138.yml +8 -0
  169. data/data/onix21/codelists/codelist-139.yml +109 -0
  170. data/data/onix21/codelists/codelist-14.yml +6 -0
  171. data/data/onix21/codelists/codelist-140.yml +9 -0
  172. data/data/onix21/codelists/codelist-141.yml +12 -0
  173. data/data/onix21/codelists/codelist-142.yml +14 -0
  174. data/data/onix21/codelists/codelist-143.yml +9 -0
  175. data/data/onix21/codelists/codelist-144.yml +8 -0
  176. data/data/onix21/codelists/codelist-145.yml +10 -0
  177. data/data/onix21/codelists/codelist-146.yml +5 -0
  178. data/data/onix21/codelists/codelist-147.yml +16 -0
  179. data/data/onix21/codelists/codelist-148.yml +6 -0
  180. data/data/onix21/codelists/codelist-149.yml +8 -0
  181. data/data/onix21/codelists/codelist-15.yml +16 -0
  182. data/data/onix21/codelists/codelist-150.yml +133 -0
  183. data/data/onix21/codelists/codelist-151.yml +10 -0
  184. data/data/onix21/codelists/codelist-152.yml +4 -0
  185. data/data/onix21/codelists/codelist-153.yml +22 -0
  186. data/data/onix21/codelists/codelist-154.yml +11 -0
  187. data/data/onix21/codelists/codelist-155.yml +10 -0
  188. data/data/onix21/codelists/codelist-156.yml +6 -0
  189. data/data/onix21/codelists/codelist-157.yml +6 -0
  190. data/data/onix21/codelists/codelist-158.yml +35 -0
  191. data/data/onix21/codelists/codelist-159.yml +8 -0
  192. data/data/onix21/codelists/codelist-16.yml +8 -0
  193. data/data/onix21/codelists/codelist-160.yml +7 -0
  194. data/data/onix21/codelists/codelist-161.yml +5 -0
  195. data/data/onix21/codelists/codelist-162.yml +9 -0
  196. data/data/onix21/codelists/codelist-163.yml +18 -0
  197. data/data/onix21/codelists/codelist-164.yml +7 -0
  198. data/data/onix21/codelists/codelist-165.yml +6 -0
  199. data/data/onix21/codelists/codelist-166.yml +6 -0
  200. data/data/onix21/codelists/codelist-167.yml +11 -0
  201. data/data/onix21/codelists/codelist-168.yml +4 -0
  202. data/data/onix21/codelists/codelist-169.yml +7 -0
  203. data/data/onix21/codelists/codelist-17.yml +98 -0
  204. data/data/onix21/codelists/codelist-170.yml +6 -0
  205. data/data/onix21/codelists/codelist-171.yml +4 -0
  206. data/data/onix21/codelists/codelist-172.yml +3 -0
  207. data/data/onix21/codelists/codelist-173.yml +5 -0
  208. data/data/onix21/codelists/codelist-174.yml +4 -0
  209. data/data/onix21/codelists/codelist-175.yml +230 -0
  210. data/data/onix21/codelists/codelist-176.yml +16 -0
  211. data/data/onix21/codelists/codelist-177.yml +4 -0
  212. data/data/onix21/codelists/codelist-178.yml +30 -0
  213. data/data/onix21/codelists/codelist-179.yml +5 -0
  214. data/data/onix21/codelists/codelist-18.yml +8 -0
  215. data/data/onix21/codelists/codelist-184.yml +10 -0
  216. data/data/onix21/codelists/codelist-19.yml +9 -0
  217. data/data/onix21/codelists/codelist-196.yml +22 -0
  218. data/data/onix21/codelists/codelist-197.yml +7 -0
  219. data/data/onix21/codelists/codelist-198.yml +8 -0
  220. data/data/onix21/codelists/codelist-2.yml +8 -0
  221. data/data/onix21/codelists/codelist-20.yml +2 -0
  222. data/data/onix21/codelists/codelist-203.yml +10 -0
  223. data/data/onix21/codelists/codelist-204.yml +7 -0
  224. data/data/onix21/codelists/codelist-21.yml +36 -0
  225. data/data/onix21/codelists/codelist-215.yml +9 -0
  226. data/data/onix21/codelists/codelist-216.yml +11 -0
  227. data/data/onix21/codelists/codelist-217.yml +3 -0
  228. data/data/onix21/codelists/codelist-218.yml +5 -0
  229. data/data/onix21/codelists/codelist-219.yml +5 -0
  230. data/data/onix21/codelists/codelist-22.yml +11 -0
  231. data/data/onix21/codelists/codelist-220.yml +7 -0
  232. data/data/onix21/codelists/codelist-23.yml +17 -0
  233. data/data/onix21/codelists/codelist-24.yml +14 -0
  234. data/data/onix21/codelists/codelist-25.yml +31 -0
  235. data/data/onix21/codelists/codelist-26.yml +100 -0
  236. data/data/onix21/codelists/codelist-27.yml +107 -0
  237. data/data/onix21/codelists/codelist-28.yml +10 -0
  238. data/data/onix21/codelists/codelist-29.yml +30 -0
  239. data/data/onix21/codelists/codelist-3.yml +13 -0
  240. data/data/onix21/codelists/codelist-30.yml +20 -0
  241. data/data/onix21/codelists/codelist-31.yml +5 -0
  242. data/data/onix21/codelists/codelist-32.yml +10 -0
  243. data/data/onix21/codelists/codelist-33.yml +46 -0
  244. data/data/onix21/codelists/codelist-34.yml +18 -0
  245. data/data/onix21/codelists/codelist-35.yml +8 -0
  246. data/data/onix21/codelists/codelist-36.yml +5 -0
  247. data/data/onix21/codelists/codelist-37.yml +8 -0
  248. data/data/onix21/codelists/codelist-38.yml +42 -0
  249. data/data/onix21/codelists/codelist-39.yml +21 -0
  250. data/data/onix21/codelists/codelist-40.yml +8 -0
  251. data/data/onix21/codelists/codelist-41.yml +9 -0
  252. data/data/onix21/codelists/codelist-42.yml +18 -0
  253. data/data/onix21/codelists/codelist-43.yml +9 -0
  254. data/data/onix21/codelists/codelist-44.yml +27 -0
  255. data/data/onix21/codelists/codelist-45.yml +20 -0
  256. data/data/onix21/codelists/codelist-46.yml +11 -0
  257. data/data/onix21/codelists/codelist-47.yml +6 -0
  258. data/data/onix21/codelists/codelist-48.yml +13 -0
  259. data/data/onix21/codelists/codelist-49.yml +281 -0
  260. data/data/onix21/codelists/codelist-5.yml +20 -0
  261. data/data/onix21/codelists/codelist-50.yml +10 -0
  262. data/data/onix21/codelists/codelist-51.yml +37 -0
  263. data/data/onix21/codelists/codelist-52.yml +3 -0
  264. data/data/onix21/codelists/codelist-53.yml +7 -0
  265. data/data/onix21/codelists/codelist-54.yml +25 -0
  266. data/data/onix21/codelists/codelist-55.yml +21 -0
  267. data/data/onix21/codelists/codelist-56.yml +4 -0
  268. data/data/onix21/codelists/codelist-57.yml +7 -0
  269. data/data/onix21/codelists/codelist-58.yml +27 -0
  270. data/data/onix21/codelists/codelist-59.yml +12 -0
  271. data/data/onix21/codelists/codelist-6.yml +78 -0
  272. data/data/onix21/codelists/codelist-60.yml +4 -0
  273. data/data/onix21/codelists/codelist-61.yml +5 -0
  274. data/data/onix21/codelists/codelist-62.yml +7 -0
  275. data/data/onix21/codelists/codelist-63.yml +2 -0
  276. data/data/onix21/codelists/codelist-64.yml +18 -0
  277. data/data/onix21/codelists/codelist-65.yml +31 -0
  278. data/data/onix21/codelists/codelist-66.yml +6 -0
  279. data/data/onix21/codelists/codelist-67.yml +4 -0
  280. data/data/onix21/codelists/codelist-68.yml +19 -0
  281. data/data/onix21/codelists/codelist-69.yml +6 -0
  282. data/data/onix21/codelists/codelist-7.yml +132 -0
  283. data/data/onix21/codelists/codelist-70.yml +4 -0
  284. data/data/onix21/codelists/codelist-71.yml +14 -0
  285. data/data/onix21/codelists/codelist-72.yml +9 -0
  286. data/data/onix21/codelists/codelist-73.yml +43 -0
  287. data/data/onix21/codelists/codelist-74.yml +492 -0
  288. data/data/onix21/codelists/codelist-75.yml +4 -0
  289. data/data/onix21/codelists/codelist-76.yml +14 -0
  290. data/data/onix21/codelists/codelist-77.yml +21 -0
  291. data/data/onix21/codelists/codelist-78.yml +191 -0
  292. data/data/onix21/codelists/codelist-79.yml +26 -0
  293. data/data/onix21/codelists/codelist-8.yml +9 -0
  294. data/data/onix21/codelists/codelist-80.yml +23 -0
  295. data/data/onix21/codelists/codelist-81.yml +41 -0
  296. data/data/onix21/codelists/codelist-82.yml +19 -0
  297. data/data/onix21/codelists/codelist-83.yml +72 -0
  298. data/data/onix21/codelists/codelist-84.yml +12 -0
  299. data/data/onix21/codelists/codelist-85.yml +25 -0
  300. data/data/onix21/codelists/codelist-86.yml +7 -0
  301. data/data/onix21/codelists/codelist-87.yml +8 -0
  302. data/data/onix21/codelists/codelist-88.yml +2 -0
  303. data/data/onix21/codelists/codelist-89.yml +3 -0
  304. data/data/onix21/codelists/codelist-9.yml +13 -0
  305. data/data/onix21/codelists/codelist-90.yml +13 -0
  306. data/data/onix21/codelists/codelist-91.yml +254 -0
  307. data/data/onix21/codelists/codelist-92.yml +11 -0
  308. data/data/onix21/codelists/codelist-93.yml +15 -0
  309. data/data/onix21/codelists/codelist-94.yml +5 -0
  310. data/data/onix21/codelists/codelist-95.yml +5 -0
  311. data/data/onix21/codelists/codelist-96.yml +194 -0
  312. data/data/onix21/codelists/codelist-97.yml +3 -0
  313. data/data/onix21/codelists/codelist-98.yml +25 -0
  314. data/data/onix21/codelists/codelist-99.yml +26 -0
  315. data/data/onix21/shortnames.yml +431 -0
  316. data/data/shortnames.yml +395 -0
  317. data/lib/im_onix.rb +2 -0
  318. data/lib/onix/code.rb +543 -0
  319. data/lib/onix/collateral_detail.rb +94 -0
  320. data/lib/onix/contributor.rb +87 -0
  321. data/lib/onix/date.rb +183 -0
  322. data/lib/onix/descriptive_detail.rb +552 -0
  323. data/lib/onix/discount_coded.rb +20 -0
  324. data/lib/onix/entity.rb +135 -0
  325. data/lib/onix/error.rb +6 -0
  326. data/lib/onix/helper.rb +66 -0
  327. data/lib/onix/identifier.rb +158 -0
  328. data/lib/onix/onix21.rb +604 -0
  329. data/lib/onix/onix_message.rb +187 -0
  330. data/lib/onix/price.rb +74 -0
  331. data/lib/onix/product.rb +846 -0
  332. data/lib/onix/product_supply.rb +89 -0
  333. data/lib/onix/publishing_detail.rb +86 -0
  334. data/lib/onix/related_material.rb +30 -0
  335. data/lib/onix/related_product.rb +45 -0
  336. data/lib/onix/related_work.rb +24 -0
  337. data/lib/onix/sales_outlet.rb +14 -0
  338. data/lib/onix/sales_restriction.rb +37 -0
  339. data/lib/onix/sales_rights.rb +12 -0
  340. data/lib/onix/subject.rb +35 -0
  341. data/lib/onix/subset.rb +334 -0
  342. data/lib/onix/supporting_resource.rb +192 -0
  343. data/lib/onix/tax.rb +23 -0
  344. data/lib/onix/territory.rb +56 -0
  345. data/lib/onix/website.rb +21 -0
  346. metadata +477 -0
data/bin/onix_pp.rb ADDED
@@ -0,0 +1,216 @@
1
+ #!/usr/bin/env ruby
2
+ require 'im_onix'
3
+
4
+ filename=ARGV[0]
5
+ version=ARGV[1]
6
+ encoding=ARGV[2]
7
+
8
+ if filename
9
+ msg=ONIX::ONIXMessage.new
10
+ msg.parse(filename,encoding,version)
11
+
12
+ puts "Release: #{msg.release}"
13
+
14
+ if msg.sender
15
+ puts "Sender: #{msg.sender.name}"
16
+ if msg.sender.gln
17
+ puts "Sender's GLN: #{msg.sender.gln}"
18
+ end
19
+ end
20
+ if msg.sent_date_time
21
+ puts "Sent date: #{msg.sent_date_time}"
22
+ end
23
+
24
+ msg.products.each do |product|
25
+ # pp product
26
+ puts "---"
27
+ puts " EAN: #{product.ean}"
28
+ puts " Title: #{product.title}"
29
+ puts " Language: #{product.language_name_of_text} (#{product.language_code_of_text})"
30
+ if product.subtitle
31
+ puts " Subtitle: #{product.subtitle}"
32
+ end
33
+ if product.publication_date
34
+ puts " Publication date: #{product.publication_date}"
35
+ end
36
+ if product.embargo_date
37
+ puts " Embargo date: #{product.embargo_date}"
38
+ end
39
+ if product.preorder_embargo_date
40
+ puts " Preorder embargo date: #{product.preorder_embargo_date}"
41
+ end
42
+ if product.public_announcement_date
43
+ puts " Public announcement date: #{product.public_announcement_date}"
44
+ end
45
+ if product.pages
46
+ puts " Pages: #{product.pages}"
47
+ end
48
+ if product.publisher_collection_title
49
+ puts " Collection: #{product.publisher_collection_title}"
50
+ end
51
+
52
+ product.bisac_categories_codes.each do |bcc|
53
+ puts " BISAC: #{bcc}"
54
+ end
55
+
56
+ product.clil_categories_codes.each do |bcc|
57
+ puts " CLIL: #{bcc}"
58
+ end
59
+
60
+ puts " Description: #{product.raw_description}"
61
+
62
+ if product.frontcover_url
63
+ puts " Frontcover: #{product.frontcover_url} (#{product.frontcover_last_updated})"
64
+ end
65
+
66
+ if product.epub_sample_url
67
+ puts " Sample: #{product.epub_sample_url}"
68
+ end
69
+
70
+ if product.keywords.length > 0
71
+ puts " Keywords: #{product.keywords.join(', ')}"
72
+ end
73
+
74
+ if product.publisher_name
75
+ puts " Publisher: #{product.publisher_name}"
76
+ end
77
+
78
+ # puts " Publisher: #{product.publisher_name}"
79
+ if product.imprint_name
80
+ puts " Imprint: #{product.imprint_name}"
81
+ end
82
+
83
+ if product.distributor_name
84
+ puts " Distributor: #{product.distributor_name}"
85
+ end
86
+
87
+ if product.onix_outlets_values.length > 0
88
+ puts " Outlets: #{product.onix_outlets_values}"
89
+ end
90
+
91
+ product.contributors.each do |c|
92
+ puts " Contributor:"
93
+ puts " Name: #{c.name}"
94
+ puts " Role: #{c.role.human}"
95
+ if c.biography
96
+ puts " Biography: #{c.raw_biography}"
97
+ end
98
+ end
99
+
100
+ if product.digital?
101
+ puts " -- Digital product"
102
+
103
+ if product.bundle?
104
+ puts " Multiple files bundle"
105
+ if product.file_description
106
+ puts " Description: #{product.raw_file_description}"
107
+ end
108
+
109
+ product.parts.each do |part|
110
+ puts " -- Part"
111
+ if part.ean
112
+ puts " EAN: #{part.ean}"
113
+ end
114
+ puts " Format: #{part.file_format}"
115
+ if part.file_description
116
+ puts " Description: #{part.raw_file_description}"
117
+ end
118
+ if part.protection_type
119
+ puts " Protection: #{part.protection_type}"
120
+ end
121
+ if part.filesize
122
+ puts " Filesize: #{part.filesize} bytes"
123
+ end
124
+ end
125
+
126
+ else
127
+ puts " Single file"
128
+ puts " Format: #{product.file_format}"
129
+ if product.file_description
130
+ puts " Description: #{product.raw_file_description}"
131
+ end
132
+ if product.protection_type
133
+ puts " Protection: #{product.protection_type}"
134
+ end
135
+ if product.filesize
136
+ puts " Filesize: #{product.filesize} bytes"
137
+ end
138
+ end
139
+
140
+ if product.print_product
141
+ puts " Paper EAN: #{product.print_product.ean}"
142
+ end
143
+ end
144
+
145
+ # pp product.supplies
146
+
147
+ current_price=product.current_price_amount_for('EUR', 'FR')
148
+ if current_price
149
+ puts " Current EUR price for FR: #{current_price/100.0} EUR"
150
+ end
151
+
152
+ if product.sold_separately?
153
+ puts " Available: #{product.available?}"
154
+ puts " Supplies:"
155
+
156
+ product.supplies_with_default_tax.each do |supply|
157
+ # if supply[:availability_date]
158
+ # puts " Availability date : #{supply[:availability_date]}"
159
+ # end
160
+ output=" "
161
+
162
+ if supply[:available]
163
+ output+="Available in "
164
+ else
165
+ output+="Not available in "
166
+ end
167
+
168
+ if ONIX::Territory.worldwide?(supply[:territory])
169
+ output+="WORLD"
170
+ else
171
+ output+=supply[:territory].join(", ")
172
+ end
173
+
174
+ if supply[:availability_date]
175
+ output+=" starting #{supply[:availability_date]}"
176
+ output+=" (#{supply[:availability_date].to_date})" if supply[:availability_date].class==Time
177
+
178
+ end
179
+
180
+ puts output
181
+
182
+ puts " Prices:"
183
+
184
+ supply[:prices].each do |price|
185
+ output=" "
186
+
187
+ output+="#{price[:amount].to_f/100.0} #{supply[:currency]}"
188
+
189
+ if supply[:including_tax]
190
+ output+=" tax included"
191
+ else
192
+ output+=" tax excluded"
193
+ end
194
+
195
+ if price[:from_date]
196
+ output+=" from #{price[:from_date]}"
197
+ output+=" (#{price[:from_date].to_date})" if price[:from_date].class==Time
198
+ end
199
+ if price[:until_date]
200
+ output+=" until #{price[:until_date]}"
201
+ output+=" (#{price[:until_date].to_date})" if price[:until_date].class==Time
202
+ end
203
+ puts output
204
+ end
205
+ end
206
+ else
207
+ puts " Not sold separately"
208
+ end
209
+ end
210
+ puts "---"
211
+ puts "Number of products: #{msg.products.count}"
212
+
213
+ else
214
+ puts "ONIX 3.0 pretty printer"
215
+ puts "Usage: onix_pp.rb onix.xml"
216
+ end
data/bin/onix_split.rb ADDED
@@ -0,0 +1,72 @@
1
+ #!/usr/bin/env ruby
2
+ require 'im_onix'
3
+
4
+ filename=ARGV[0]
5
+ cnt=ARGV[1] || 1000
6
+ cnt=cnt.to_i
7
+
8
+ class OnixSplitter
9
+
10
+ def initialize(filename, output_name)
11
+ @filename=filename
12
+ @output_name=output_name
13
+ end
14
+
15
+ def write_part(file_count, part)
16
+ out_filename=@output_name+"."+file_count.to_s+".xml"
17
+ puts "Write file #{out_filename}"
18
+ fw=File.open(out_filename, 'w')
19
+ fw.write("<ONIXMessage release=\"3.0\">\n")
20
+ part.each do |p|
21
+ fw.write p
22
+ end
23
+ fw.write("</ONIXMessage>\n")
24
+ fw.close
25
+ end
26
+
27
+ def count
28
+ current_part_count=0
29
+ ONIX::Helper.each_xml_product(@filename) do |product_str|
30
+ current_part_count+=1
31
+ end
32
+ current_part_count
33
+ end
34
+
35
+ def split(max_parts)
36
+ file_count=0
37
+ current_part=[]
38
+ current_part_count=0
39
+ ONIX::Helper.each_xml_product(@filename) do |product_str|
40
+ tmp_msg=ONIX::ONIXMessage.new
41
+ tmp_msg.parse(product_str)
42
+
43
+ current_part[current_part_count] ||=""
44
+ current_part[current_part_count] += product_str + "\n"
45
+
46
+ if tmp_msg.products.first.sold_separately?
47
+ current_part_count+=1
48
+ end
49
+
50
+ if current_part_count > max_parts-1
51
+ write_part(file_count, current_part)
52
+ current_part=[]
53
+ current_part_count=0
54
+ file_count+=1
55
+ end
56
+ end
57
+
58
+ if current_part_count > 0
59
+ write_part(file_count, current_part)
60
+ current_part=[]
61
+ current_part_count=0
62
+ end
63
+
64
+ true
65
+ end
66
+
67
+ end
68
+
69
+ splitter=OnixSplitter.new(filename, "out/splitted")
70
+ splitter.split(cnt)
71
+ puts splitter.count
72
+
@@ -0,0 +1,12 @@
1
+ ---
2
+ :codelist:
3
+ '01': EarlyNotification
4
+ '02': AdvanceNotificationConfirmed
5
+ '03': NotificationConfirmedOnPublication
6
+ '04': UpdatePartial
7
+ '05': Delete
8
+ 08: NoticeOfSale
9
+ 09: NoticeOfAcquisition
10
+ '12': UpdateSupplydetailOnly
11
+ '13': UpdateMarketrepresentationOnly
12
+ '14': UpdateSupplydetailAndMarketrepresentation
@@ -0,0 +1,51 @@
1
+ ---
2
+ :codelist:
3
+ '000': EpublicationContentPackage
4
+ '001': Html
5
+ '002': Pdf
6
+ '003': Pdfmerchant
7
+ '004': AdobeEbookReader
8
+ '005': MicrosoftReaderLevel1level3
9
+ '006': MicrosoftReaderLevel5
10
+ '007': Netlibrary
11
+ 008: Metatext
12
+ 009: Mightywords
13
+ '010': EreaderAkaPalmReader
14
+ '011': Softbook
15
+ '012': Rocketbook
16
+ '013': GemstarReb1100
17
+ '014': GemstarReb1200
18
+ '015': FranklinEbookman
19
+ '016': Books24x7
20
+ '017': Digitalowl
21
+ 018: Handheldmed
22
+ 019: Wizeup
23
+ '020': Tk3
24
+ '021': Litraweb
25
+ '022': Mobipocket
26
+ '023': OpenEbook
27
+ '024': TownCompassDataviewer
28
+ '025': Txt
29
+ '026': Exebook
30
+ '027': SonyBbeb
31
+ 028: VitalsourceBookshelf
32
+ 029: Epub
33
+ '030': Myilibrary
34
+ '031': Kindle
35
+ '032': GoogleEdition
36
+ '033': Vook
37
+ '034': Dxreader
38
+ '035': Ebl
39
+ '036': Ebrary
40
+ '037': Isilo
41
+ 038: Plucker
42
+ 039: Vitalbook
43
+ '040': BookAppForIos
44
+ '041': AndroidApp
45
+ '042': OtherApp
46
+ '043': Xps
47
+ '044': Ibook
48
+ '045': Epib
49
+ '046': Scorm
50
+ 098: MultipleFormats
51
+ 099: Unspecified
@@ -0,0 +1,8 @@
1
+ ---
2
+ :codelist:
3
+ '01': BicDiscountGroupCode
4
+ '02': ProprietaryDiscountCode
5
+ '03': Boeksoort
6
+ '04': GermanTermsCode
7
+ '05': ProprietaryCommissionCode
8
+ '06': BicCommissionGroupCode
@@ -0,0 +1,7 @@
1
+ ---
2
+ :codelist:
3
+ '01': Proprietary
4
+ '02': Pnd
5
+ '04': Lccn
6
+ '16': Isni
7
+ '25': Gnd
@@ -0,0 +1,5 @@
1
+ ---
2
+ :codelist:
3
+ '01': Proprietary
4
+ '02': BicSalesOutletIdCode
5
+ '03': OnixSalesOutletIdCode
@@ -0,0 +1,13 @@
1
+ ---
2
+ :codelist:
3
+ '01': Html
4
+ '02': Pdf
5
+ '03': MicrosoftReader
6
+ '04': Rocketbook
7
+ '05': RichTextFormatRtf
8
+ '06': OpenEbookPublicationStructureOebpsFormatStandard
9
+ '07': Xml
10
+ 08: Sgml
11
+ 09: Exe
12
+ '10': Ascii
13
+ '11': MobipocketFormat
@@ -0,0 +1,15 @@
1
+ ---
2
+ :codelist:
3
+ '01': UkOpenMarketEdition
4
+ '02': AirportEdition
5
+ '03': Sonderausgabe
6
+ '04': PocketPaperback
7
+ '05': InternationalEditionUs
8
+ '06': LibraryAudioEdition
9
+ '07': UsOpenMarketEdition
10
+ 08: LivreScolaireDéclaréParLéditeur
11
+ 09: LivreScolaireNonSpécifié
12
+ '10': SupplementToNewspaper
13
+ '11': PrecioLibreTextbook
14
+ '12': NewsOutletEdition
15
+ '13': UsTextbook
@@ -0,0 +1,162 @@
1
+ ---
2
+ :codelist:
3
+ Afak: Afaka
4
+ Arab: Arabic
5
+ Armi: ImperialAramaic
6
+ Armn: Armenian
7
+ Avst: Avestan
8
+ Bali: Balinese
9
+ Bamu: Bamun
10
+ Bass: BassaVah
11
+ Batk: Batak
12
+ Beng: Bengali
13
+ Blis: Blissymbols
14
+ Bopo: Bopomofo
15
+ Brah: Brahmi
16
+ Brai: Braille
17
+ Bugi: Buginese
18
+ Buhd: Buhid
19
+ Cakm: Chakma
20
+ Cans: UnifiedCanadianAboriginalSyllabics
21
+ Cari: Carian
22
+ Cham: Cham
23
+ Cher: Cherokee
24
+ Cirt: Cirth
25
+ Copt: Coptic
26
+ Cprt: Cypriot
27
+ Cyrl: Cyrillic
28
+ Cyrs: CyrillicOldChurchSlavonicVariant
29
+ Deva: DevanagariNagari
30
+ Dsrt: DeseretMormon
31
+ Dupl: DuployanShorthandDuployanStenography
32
+ Egyd: EgyptianDemotic
33
+ Egyh: EgyptianHieratic
34
+ Egyp: EgyptianHieroglyphs
35
+ Elba: Elbasan
36
+ Ethi: EthiopicGeez
37
+ Geok: KhutsuriAsomtavruliAndKhutsuri
38
+ Geor: GeorgianMkhedruli
39
+ Glag: Glagolitic
40
+ Goth: Gothic
41
+ Gran: Grantha
42
+ Grek: Greek
43
+ Gujr: Gujarati
44
+ Guru: Gurmukhi
45
+ Hang: HangulHangŭlHangeul
46
+ Hani: HanHanziKanjiHanja
47
+ Hano: HanunooHanunóo
48
+ Hans: HanSimplifiedVariant
49
+ Hant: HanTraditionalVariant
50
+ Hebr: Hebrew
51
+ Hira: Hiragana
52
+ Hmng: PahawhHmong
53
+ Hrkt: JapaneseSyllabariesAliasForHiraganaKatakana
54
+ Hung: OldHungarian
55
+ Inds: IndusHarappan
56
+ Ital: OldItalicEtruscanOscanEtc
57
+ Java: Javanese
58
+ Jpan: JapaneseSyllabariesAliasForHanHiraganaKatakana
59
+ Jurc: Jurchen
60
+ Kali: KayahLi
61
+ Kana: Katakana
62
+ Khar: Kharoshthi
63
+ Khmr: Khmer
64
+ Khoj: Khojki
65
+ Knda: Kannada
66
+ Kore: KoreanAliasForHangulHan
67
+ Kpel: Kpelle
68
+ Kthi: Kaithi
69
+ Lana: LannaTaiTham
70
+ Laoo: Lao
71
+ Latf: LatinFrakturVariant
72
+ Latg: LatinGaelicVariant
73
+ Latn: Latin
74
+ Lepc: LepchaRóng
75
+ Limb: Limbu
76
+ Lina: LinearA
77
+ Linb: LinearB
78
+ Lisu: LisuFraser
79
+ Loma: Loma
80
+ Lyci: Lycian
81
+ Lydi: Lydian
82
+ Mand: MandaicMandaean
83
+ Mani: Manichaean
84
+ Maya: MayanHieroglyphs
85
+ Mend: Mende
86
+ Merc: MeroiticCursive
87
+ Mero: MeroiticHieroglyphs
88
+ Mlym: Malayalam
89
+ Mong: Mongolian
90
+ Moon: MoonMoonCodeMoonScriptMoonType
91
+ Mroo: MroMru
92
+ Mtei: MeiteiMayekMeitheiMeetei
93
+ Mymr: MyanmarBurmese
94
+ Narb: OldNorthArabianAncientNorthArabian
95
+ Nbat: Nabatean
96
+ Nkgb: NakhiGebaNakhi²ggŏ¹bawNaxiGeba
97
+ Nkoo: Nko
98
+ Nshu: Nüshu
99
+ Ogam: Ogham
100
+ Olck: OlChikiOlCemetOlSantali
101
+ Orkh: OldTurkicOrkhonRunic
102
+ Orya: Oriya
103
+ Osma: Osmanya
104
+ Palm: Palmyrene
105
+ Perm: OldPermic
106
+ Phag: Phagspa
107
+ Phli: InscriptionalPahlavi
108
+ Phlp: PsalterPahlavi
109
+ Phlv: BookPahlavi
110
+ Phnx: Phoenician
111
+ Plrd: MiaoPollard
112
+ Prti: InscriptionalParthian
113
+ Qaaa: ReservedForPrivateUseStart
114
+ Qabx: ReservedForPrivateUseEnd
115
+ Rjng: RejangRedjangKaganga
116
+ Roro: Rongorongo
117
+ Runr: Runic
118
+ Samr: Samaritan
119
+ Sara: Sarati
120
+ Sarb: OldSouthArabian
121
+ Saur: Saurashtra
122
+ Sgnw: Signwriting
123
+ Shaw: ShavianShaw
124
+ Shrd: SharadaŚāradā
125
+ Sind: KhudawadiSindhi
126
+ Sinh: Sinhala
127
+ Sora: SoraSompeng
128
+ Sund: Sundanese
129
+ Sylo: SylotiNagri
130
+ Syrc: Syriac
131
+ Syre: SyriacEstrangeloVariant
132
+ Syrj: SyriacWesternVariant
133
+ Syrn: SyriacEasternVariant
134
+ Tagb: Tagbanwa
135
+ Takr: TakriṬākrīṬāṅkrī
136
+ Tale: TaiLe
137
+ Talu: NewTaiLue
138
+ Taml: Tamil
139
+ Tang: Tangut
140
+ Tavt: TaiViet
141
+ Telu: Telugu
142
+ Teng: Tengwar
143
+ Tfng: TifinaghBerber
144
+ Tglg: TagalogBaybayinAlibata
145
+ Thaa: Thaana
146
+ Thai: Thai
147
+ Tibt: Tibetan
148
+ Tirh: Tiruta
149
+ Ugar: Ugaritic
150
+ Vaii: Vai
151
+ Visp: VisibleSpeech
152
+ Wara: WarangCitiVarangKshiti
153
+ Wole: Woleai
154
+ Xpeo: OldPersian
155
+ Xsux: CuneiformSumeroakkadian
156
+ Yiii: Yi
157
+ Zinh: CodeForInheritedScript
158
+ Zmth: MathematicalNotation
159
+ Zsym: Symbols
160
+ Zxxx: CodeForUnwrittenDocuments
161
+ Zyyy: CodeForUndeterminedScript
162
+ Zzzz: CodeForUncodedScript
@@ -0,0 +1,10 @@
1
+ ---
2
+ :codelist:
3
+ '01': Proprietary
4
+ '02': Issn
5
+ '03': GermanNationalBibliographySeriesId
6
+ '04': GermanBooksInPrintSeriesId
7
+ '05': ElectreSeriesId
8
+ '06': Doi
9
+ '15': Isbn13
10
+ '22': Urn
@@ -0,0 +1,8 @@
1
+ ---
2
+ :codelist:
3
+ SFS4900: FinnishStandardSfs4900
4
+ SFS5807: FinnishStandardSfs5807
5
+ SFS5755: FinnishStandardSfs5755
6
+ SFS3602: FinnishStandardSfs5824
7
+ ISO3602: Iso3602
8
+ ISO7098: Iso7098
@@ -0,0 +1,102 @@
1
+ ---
2
+ :codelist:
3
+ ACM: ACMoore
4
+ AAP: Aandp
5
+ ALB: Albertsons
6
+ AMZ: Amazon
7
+ ANR: AngusAndRobertson
8
+ ANB: Anobii
9
+ APC: Apple
10
+ ASD: Asda
11
+ AUD: Audible
12
+ BDL: BDalton
13
+ BNO: BarnesAndNoble
14
+ BBB: BedBathAndBeyond
15
+ BST: BestBuy
16
+ BIL: Bilbary
17
+ BJW: BjsWholesaleClub
18
+ BLK: Blackwells
19
+ BCA: BookClubAssociates
20
+ BSH: Bookish
21
+ BKP: Bookpeople
22
+ BKM: Booksamillion
23
+ BRD: Borders
24
+ BRB: BordersbooksEtc
25
+ BRT: BritishBookshops
26
+ CDL: CasaDelLibro
27
+ CHD: Christianbookcom
28
+ CST: Costco
29
+ CRB: CrateAndBarrel
30
+ CVS: CvsDrugStores
31
+ DSG: DicksSportingGoods
32
+ DYM: Dymocks
33
+ ELC: EarlyLearningCentre
34
+ ESN: Eason
35
+ EBC: EbooksCorp
36
+ ECH: Echristian
37
+ ECI: ElCorteInglés
38
+ ELE: Electre
39
+ ELB: Elibse
40
+ EMP: Empik
41
+ ENH: EnglishHeritage
42
+ FDB: Feedbooks
43
+ FNC: Fnac
44
+ FRY: FrysElectronics
45
+ GMS: Gamestop
46
+ GOO: GoogleBooks
47
+ GOS: BlinkboxFormerlyGospokenmobcast
48
+ HST: HastingsEntertainment
49
+ HMV: Hmv
50
+ HMD: HomeDepot
51
+ IND: Indigochapters
52
+ IMM: Immateriel.fr
53
+ JSM: JohnSmithAndSon
54
+ KMT: Kmart
55
+ KNB: Knfbblio
56
+ KNO: KnoInc
57
+ KBO: Kobo
58
+ KOO: Koorong
59
+ KRG: Kroger
60
+ LWE: Lowes
61
+ MKS: MarksAndSpencer
62
+ MAT: Matras
63
+ MMS: MediaMarktsaturn
64
+ MCR: Microcenter
65
+ MRR: Morrisons
66
+ MTC: Mothercare
67
+ MYB: Myboox
68
+ NTR: NationalTrust
69
+ NUM: Numilog
70
+ OFD: OfficeDepot
71
+ OFM: OfficeMax
72
+ OLF: Olf
73
+ PST: PastTimes
74
+ PTS: PetSmart
75
+ PTC: Petco
76
+ PLY: Playcom
77
+ PTB: PotteryBarn
78
+ RDB: Readbooks
79
+ RCL: Readcloud
80
+ RST: RestorationHardware
81
+ RET: Rethink
82
+ RTZ: RitzCamera
83
+ SFW: Safeway
84
+ SNS: Sainsburys
85
+ SLF: Selfridges
86
+ SNY: Sony
87
+ STP: Staples
88
+ TEA: TheEbookAlternative
89
+ TRG: Target
90
+ TES: Tesco
91
+ TSR: ToysRUs
92
+ TSO: TsoTheStationeryOffice
93
+ VRG: VirginMegastores
94
+ WHS: WHSmith
95
+ WTR: Waitrose
96
+ WLM: Walmart
97
+ WST: Waterstones
98
+ WHT: Whitcouls
99
+ WLS: WilliamsSonoma
100
+ WLW: Woolworths
101
+ ZVV: Zavvi
102
+ ZZZ: Other
@@ -0,0 +1,6 @@
1
+ ---
2
+ :codelist:
3
+ '00': Undefined
4
+ '01': SentenceCase
5
+ '02': TitleCase
6
+ '03': AllCapitals
@@ -0,0 +1,9 @@
1
+ ---
2
+ :codelist:
3
+ '01': WarningChokingHazardSmallPartsNotForChildrenUnder3Yrs
4
+ '02': WarningChokingHazardThisToyIsASmallBallNotForChildrenUnder3Yrs
5
+ '03': WarningChokingHazardToyContainsASmallBallNotForChildrenUnder3Yrs
6
+ '04': WarningChokingHazardChildrenUnder8YrsCanChokeOrSuffocateOnUninflatedOrBrokenBalloonsAdultSupervisionRequiredKeepUninflatedBalloonsFromChildrenDiscardBrokenBalloonsAtOnce
7
+ '05': WarningChokingHazardThisToyIsAMarbleNotForChildrenUnder3Yrs
8
+ '06': WarningChokingHazardToyContainsAMarbleNotForChildrenUnder3Yrs
9
+ '07': NoChokingHazardWarningNecessary