cacofonix 0.10.0

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 (294) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +2 -0
  3. data/.rvmrc +1 -0
  4. data/.travis.yml +10 -0
  5. data/CHANGELOG.md +205 -0
  6. data/CODE_OF_CONDUCT.md +74 -0
  7. data/Gemfile +5 -0
  8. data/LICENSE.txt +22 -0
  9. data/README.md +76 -0
  10. data/Rakefile +6 -0
  11. data/TODO +14 -0
  12. data/bin/onix_extract_codelists +41 -0
  13. data/cacofonix.gemspec +39 -0
  14. data/data/9780194351898.xml +74 -0
  15. data/data/Ashgate Other.xml +382679 -0
  16. data/data/Bookwise_July_2008.xml +21611 -0
  17. data/data/Peribo Onix 0408.xml +17051 -0
  18. data/data/aau.xml +96 -0
  19. data/data/audience_range.xml +9 -0
  20. data/data/contributor.xml +6 -0
  21. data/data/control_chars.xml +74 -0
  22. data/data/entities.xml +78 -0
  23. data/data/extra_entities.xml +65 -0
  24. data/data/header.xml +21 -0
  25. data/data/header_invalid_sentdate.xml +21 -0
  26. data/data/hlasep08.xml +24519 -0
  27. data/data/imprint.xml +5 -0
  28. data/data/iso_8859_1.xml +58 -0
  29. data/data/jul.xml +24783 -0
  30. data/data/language.xml +7 -0
  31. data/data/market_representation.xml +11 -0
  32. data/data/measure.xml +6 -0
  33. data/data/media_file.xml +6 -0
  34. data/data/no_encoding.xml +78 -0
  35. data/data/no_xml_declaration.xml +95 -0
  36. data/data/other_text.xml +5 -0
  37. data/data/price.xml +5 -0
  38. data/data/product.xml +79 -0
  39. data/data/product_identifier.xml +5 -0
  40. data/data/product_invalid_pubdate.xml +42 -0
  41. data/data/publisher.xml +5 -0
  42. data/data/rba_FANT.xml +23 -0
  43. data/data/reference_with_release_attrib.xml +74 -0
  44. data/data/sales_restriction.xml +4 -0
  45. data/data/sales_rights.xml +35 -0
  46. data/data/sender_identifier.xml +5 -0
  47. data/data/series.xml +5 -0
  48. data/data/series_identifier.xml +6 -0
  49. data/data/short_tags.xml +191 -0
  50. data/data/short_tags_ivp.xml +231 -0
  51. data/data/sl_product.xml +81 -0
  52. data/data/stock.xml +5 -0
  53. data/data/subject.xml +6 -0
  54. data/data/supply_detail.xml +18 -0
  55. data/data/title.xml +6 -0
  56. data/data/two_products.xml +114 -0
  57. data/data/usd.xml +175 -0
  58. data/data/utf_16.xml +0 -0
  59. data/data/website.xml +6 -0
  60. data/examples/reader.rb +25 -0
  61. data/examples/reader_apa.rb +22 -0
  62. data/examples/writer.rb +13 -0
  63. data/examples/writer_apa.rb +38 -0
  64. data/lib/cacofonix.rb +151 -0
  65. data/lib/cacofonix/codelists/001.rb +16 -0
  66. data/lib/cacofonix/codelists/002.rb +11 -0
  67. data/lib/cacofonix/codelists/003.rb +13 -0
  68. data/lib/cacofonix/codelists/005.rb +20 -0
  69. data/lib/cacofonix/codelists/006.rb +82 -0
  70. data/lib/cacofonix/codelists/007.rb +129 -0
  71. data/lib/cacofonix/codelists/008.rb +13 -0
  72. data/lib/cacofonix/codelists/009.rb +13 -0
  73. data/lib/cacofonix/codelists/010.rb +52 -0
  74. data/lib/cacofonix/codelists/011.rb +17 -0
  75. data/lib/cacofonix/codelists/012.rb +17 -0
  76. data/lib/cacofonix/codelists/013.rb +13 -0
  77. data/lib/cacofonix/codelists/014.rb +10 -0
  78. data/lib/cacofonix/codelists/015.rb +19 -0
  79. data/lib/cacofonix/codelists/016.rb +12 -0
  80. data/lib/cacofonix/codelists/017.rb +96 -0
  81. data/lib/cacofonix/codelists/018.rb +11 -0
  82. data/lib/cacofonix/codelists/019.rb +13 -0
  83. data/lib/cacofonix/codelists/020.rb +7 -0
  84. data/lib/cacofonix/codelists/021.rb +39 -0
  85. data/lib/cacofonix/codelists/022.rb +15 -0
  86. data/lib/cacofonix/codelists/023.rb +19 -0
  87. data/lib/cacofonix/codelists/024.rb +17 -0
  88. data/lib/cacofonix/codelists/025.rb +35 -0
  89. data/lib/cacofonix/codelists/026.rb +86 -0
  90. data/lib/cacofonix/codelists/027.rb +90 -0
  91. data/lib/cacofonix/codelists/028.rb +14 -0
  92. data/lib/cacofonix/codelists/029.rb +25 -0
  93. data/lib/cacofonix/codelists/030.rb +22 -0
  94. data/lib/cacofonix/codelists/031.rb +9 -0
  95. data/lib/cacofonix/codelists/032.rb +8 -0
  96. data/lib/cacofonix/codelists/033.rb +43 -0
  97. data/lib/cacofonix/codelists/034.rb +21 -0
  98. data/lib/cacofonix/codelists/035.rb +12 -0
  99. data/lib/cacofonix/codelists/036.rb +9 -0
  100. data/lib/cacofonix/codelists/037.rb +12 -0
  101. data/lib/cacofonix/codelists/038.rb +43 -0
  102. data/lib/cacofonix/codelists/039.rb +14 -0
  103. data/lib/cacofonix/codelists/040.rb +12 -0
  104. data/lib/cacofonix/codelists/041.rb +12 -0
  105. data/lib/cacofonix/codelists/042.rb +22 -0
  106. data/lib/cacofonix/codelists/043.rb +12 -0
  107. data/lib/cacofonix/codelists/044.rb +22 -0
  108. data/lib/cacofonix/codelists/045.rb +19 -0
  109. data/lib/cacofonix/codelists/046.rb +15 -0
  110. data/lib/cacofonix/codelists/047.rb +10 -0
  111. data/lib/cacofonix/codelists/048.rb +17 -0
  112. data/lib/cacofonix/codelists/049.rb +91 -0
  113. data/lib/cacofonix/codelists/050.rb +14 -0
  114. data/lib/cacofonix/codelists/051.rb +36 -0
  115. data/lib/cacofonix/codelists/052.rb +7 -0
  116. data/lib/cacofonix/codelists/053.rb +10 -0
  117. data/lib/cacofonix/codelists/054.rb +29 -0
  118. data/lib/cacofonix/codelists/055.rb +23 -0
  119. data/lib/cacofonix/codelists/056.rb +8 -0
  120. data/lib/cacofonix/codelists/057.rb +11 -0
  121. data/lib/cacofonix/codelists/058.rb +29 -0
  122. data/lib/cacofonix/codelists/059.rb +13 -0
  123. data/lib/cacofonix/codelists/060.rb +8 -0
  124. data/lib/cacofonix/codelists/061.rb +9 -0
  125. data/lib/cacofonix/codelists/062.rb +11 -0
  126. data/lib/cacofonix/codelists/063.rb +7 -0
  127. data/lib/cacofonix/codelists/064.rb +19 -0
  128. data/lib/cacofonix/codelists/065.rb +34 -0
  129. data/lib/cacofonix/codelists/066.rb +10 -0
  130. data/lib/cacofonix/codelists/067.rb +8 -0
  131. data/lib/cacofonix/codelists/068.rb +22 -0
  132. data/lib/cacofonix/codelists/069.rb +10 -0
  133. data/lib/cacofonix/codelists/070.rb +8 -0
  134. data/lib/cacofonix/codelists/071.rb +16 -0
  135. data/lib/cacofonix/codelists/072.rb +13 -0
  136. data/lib/cacofonix/codelists/073.rb +42 -0
  137. data/lib/cacofonix/codelists/074.rb +495 -0
  138. data/lib/cacofonix/codelists/075.rb +8 -0
  139. data/lib/cacofonix/codelists/076.rb +18 -0
  140. data/lib/cacofonix/codelists/077.rb +25 -0
  141. data/lib/cacofonix/codelists/078.rb +173 -0
  142. data/lib/cacofonix/codelists/079.rb +25 -0
  143. data/lib/cacofonix/codelists/080.rb +26 -0
  144. data/lib/cacofonix/codelists/081.rb +45 -0
  145. data/lib/cacofonix/codelists/082.rb +23 -0
  146. data/lib/cacofonix/codelists/083.rb +74 -0
  147. data/lib/cacofonix/codelists/084.rb +16 -0
  148. data/lib/cacofonix/codelists/085.rb +29 -0
  149. data/lib/cacofonix/codelists/086.rb +11 -0
  150. data/lib/cacofonix/codelists/087.rb +12 -0
  151. data/lib/cacofonix/codelists/088.rb +7 -0
  152. data/lib/cacofonix/codelists/089.rb +7 -0
  153. data/lib/cacofonix/codelists/090.rb +17 -0
  154. data/lib/cacofonix/codelists/091.rb +257 -0
  155. data/lib/cacofonix/codelists/092.rb +14 -0
  156. data/lib/cacofonix/codelists/093.rb +19 -0
  157. data/lib/cacofonix/codelists/094.rb +9 -0
  158. data/lib/cacofonix/codelists/095.rb +9 -0
  159. data/lib/cacofonix/codelists/096.rb +191 -0
  160. data/lib/cacofonix/codelists/097.rb +7 -0
  161. data/lib/cacofonix/codelists/098.rb +27 -0
  162. data/lib/cacofonix/codelists/099.rb +30 -0
  163. data/lib/cacofonix/codelists/100.rb +12 -0
  164. data/lib/cacofonix/codelists/101.rb +8 -0
  165. data/lib/cacofonix/codelists/102.rb +9 -0
  166. data/lib/cacofonix/codelists/121.rb +164 -0
  167. data/lib/cacofonix/codelists/138.rb +12 -0
  168. data/lib/cacofonix/codelists/139.rb +76 -0
  169. data/lib/cacofonix/codelists/140.rb +13 -0
  170. data/lib/cacofonix/codelists/141.rb +16 -0
  171. data/lib/cacofonix/codelists/142.rb +18 -0
  172. data/lib/cacofonix/codelists/143.rb +13 -0
  173. data/lib/cacofonix/codelists/144.rb +12 -0
  174. data/lib/cacofonix/codelists/145.rb +13 -0
  175. data/lib/cacofonix/codelists/146.rb +9 -0
  176. data/lib/cacofonix/codelists/147.rb +16 -0
  177. data/lib/cacofonix/codelists/148.rb +9 -0
  178. data/lib/cacofonix/codelists/149.rb +10 -0
  179. data/lib/cacofonix/codelists/150.rb +130 -0
  180. data/lib/cacofonix/codelists/151.rb +13 -0
  181. data/lib/cacofonix/codelists/152.rb +8 -0
  182. data/lib/cacofonix/codelists/153.rb +20 -0
  183. data/lib/cacofonix/codelists/154.rb +15 -0
  184. data/lib/cacofonix/codelists/155.rb +11 -0
  185. data/lib/cacofonix/codelists/156.rb +10 -0
  186. data/lib/cacofonix/codelists/157.rb +10 -0
  187. data/lib/cacofonix/codelists/158.rb +32 -0
  188. data/lib/cacofonix/codelists/159.rb +12 -0
  189. data/lib/cacofonix/codelists/160.rb +10 -0
  190. data/lib/cacofonix/codelists/161.rb +9 -0
  191. data/lib/cacofonix/codelists/162.rb +12 -0
  192. data/lib/cacofonix/codelists/163.rb +17 -0
  193. data/lib/cacofonix/codelists/164.rb +11 -0
  194. data/lib/cacofonix/codelists/165.rb +9 -0
  195. data/lib/cacofonix/codelists/166.rb +9 -0
  196. data/lib/cacofonix/codelists/167.rb +9 -0
  197. data/lib/cacofonix/codelists/168.rb +8 -0
  198. data/lib/cacofonix/codelists/169.rb +9 -0
  199. data/lib/cacofonix/codelists/170.rb +7 -0
  200. data/lib/cacofonix/codelists/171.rb +8 -0
  201. data/lib/cacofonix/codelists/172.rb +7 -0
  202. data/lib/cacofonix/codelists/173.rb +8 -0
  203. data/lib/cacofonix/codelists/174.rb +8 -0
  204. data/lib/cacofonix/codelists/175.rb +206 -0
  205. data/lib/cacofonix/codelists/176.rb +20 -0
  206. data/lib/cacofonix/codelists/177.rb +8 -0
  207. data/lib/cacofonix/codelists/178.rb +24 -0
  208. data/lib/cacofonix/codelists/179.rb +7 -0
  209. data/lib/cacofonix/codelists/184.rb +11 -0
  210. data/lib/cacofonix/core/code.rb +106 -0
  211. data/lib/cacofonix/core/element.rb +275 -0
  212. data/lib/cacofonix/core/header.rb +45 -0
  213. data/lib/cacofonix/core/lists.rb +108 -0
  214. data/lib/cacofonix/core/reader.rb +166 -0
  215. data/lib/cacofonix/core/writer.rb +123 -0
  216. data/lib/cacofonix/elements/addressee_identifier.rb +6 -0
  217. data/lib/cacofonix/elements/agent_identifier.rb +6 -0
  218. data/lib/cacofonix/elements/audience.rb +8 -0
  219. data/lib/cacofonix/elements/audience_range.rb +15 -0
  220. data/lib/cacofonix/elements/batch_bonus.rb +7 -0
  221. data/lib/cacofonix/elements/bible.rb +12 -0
  222. data/lib/cacofonix/elements/complexity.rb +7 -0
  223. data/lib/cacofonix/elements/conference.rb +14 -0
  224. data/lib/cacofonix/elements/conference_sponsor.rb +8 -0
  225. data/lib/cacofonix/elements/conference_sponsor_identifier.rb +6 -0
  226. data/lib/cacofonix/elements/contained_item.rb +6 -0
  227. data/lib/cacofonix/elements/content_item.rb +21 -0
  228. data/lib/cacofonix/elements/contributor.rb +19 -0
  229. data/lib/cacofonix/elements/copyright_owner.rb +8 -0
  230. data/lib/cacofonix/elements/copyright_owner_identifier.rb +6 -0
  231. data/lib/cacofonix/elements/copyright_statement.rb +7 -0
  232. data/lib/cacofonix/elements/discount_coded.rb +8 -0
  233. data/lib/cacofonix/elements/extent.rb +8 -0
  234. data/lib/cacofonix/elements/identifier.rb +7 -0
  235. data/lib/cacofonix/elements/illustrations.rb +8 -0
  236. data/lib/cacofonix/elements/imprint.rb +9 -0
  237. data/lib/cacofonix/elements/language.rb +8 -0
  238. data/lib/cacofonix/elements/location_identifier.rb +8 -0
  239. data/lib/cacofonix/elements/main_subject.rb +9 -0
  240. data/lib/cacofonix/elements/market_date.rb +8 -0
  241. data/lib/cacofonix/elements/market_representation.rb +18 -0
  242. data/lib/cacofonix/elements/measure.rb +8 -0
  243. data/lib/cacofonix/elements/media_file.rb +16 -0
  244. data/lib/cacofonix/elements/name.rb +6 -0
  245. data/lib/cacofonix/elements/name_base.rb +17 -0
  246. data/lib/cacofonix/elements/new_supplier.rb +12 -0
  247. data/lib/cacofonix/elements/not_for_sale.rb +13 -0
  248. data/lib/cacofonix/elements/on_order_detail.rb +7 -0
  249. data/lib/cacofonix/elements/other_text.rb +17 -0
  250. data/lib/cacofonix/elements/page_run.rb +7 -0
  251. data/lib/cacofonix/elements/person_date.rb +8 -0
  252. data/lib/cacofonix/elements/person_name_identifier.rb +6 -0
  253. data/lib/cacofonix/elements/price.rb +46 -0
  254. data/lib/cacofonix/elements/prize.rb +10 -0
  255. data/lib/cacofonix/elements/product.rb +155 -0
  256. data/lib/cacofonix/elements/product_base.rb +61 -0
  257. data/lib/cacofonix/elements/product_classification.rb +8 -0
  258. data/lib/cacofonix/elements/product_form_feature.rb +8 -0
  259. data/lib/cacofonix/elements/product_identifier.rb +6 -0
  260. data/lib/cacofonix/elements/professional_affiliation.rb +7 -0
  261. data/lib/cacofonix/elements/publisher.rb +11 -0
  262. data/lib/cacofonix/elements/reissue.rb +9 -0
  263. data/lib/cacofonix/elements/related_product.rb +6 -0
  264. data/lib/cacofonix/elements/religious_text.rb +8 -0
  265. data/lib/cacofonix/elements/religious_text_feature.rb +8 -0
  266. data/lib/cacofonix/elements/sales_outlet.rb +7 -0
  267. data/lib/cacofonix/elements/sales_outlet_identifier.rb +6 -0
  268. data/lib/cacofonix/elements/sales_restriction.rb +7 -0
  269. data/lib/cacofonix/elements/sales_rights.rb +13 -0
  270. data/lib/cacofonix/elements/sender_identifier.rb +6 -0
  271. data/lib/cacofonix/elements/series.rb +11 -0
  272. data/lib/cacofonix/elements/series_identifier.rb +6 -0
  273. data/lib/cacofonix/elements/set.rb +13 -0
  274. data/lib/cacofonix/elements/stock.rb +16 -0
  275. data/lib/cacofonix/elements/stock_quantity_coded.rb +8 -0
  276. data/lib/cacofonix/elements/subject.rb +13 -0
  277. data/lib/cacofonix/elements/supplier_identifier.rb +6 -0
  278. data/lib/cacofonix/elements/supply_detail.rb +37 -0
  279. data/lib/cacofonix/elements/text_item.rb +11 -0
  280. data/lib/cacofonix/elements/text_item_identifier.rb +6 -0
  281. data/lib/cacofonix/elements/title.rb +11 -0
  282. data/lib/cacofonix/elements/website.rb +8 -0
  283. data/lib/cacofonix/elements/work_identifier.rb +6 -0
  284. data/lib/cacofonix/utils/code_list_extractor.rb +112 -0
  285. data/lib/cacofonix/utils/normaliser.rb +125 -0
  286. data/lib/cacofonix/version.rb +5 -0
  287. data/lib/cacofonix/wrappers/apa_product.rb +748 -0
  288. data/lib/cacofonix/wrappers/simple_product.rb +49 -0
  289. data/support/entities.txt +1499 -0
  290. data/support/extract.rb +25 -0
  291. data/support/switch-onix-2.1-short-to-reference.xsl +24 -0
  292. data/support/switch-onix-tagnames-1.1.xsl +25 -0
  293. data/support/switch-onix-tagnames-2.0.xsl +37 -0
  294. metadata +438 -0
@@ -0,0 +1,22 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../lib')
2
+
3
+ require 'cacofonix'
4
+
5
+ #reader = Cacofonix::Reader.new(File.join(File.dirname(__FILE__),"..","data","Bookwise_July_2008.xml"), ::Cacofonix::APAProduct)
6
+ #reader = Cacofonix::Reader.new(File.join(File.dirname(__FILE__),"..","data","Ashgate Other.xml"), ::Cacofonix::APAProduct)
7
+ #reader = Cacofonix::Reader.new(File.join(File.dirname(__FILE__),"..","data","9780194351898.xml"), ::Cacofonix::APAProduct)
8
+ reader = Cacofonix::Reader.new(File.join(File.dirname(__FILE__),"..","data","jul.xml"), ::Cacofonix::APAProduct)
9
+ #reader = Cacofonix::Reader.new(File.join(File.dirname(__FILE__),"..","data","rba_FANT.xml"))
10
+ counter = 0
11
+
12
+ # display header info
13
+ puts reader.header.from_company
14
+
15
+ reader.each do |item|
16
+ puts "#{item.record_reference} - #{item.cover_url}"
17
+ puts item.title
18
+ puts
19
+ counter += 1
20
+ end
21
+
22
+ puts "total of ##{counter} products"
@@ -0,0 +1,13 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../lib')
2
+
3
+ require 'cacofonix'
4
+
5
+ File.open('output.xml', "w") do |output|
6
+ header = Cacofonix::Header.new
7
+ header.from_company = "Sample Company"
8
+ header.from_person = "James"
9
+
10
+ writer = Cacofonix::Writer.new(output, header)
11
+
12
+ writer.end_document
13
+ end
@@ -0,0 +1,38 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../lib')
2
+
3
+ require 'cacofonix'
4
+
5
+ File.open('output.xml', "w") do |output|
6
+ header = Cacofonix::Header.new
7
+ header.from_company = "Sample Company"
8
+ header.from_person = "James"
9
+ header.sent_date = Time.now
10
+
11
+ writer = Cacofonix::Writer.new(output, header)
12
+
13
+ product = Cacofonix::APAProduct.new
14
+ product.notification_type = 2
15
+ product.record_reference = 1
16
+ product.isbn10 = "1844836902"
17
+ product.isbn13 = "9781844836901"
18
+ product.title = "1001 Pearls of Bible Wisdom"
19
+ product.subtitle = "Boo"
20
+ product.supplier_website = "http://www.rainbowbooks.com.au/title/show/9781844836901"
21
+ product.add_contributor("Healy, James")
22
+ product.imprint = "Malhame"
23
+ product.publisher = "Dover"
24
+ product.sales_restriction_type = 0
25
+ product.supplier_name = "Rainbow Book Agencies"
26
+ product.supplier_phone = "+61 3 9481 6611"
27
+ product.supplier_fax = "+61 3 9481 2371"
28
+ product.supplier_email = "rba@rainbowbooks.com.au"
29
+ product.supply_country = "AU"
30
+ product.product_availability = 20
31
+ #product.on_hand = 10
32
+ #product.on_order = 20
33
+ #product.rrp_inc_sales_tax = 29.95
34
+
35
+ writer << product
36
+
37
+ writer.end_document
38
+ end
@@ -0,0 +1,151 @@
1
+ # coding: utf-8
2
+
3
+ require 'bigdecimal'
4
+ require 'cgi'
5
+ require 'singleton'
6
+ require 'roxml'
7
+
8
+ module Cacofonix
9
+ class Formatters
10
+ def self.decimal
11
+ lambda do |val|
12
+ if val.nil?
13
+ nil
14
+ elsif val.kind_of?(BigDecimal)
15
+ val.to_s("F")
16
+ else
17
+ val.to_s
18
+ end
19
+ end
20
+ end
21
+
22
+ def self.yyyymmdd
23
+ lambda do |val|
24
+ if val.nil? || !val.respond_to?(:strftime)
25
+ nil
26
+ else
27
+ val.strftime("%Y%m%d")
28
+ end
29
+ end
30
+ end
31
+
32
+ def self.two_digit
33
+ lambda do |val|
34
+ if val.nil?
35
+ nil
36
+ elsif val < 10
37
+ "0#{val}"
38
+ elsif val > 99
39
+ val.to_s[-2,2]
40
+ else
41
+ val.to_s
42
+ end
43
+ end
44
+ end
45
+
46
+ def self.space_separated
47
+ lambda { |val| [val.collect(&:to_s).join(" ")] if val }
48
+ end
49
+
50
+ def self.boolean
51
+ lambda { |val| "" if val }
52
+ end
53
+ end
54
+ end
55
+
56
+
57
+ # Ordering is important here; classes need to be defined before any
58
+ # other class can use them.
59
+ [
60
+ # core files
61
+ "core/element",
62
+ "core/lists",
63
+ "core/code",
64
+
65
+ # identifier mappings
66
+ "elements/identifier",
67
+ "elements/sender_identifier",
68
+ "elements/addressee_identifier",
69
+ "elements/person_name_identifier",
70
+ "elements/product_identifier",
71
+ "elements/series_identifier",
72
+ "elements/work_identifier",
73
+ "elements/agent_identifier",
74
+ "elements/conference_sponsor_identifier",
75
+ "elements/copyright_owner_identifier",
76
+ "elements/location_identifier",
77
+ "elements/sales_outlet_identifier",
78
+ "elements/supplier_identifier",
79
+ "elements/text_item_identifier",
80
+
81
+ # other element mappings
82
+ "elements/name_base",
83
+ "elements/name",
84
+ "elements/person_date",
85
+ "elements/professional_affiliation",
86
+ "elements/product_form_feature",
87
+ "elements/product_classification",
88
+ "elements/audience",
89
+ "elements/batch_bonus",
90
+ "elements/complexity",
91
+ "elements/copyright_owner",
92
+ "elements/copyright_statement",
93
+ "elements/discount_coded",
94
+ "elements/main_subject",
95
+ "elements/market_date",
96
+ "elements/new_supplier",
97
+ "elements/on_order_detail",
98
+ "elements/page_run",
99
+ "elements/prize",
100
+ "elements/sales_outlet",
101
+ "elements/stock_quantity_coded",
102
+ "elements/text_item",
103
+ "elements/title",
104
+ "elements/website",
105
+ "elements/contributor",
106
+ "elements/series",
107
+ "elements/set",
108
+ "elements/conference_sponsor",
109
+ "elements/conference",
110
+ "elements/extent",
111
+ "elements/illustrations",
112
+ "elements/language",
113
+ "elements/subject",
114
+ "elements/audience_range",
115
+ "elements/imprint",
116
+ "elements/publisher",
117
+ "elements/other_text",
118
+ "elements/media_file",
119
+ "elements/sales_restriction",
120
+ "elements/sales_rights",
121
+ "elements/not_for_sale",
122
+ "elements/stock",
123
+ "elements/price",
124
+ "elements/reissue",
125
+ "elements/supply_detail",
126
+ "elements/market_representation",
127
+ "elements/measure",
128
+ "elements/bible",
129
+ "elements/religious_text_feature",
130
+ "elements/religious_text",
131
+ "elements/content_item",
132
+ "elements/product_base",
133
+ "elements/contained_item",
134
+ "elements/related_product",
135
+ "elements/product",
136
+
137
+ # more core files
138
+ "core/header",
139
+ "core/reader",
140
+ "core/writer",
141
+
142
+ # product wrappers
143
+ "wrappers/simple_product",
144
+ "wrappers/apa_product",
145
+
146
+ # utilities
147
+ "utils/normaliser",
148
+ "utils/code_list_extractor"
149
+ ].each do |req|
150
+ require File.join("cacofonix", req)
151
+ end
@@ -0,0 +1,16 @@
1
+ # coding: utf-8
2
+
3
+ module Cacofonix; module CodeLists
4
+ LIST_1 = {
5
+ "01" => "Early notification",
6
+ "02" => "Advance notification (confirmed)",
7
+ "03" => "Notification confirmed on publication",
8
+ "04" => "Update (partial)",
9
+ "05" => "Delete",
10
+ "08" => "Notice of sale",
11
+ "09" => "Notice of acquisition",
12
+ "12" => "Update - SupplyDetail only",
13
+ "13" => "Update - MarketRepresentation only",
14
+ "14" => "Update - SupplyDetail and MarketRepresentation"
15
+ }
16
+ end; end
@@ -0,0 +1,11 @@
1
+ # coding: utf-8
2
+
3
+ module Cacofonix; module CodeLists
4
+ LIST_2 = {
5
+ "00" => "Single-item retail product",
6
+ "10" => "Multiple-item retail product",
7
+ "11" => "Multiple-item collection, retailed as separate parts",
8
+ "20" => "Trade-only product",
9
+ "30" => "Multiple-item trade pack"
10
+ }
11
+ end; end
@@ -0,0 +1,13 @@
1
+ # coding: utf-8
2
+
3
+ module Cacofonix; module CodeLists
4
+ LIST_3 = {
5
+ "00" => "Unspecified",
6
+ "01" => "Publisher",
7
+ "02" => "Publisher's distributor",
8
+ "03" => "Wholesaler",
9
+ "04" => "Bibliographic agency",
10
+ "05" => "Library bookseller",
11
+ "06" => "Publisher's sales agent"
12
+ }
13
+ end; end
@@ -0,0 +1,20 @@
1
+ # coding: utf-8
2
+
3
+ module Cacofonix; module CodeLists
4
+ LIST_5 = {
5
+ "01" => "Proprietary",
6
+ "02" => "ISBN-10",
7
+ "03" => "GTIN-13",
8
+ "04" => "UPC",
9
+ "05" => "ISMN-10",
10
+ "06" => "DOI",
11
+ "13" => "LCCN",
12
+ "14" => "GTIN-14",
13
+ "15" => "ISBN-13",
14
+ "17" => "Legal deposit number",
15
+ "22" => "URN",
16
+ "23" => "OCLC number",
17
+ "24" => "Co-publisher's ISBN-13",
18
+ "25" => "ISMN-13"
19
+ }
20
+ end; end
@@ -0,0 +1,82 @@
1
+ # coding: utf-8
2
+
3
+ module Cacofonix; module CodeLists
4
+ LIST_6 = {
5
+ "00" => "Not barcoded",
6
+ "01" => "Barcoded, scheme unspecified",
7
+ "02" => "EAN13",
8
+ "03" => "EAN13+5 (US dollar price encoded)",
9
+ "04" => "UPC12",
10
+ "05" => "UPC12+5",
11
+ "06" => "UPC12 (item-specific)",
12
+ "07" => "UPC12+5 (item-specific)",
13
+ "08" => "UPC12 (price-point)",
14
+ "09" => "UPC12+5 (price-point)",
15
+ "10" => "EAN13 on cover 4",
16
+ "11" => "EAN13+5 on cover 4 (US dollar price encoded)",
17
+ "12" => "UPC12 (item-specific) on cover 4",
18
+ "13" => "UPC12+5 (item-specific) on cover 4",
19
+ "14" => "UPC12 (price-point) on cover 4",
20
+ "15" => "UPC12+5 (price-point) on cover 4",
21
+ "16" => "EAN13 on cover 3",
22
+ "17" => "EAN13+5 on cover 3 (US dollar price encoded)",
23
+ "18" => "UPC12 (item-specific) on cover 3",
24
+ "19" => "UPC12+5 (item-specific) on cover 3",
25
+ "20" => "UPC12 (price-point) on cover 3",
26
+ "21" => "UPC12+5 (price-point) on cover 3",
27
+ "22" => "EAN13 on cover 2",
28
+ "23" => "EAN13+5 on cover 2 (US dollar price encoded)",
29
+ "24" => "UPC12 (item-specific) on cover 2",
30
+ "25" => "UPC12+5 (item-specific) on cover 2",
31
+ "26" => "UPC12 (price-point) on cover 2",
32
+ "27" => "UPC12+5 (price-point) on cover 2",
33
+ "28" => "EAN13 on box",
34
+ "29" => "EAN13+5 on box (US dollar price encoded)",
35
+ "30" => "UPC12 (item-specific) on box",
36
+ "31" => "UPC12+5 (item-specific) on box",
37
+ "32" => "UPC12 (price-point) on box",
38
+ "33" => "UPC12+5 (price-point) on box",
39
+ "34" => "EAN13 on tag",
40
+ "35" => "EAN13+5 on tag (US dollar price encoded)",
41
+ "36" => "UPC12 (item-specific) on tag",
42
+ "37" => "UPC12+5 (item-specific) on tag",
43
+ "38" => "UPC12 (price-point) on tag",
44
+ "39" => "UPC12+5 (price-point) on tag",
45
+ "40" => "EAN13 on bottom",
46
+ "41" => "EAN13+5 on bottom (US dollar price encoded)",
47
+ "42" => "UPC12 (item-specific) on bottom",
48
+ "43" => "UPC12+5 (item-specific) on bottom",
49
+ "44" => "UPC12 (price-point) on bottom",
50
+ "45" => "UPC12+5 (price-point) on bottom",
51
+ "46" => "EAN13 on back",
52
+ "47" => "EAN13+5 on back (US dollar price encoded)",
53
+ "48" => "UPC12 (item-specific) on back",
54
+ "49" => "UPC12+5 (item-specific) on back",
55
+ "50" => "UPC12 (price-point) on back",
56
+ "51" => "UPC12+5 (price-point) on back",
57
+ "52" => "EAN13+5 on outer sleeve/back (US dollar price encoded)",
58
+ "53" => "EAN13+5 on outer sleeve/back",
59
+ "54" => "UPC12 (item-specific) on outer sleeve/back",
60
+ "55" => "UPC12+5 (item-specific) on outer sleeve/back",
61
+ "56" => "UPC12 (price-point) on outer sleeve/back",
62
+ "57" => "UPC12+5 (price-point) on outer sleeve/back",
63
+ "58" => "EAN13+5 (no price encoded)",
64
+ "59" => "EAN13+5 on cover 4 (no price encoded)",
65
+ "60" => "EAN13+5 on cover 3 (no price encoded)",
66
+ "61" => "EAN13+5 on cover 2 (no price encoded)",
67
+ "62" => "EAN13+5 on box (no price encoded)",
68
+ "63" => "EAN13+5 on tag (no price encoded)",
69
+ "64" => "EAN13+5 on bottom (no price encoded)",
70
+ "65" => "EAN13+5 on back (no price encoded)",
71
+ "66" => "EAN13+5 on outer sleeve/back (no price encoded)",
72
+ "67" => "EAN13+5 (CAN dollar price encoded)",
73
+ "68" => "EAN13+5 on cover 4 (CAN dollar price encoded)",
74
+ "69" => "EAN13+5 on cover 3 (CAN dollar price encoded)",
75
+ "70" => "EAN13+5 on cover 2 (CAN dollar price encoded)",
76
+ "71" => "EAN13+5 on box (CAN dollar price encoded)",
77
+ "72" => "EAN13+5 on tag (CAN dollar price encoded)",
78
+ "73" => "EAN13+5 on bottom (CAN dollar price encoded)",
79
+ "74" => "EAN13+5 on back (CAN dollar price encoded)",
80
+ "75" => "EAN13 on outer sleeve/back (CAN dollar price encoded)"
81
+ }
82
+ end; end
@@ -0,0 +1,129 @@
1
+ # coding: utf-8
2
+
3
+ module Cacofonix; module CodeLists
4
+ LIST_7 = {
5
+ "00" => "Undefined",
6
+ "AA" => "Audio",
7
+ "AB" => "Audio cassette",
8
+ "AC" => "CD-Audio",
9
+ "AD" => "DAT",
10
+ "AE" => "Audio disc",
11
+ "AF" => "Audio tape",
12
+ "AG" => "MiniDisc",
13
+ "AH" => "CD-Extra",
14
+ "AI" => "DVD Audio",
15
+ "AJ" => "Downloadable audio file",
16
+ "AK" => "Pre-recorded digital audio player",
17
+ "AL" => "Pre-recorded SD card",
18
+ "AZ" => "Other audio format",
19
+ "BA" => "Book",
20
+ "BB" => "Hardback",
21
+ "BC" => "Paperback / softback",
22
+ "BD" => "Loose-leaf",
23
+ "BE" => "Spiral bound",
24
+ "BF" => "Pamphlet",
25
+ "BG" => "Leather / fine binding",
26
+ "BH" => "Board book",
27
+ "BI" => "Rag book",
28
+ "BJ" => "Bath book",
29
+ "BK" => "Novelty book",
30
+ "BL" => "Slide bound",
31
+ "BM" => "Big book",
32
+ "BN" => "Part-work (fascículo)",
33
+ "BO" => "Fold-out book or chart",
34
+ "BP" => "Foam book",
35
+ "BZ" => "Other book format",
36
+ "CA" => "Sheet map",
37
+ "CB" => "Sheet map, folded",
38
+ "CC" => "Sheet map, flat",
39
+ "CD" => "Sheet map, rolled",
40
+ "CE" => "Globe",
41
+ "CZ" => "Other cartographic",
42
+ "DA" => "Digital",
43
+ "DB" => "CD-ROM",
44
+ "DC" => "CD-I",
45
+ "DD" => "DVD",
46
+ "DE" => "Game cartridge",
47
+ "DF" => "Diskette",
48
+ "DG" => "Electronic book text",
49
+ "DH" => "Online resource",
50
+ "DI" => "DVD-ROM",
51
+ "DJ" => "Secure Digital (SD) Memory Card",
52
+ "DK" => "Compact Flash Memory Card",
53
+ "DL" => "Memory Stick Memory Card",
54
+ "DM" => "USB Flash Drive",
55
+ "DN" => "Double-sided CD/DVD",
56
+ "DZ" => "Other digital",
57
+ "FA" => "Film or transparency",
58
+ "FB" => "Film",
59
+ "FC" => "Slides",
60
+ "FD" => "OHP transparencies",
61
+ "FE" => "Filmstrip",
62
+ "FF" => "Film",
63
+ "FZ" => "Other film or transparency format",
64
+ "MA" => "Microform",
65
+ "MB" => "Microfiche",
66
+ "MC" => "Microfilm",
67
+ "MZ" => "Other microform",
68
+ "PA" => "Miscellaneous print",
69
+ "PB" => "Address book",
70
+ "PC" => "Calendar",
71
+ "PD" => "Cards",
72
+ "PE" => "Copymasters",
73
+ "PF" => "Diary",
74
+ "PG" => "Frieze",
75
+ "PH" => "Kit",
76
+ "PI" => "Sheet music",
77
+ "PJ" => "Postcard book or pack",
78
+ "PK" => "Poster",
79
+ "PL" => "Record book",
80
+ "PM" => "Wallet or folder",
81
+ "PN" => "Pictures or photographs",
82
+ "PO" => "Wallchart",
83
+ "PP" => "Stickers",
84
+ "PQ" => "Plate (lámina)",
85
+ "PR" => "Notebook / blank book",
86
+ "PS" => "Organizer",
87
+ "PT" => "Bookmark",
88
+ "PZ" => "Other printed item",
89
+ "VA" => "Video",
90
+ "VB" => "Video, VHS, PAL",
91
+ "VC" => "Video, VHS, NTSC",
92
+ "VD" => "Video, Betamax, PAL",
93
+ "VE" => "Video, Betamax, NTSC",
94
+ "VF" => "Videodisc",
95
+ "VG" => "Video, VHS, SECAM",
96
+ "VH" => "Video, Betamax, SECAM",
97
+ "VI" => "DVD video",
98
+ "VJ" => "VHS video",
99
+ "VK" => "Betamax video",
100
+ "VL" => "VCD",
101
+ "VM" => "SVCD",
102
+ "VN" => "HD DVD",
103
+ "VO" => "Blu-ray",
104
+ "VP" => "UMD Video",
105
+ "VZ" => "Other video format",
106
+ "WW" => "Mixed media product",
107
+ "WX" => "Multiple copy pack",
108
+ "XA" => "Trade-only material",
109
+ "XB" => "Dumpbin – empty",
110
+ "XC" => "Dumpbin – filled",
111
+ "XD" => "Counterpack – empty",
112
+ "XE" => "Counterpack – filled",
113
+ "XF" => "Poster, promotional",
114
+ "XG" => "Shelf strip",
115
+ "XH" => "Window piece",
116
+ "XI" => "Streamer",
117
+ "XJ" => "Spinner",
118
+ "XK" => "Large book display",
119
+ "XL" => "Shrink-wrapped pack",
120
+ "XZ" => "Other point of sale",
121
+ "ZA" => "General merchandise",
122
+ "ZB" => "Doll",
123
+ "ZC" => "Soft toy",
124
+ "ZD" => "Toy",
125
+ "ZE" => "Game",
126
+ "ZF" => "T-shirt",
127
+ "ZZ" => "Other merchandise"
128
+ }
129
+ end; end