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.
- checksums.yaml +7 -0
- data/.gitignore +2 -0
- data/.rvmrc +1 -0
- data/.travis.yml +10 -0
- data/CHANGELOG.md +205 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +5 -0
- data/LICENSE.txt +22 -0
- data/README.md +76 -0
- data/Rakefile +6 -0
- data/TODO +14 -0
- data/bin/onix_extract_codelists +41 -0
- data/cacofonix.gemspec +39 -0
- data/data/9780194351898.xml +74 -0
- data/data/Ashgate Other.xml +382679 -0
- data/data/Bookwise_July_2008.xml +21611 -0
- data/data/Peribo Onix 0408.xml +17051 -0
- data/data/aau.xml +96 -0
- data/data/audience_range.xml +9 -0
- data/data/contributor.xml +6 -0
- data/data/control_chars.xml +74 -0
- data/data/entities.xml +78 -0
- data/data/extra_entities.xml +65 -0
- data/data/header.xml +21 -0
- data/data/header_invalid_sentdate.xml +21 -0
- data/data/hlasep08.xml +24519 -0
- data/data/imprint.xml +5 -0
- data/data/iso_8859_1.xml +58 -0
- data/data/jul.xml +24783 -0
- data/data/language.xml +7 -0
- data/data/market_representation.xml +11 -0
- data/data/measure.xml +6 -0
- data/data/media_file.xml +6 -0
- data/data/no_encoding.xml +78 -0
- data/data/no_xml_declaration.xml +95 -0
- data/data/other_text.xml +5 -0
- data/data/price.xml +5 -0
- data/data/product.xml +79 -0
- data/data/product_identifier.xml +5 -0
- data/data/product_invalid_pubdate.xml +42 -0
- data/data/publisher.xml +5 -0
- data/data/rba_FANT.xml +23 -0
- data/data/reference_with_release_attrib.xml +74 -0
- data/data/sales_restriction.xml +4 -0
- data/data/sales_rights.xml +35 -0
- data/data/sender_identifier.xml +5 -0
- data/data/series.xml +5 -0
- data/data/series_identifier.xml +6 -0
- data/data/short_tags.xml +191 -0
- data/data/short_tags_ivp.xml +231 -0
- data/data/sl_product.xml +81 -0
- data/data/stock.xml +5 -0
- data/data/subject.xml +6 -0
- data/data/supply_detail.xml +18 -0
- data/data/title.xml +6 -0
- data/data/two_products.xml +114 -0
- data/data/usd.xml +175 -0
- data/data/utf_16.xml +0 -0
- data/data/website.xml +6 -0
- data/examples/reader.rb +25 -0
- data/examples/reader_apa.rb +22 -0
- data/examples/writer.rb +13 -0
- data/examples/writer_apa.rb +38 -0
- data/lib/cacofonix.rb +151 -0
- data/lib/cacofonix/codelists/001.rb +16 -0
- data/lib/cacofonix/codelists/002.rb +11 -0
- data/lib/cacofonix/codelists/003.rb +13 -0
- data/lib/cacofonix/codelists/005.rb +20 -0
- data/lib/cacofonix/codelists/006.rb +82 -0
- data/lib/cacofonix/codelists/007.rb +129 -0
- data/lib/cacofonix/codelists/008.rb +13 -0
- data/lib/cacofonix/codelists/009.rb +13 -0
- data/lib/cacofonix/codelists/010.rb +52 -0
- data/lib/cacofonix/codelists/011.rb +17 -0
- data/lib/cacofonix/codelists/012.rb +17 -0
- data/lib/cacofonix/codelists/013.rb +13 -0
- data/lib/cacofonix/codelists/014.rb +10 -0
- data/lib/cacofonix/codelists/015.rb +19 -0
- data/lib/cacofonix/codelists/016.rb +12 -0
- data/lib/cacofonix/codelists/017.rb +96 -0
- data/lib/cacofonix/codelists/018.rb +11 -0
- data/lib/cacofonix/codelists/019.rb +13 -0
- data/lib/cacofonix/codelists/020.rb +7 -0
- data/lib/cacofonix/codelists/021.rb +39 -0
- data/lib/cacofonix/codelists/022.rb +15 -0
- data/lib/cacofonix/codelists/023.rb +19 -0
- data/lib/cacofonix/codelists/024.rb +17 -0
- data/lib/cacofonix/codelists/025.rb +35 -0
- data/lib/cacofonix/codelists/026.rb +86 -0
- data/lib/cacofonix/codelists/027.rb +90 -0
- data/lib/cacofonix/codelists/028.rb +14 -0
- data/lib/cacofonix/codelists/029.rb +25 -0
- data/lib/cacofonix/codelists/030.rb +22 -0
- data/lib/cacofonix/codelists/031.rb +9 -0
- data/lib/cacofonix/codelists/032.rb +8 -0
- data/lib/cacofonix/codelists/033.rb +43 -0
- data/lib/cacofonix/codelists/034.rb +21 -0
- data/lib/cacofonix/codelists/035.rb +12 -0
- data/lib/cacofonix/codelists/036.rb +9 -0
- data/lib/cacofonix/codelists/037.rb +12 -0
- data/lib/cacofonix/codelists/038.rb +43 -0
- data/lib/cacofonix/codelists/039.rb +14 -0
- data/lib/cacofonix/codelists/040.rb +12 -0
- data/lib/cacofonix/codelists/041.rb +12 -0
- data/lib/cacofonix/codelists/042.rb +22 -0
- data/lib/cacofonix/codelists/043.rb +12 -0
- data/lib/cacofonix/codelists/044.rb +22 -0
- data/lib/cacofonix/codelists/045.rb +19 -0
- data/lib/cacofonix/codelists/046.rb +15 -0
- data/lib/cacofonix/codelists/047.rb +10 -0
- data/lib/cacofonix/codelists/048.rb +17 -0
- data/lib/cacofonix/codelists/049.rb +91 -0
- data/lib/cacofonix/codelists/050.rb +14 -0
- data/lib/cacofonix/codelists/051.rb +36 -0
- data/lib/cacofonix/codelists/052.rb +7 -0
- data/lib/cacofonix/codelists/053.rb +10 -0
- data/lib/cacofonix/codelists/054.rb +29 -0
- data/lib/cacofonix/codelists/055.rb +23 -0
- data/lib/cacofonix/codelists/056.rb +8 -0
- data/lib/cacofonix/codelists/057.rb +11 -0
- data/lib/cacofonix/codelists/058.rb +29 -0
- data/lib/cacofonix/codelists/059.rb +13 -0
- data/lib/cacofonix/codelists/060.rb +8 -0
- data/lib/cacofonix/codelists/061.rb +9 -0
- data/lib/cacofonix/codelists/062.rb +11 -0
- data/lib/cacofonix/codelists/063.rb +7 -0
- data/lib/cacofonix/codelists/064.rb +19 -0
- data/lib/cacofonix/codelists/065.rb +34 -0
- data/lib/cacofonix/codelists/066.rb +10 -0
- data/lib/cacofonix/codelists/067.rb +8 -0
- data/lib/cacofonix/codelists/068.rb +22 -0
- data/lib/cacofonix/codelists/069.rb +10 -0
- data/lib/cacofonix/codelists/070.rb +8 -0
- data/lib/cacofonix/codelists/071.rb +16 -0
- data/lib/cacofonix/codelists/072.rb +13 -0
- data/lib/cacofonix/codelists/073.rb +42 -0
- data/lib/cacofonix/codelists/074.rb +495 -0
- data/lib/cacofonix/codelists/075.rb +8 -0
- data/lib/cacofonix/codelists/076.rb +18 -0
- data/lib/cacofonix/codelists/077.rb +25 -0
- data/lib/cacofonix/codelists/078.rb +173 -0
- data/lib/cacofonix/codelists/079.rb +25 -0
- data/lib/cacofonix/codelists/080.rb +26 -0
- data/lib/cacofonix/codelists/081.rb +45 -0
- data/lib/cacofonix/codelists/082.rb +23 -0
- data/lib/cacofonix/codelists/083.rb +74 -0
- data/lib/cacofonix/codelists/084.rb +16 -0
- data/lib/cacofonix/codelists/085.rb +29 -0
- data/lib/cacofonix/codelists/086.rb +11 -0
- data/lib/cacofonix/codelists/087.rb +12 -0
- data/lib/cacofonix/codelists/088.rb +7 -0
- data/lib/cacofonix/codelists/089.rb +7 -0
- data/lib/cacofonix/codelists/090.rb +17 -0
- data/lib/cacofonix/codelists/091.rb +257 -0
- data/lib/cacofonix/codelists/092.rb +14 -0
- data/lib/cacofonix/codelists/093.rb +19 -0
- data/lib/cacofonix/codelists/094.rb +9 -0
- data/lib/cacofonix/codelists/095.rb +9 -0
- data/lib/cacofonix/codelists/096.rb +191 -0
- data/lib/cacofonix/codelists/097.rb +7 -0
- data/lib/cacofonix/codelists/098.rb +27 -0
- data/lib/cacofonix/codelists/099.rb +30 -0
- data/lib/cacofonix/codelists/100.rb +12 -0
- data/lib/cacofonix/codelists/101.rb +8 -0
- data/lib/cacofonix/codelists/102.rb +9 -0
- data/lib/cacofonix/codelists/121.rb +164 -0
- data/lib/cacofonix/codelists/138.rb +12 -0
- data/lib/cacofonix/codelists/139.rb +76 -0
- data/lib/cacofonix/codelists/140.rb +13 -0
- data/lib/cacofonix/codelists/141.rb +16 -0
- data/lib/cacofonix/codelists/142.rb +18 -0
- data/lib/cacofonix/codelists/143.rb +13 -0
- data/lib/cacofonix/codelists/144.rb +12 -0
- data/lib/cacofonix/codelists/145.rb +13 -0
- data/lib/cacofonix/codelists/146.rb +9 -0
- data/lib/cacofonix/codelists/147.rb +16 -0
- data/lib/cacofonix/codelists/148.rb +9 -0
- data/lib/cacofonix/codelists/149.rb +10 -0
- data/lib/cacofonix/codelists/150.rb +130 -0
- data/lib/cacofonix/codelists/151.rb +13 -0
- data/lib/cacofonix/codelists/152.rb +8 -0
- data/lib/cacofonix/codelists/153.rb +20 -0
- data/lib/cacofonix/codelists/154.rb +15 -0
- data/lib/cacofonix/codelists/155.rb +11 -0
- data/lib/cacofonix/codelists/156.rb +10 -0
- data/lib/cacofonix/codelists/157.rb +10 -0
- data/lib/cacofonix/codelists/158.rb +32 -0
- data/lib/cacofonix/codelists/159.rb +12 -0
- data/lib/cacofonix/codelists/160.rb +10 -0
- data/lib/cacofonix/codelists/161.rb +9 -0
- data/lib/cacofonix/codelists/162.rb +12 -0
- data/lib/cacofonix/codelists/163.rb +17 -0
- data/lib/cacofonix/codelists/164.rb +11 -0
- data/lib/cacofonix/codelists/165.rb +9 -0
- data/lib/cacofonix/codelists/166.rb +9 -0
- data/lib/cacofonix/codelists/167.rb +9 -0
- data/lib/cacofonix/codelists/168.rb +8 -0
- data/lib/cacofonix/codelists/169.rb +9 -0
- data/lib/cacofonix/codelists/170.rb +7 -0
- data/lib/cacofonix/codelists/171.rb +8 -0
- data/lib/cacofonix/codelists/172.rb +7 -0
- data/lib/cacofonix/codelists/173.rb +8 -0
- data/lib/cacofonix/codelists/174.rb +8 -0
- data/lib/cacofonix/codelists/175.rb +206 -0
- data/lib/cacofonix/codelists/176.rb +20 -0
- data/lib/cacofonix/codelists/177.rb +8 -0
- data/lib/cacofonix/codelists/178.rb +24 -0
- data/lib/cacofonix/codelists/179.rb +7 -0
- data/lib/cacofonix/codelists/184.rb +11 -0
- data/lib/cacofonix/core/code.rb +106 -0
- data/lib/cacofonix/core/element.rb +275 -0
- data/lib/cacofonix/core/header.rb +45 -0
- data/lib/cacofonix/core/lists.rb +108 -0
- data/lib/cacofonix/core/reader.rb +166 -0
- data/lib/cacofonix/core/writer.rb +123 -0
- data/lib/cacofonix/elements/addressee_identifier.rb +6 -0
- data/lib/cacofonix/elements/agent_identifier.rb +6 -0
- data/lib/cacofonix/elements/audience.rb +8 -0
- data/lib/cacofonix/elements/audience_range.rb +15 -0
- data/lib/cacofonix/elements/batch_bonus.rb +7 -0
- data/lib/cacofonix/elements/bible.rb +12 -0
- data/lib/cacofonix/elements/complexity.rb +7 -0
- data/lib/cacofonix/elements/conference.rb +14 -0
- data/lib/cacofonix/elements/conference_sponsor.rb +8 -0
- data/lib/cacofonix/elements/conference_sponsor_identifier.rb +6 -0
- data/lib/cacofonix/elements/contained_item.rb +6 -0
- data/lib/cacofonix/elements/content_item.rb +21 -0
- data/lib/cacofonix/elements/contributor.rb +19 -0
- data/lib/cacofonix/elements/copyright_owner.rb +8 -0
- data/lib/cacofonix/elements/copyright_owner_identifier.rb +6 -0
- data/lib/cacofonix/elements/copyright_statement.rb +7 -0
- data/lib/cacofonix/elements/discount_coded.rb +8 -0
- data/lib/cacofonix/elements/extent.rb +8 -0
- data/lib/cacofonix/elements/identifier.rb +7 -0
- data/lib/cacofonix/elements/illustrations.rb +8 -0
- data/lib/cacofonix/elements/imprint.rb +9 -0
- data/lib/cacofonix/elements/language.rb +8 -0
- data/lib/cacofonix/elements/location_identifier.rb +8 -0
- data/lib/cacofonix/elements/main_subject.rb +9 -0
- data/lib/cacofonix/elements/market_date.rb +8 -0
- data/lib/cacofonix/elements/market_representation.rb +18 -0
- data/lib/cacofonix/elements/measure.rb +8 -0
- data/lib/cacofonix/elements/media_file.rb +16 -0
- data/lib/cacofonix/elements/name.rb +6 -0
- data/lib/cacofonix/elements/name_base.rb +17 -0
- data/lib/cacofonix/elements/new_supplier.rb +12 -0
- data/lib/cacofonix/elements/not_for_sale.rb +13 -0
- data/lib/cacofonix/elements/on_order_detail.rb +7 -0
- data/lib/cacofonix/elements/other_text.rb +17 -0
- data/lib/cacofonix/elements/page_run.rb +7 -0
- data/lib/cacofonix/elements/person_date.rb +8 -0
- data/lib/cacofonix/elements/person_name_identifier.rb +6 -0
- data/lib/cacofonix/elements/price.rb +46 -0
- data/lib/cacofonix/elements/prize.rb +10 -0
- data/lib/cacofonix/elements/product.rb +155 -0
- data/lib/cacofonix/elements/product_base.rb +61 -0
- data/lib/cacofonix/elements/product_classification.rb +8 -0
- data/lib/cacofonix/elements/product_form_feature.rb +8 -0
- data/lib/cacofonix/elements/product_identifier.rb +6 -0
- data/lib/cacofonix/elements/professional_affiliation.rb +7 -0
- data/lib/cacofonix/elements/publisher.rb +11 -0
- data/lib/cacofonix/elements/reissue.rb +9 -0
- data/lib/cacofonix/elements/related_product.rb +6 -0
- data/lib/cacofonix/elements/religious_text.rb +8 -0
- data/lib/cacofonix/elements/religious_text_feature.rb +8 -0
- data/lib/cacofonix/elements/sales_outlet.rb +7 -0
- data/lib/cacofonix/elements/sales_outlet_identifier.rb +6 -0
- data/lib/cacofonix/elements/sales_restriction.rb +7 -0
- data/lib/cacofonix/elements/sales_rights.rb +13 -0
- data/lib/cacofonix/elements/sender_identifier.rb +6 -0
- data/lib/cacofonix/elements/series.rb +11 -0
- data/lib/cacofonix/elements/series_identifier.rb +6 -0
- data/lib/cacofonix/elements/set.rb +13 -0
- data/lib/cacofonix/elements/stock.rb +16 -0
- data/lib/cacofonix/elements/stock_quantity_coded.rb +8 -0
- data/lib/cacofonix/elements/subject.rb +13 -0
- data/lib/cacofonix/elements/supplier_identifier.rb +6 -0
- data/lib/cacofonix/elements/supply_detail.rb +37 -0
- data/lib/cacofonix/elements/text_item.rb +11 -0
- data/lib/cacofonix/elements/text_item_identifier.rb +6 -0
- data/lib/cacofonix/elements/title.rb +11 -0
- data/lib/cacofonix/elements/website.rb +8 -0
- data/lib/cacofonix/elements/work_identifier.rb +6 -0
- data/lib/cacofonix/utils/code_list_extractor.rb +112 -0
- data/lib/cacofonix/utils/normaliser.rb +125 -0
- data/lib/cacofonix/version.rb +5 -0
- data/lib/cacofonix/wrappers/apa_product.rb +748 -0
- data/lib/cacofonix/wrappers/simple_product.rb +49 -0
- data/support/entities.txt +1499 -0
- data/support/extract.rb +25 -0
- data/support/switch-onix-2.1-short-to-reference.xsl +24 -0
- data/support/switch-onix-tagnames-1.1.xsl +25 -0
- data/support/switch-onix-tagnames-2.0.xsl +37 -0
- 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"
|
data/examples/writer.rb
ADDED
|
@@ -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
|
data/lib/cacofonix.rb
ADDED
|
@@ -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
|