elibri_onix 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. data/Gemfile.lock +7 -7
  2. data/README.rdoc +48 -1
  3. data/elibri_onix.gemspec +2 -2
  4. data/lib/elibri_onix/hash_id.rb +37 -0
  5. data/lib/elibri_onix/onix_3_0/audience_range.rb +4 -0
  6. data/lib/elibri_onix/onix_3_0/collection.rb +0 -0
  7. data/lib/elibri_onix/onix_3_0/contributor.rb +9 -0
  8. data/lib/elibri_onix/onix_3_0/extent.rb +4 -0
  9. data/lib/elibri_onix/onix_3_0/header.rb +6 -0
  10. data/lib/elibri_onix/onix_3_0/imprint.rb +6 -0
  11. data/lib/elibri_onix/onix_3_0/language.rb +4 -0
  12. data/lib/elibri_onix/onix_3_0/measure.rb +9 -3
  13. data/lib/elibri_onix/onix_3_0/onix_message.rb +5 -1
  14. data/lib/elibri_onix/onix_3_0/price.rb +5 -0
  15. data/lib/elibri_onix/onix_3_0/product.rb +4 -1
  16. data/lib/elibri_onix/onix_3_0/product_identifier.rb +7 -0
  17. data/lib/elibri_onix/onix_3_0/publisher.rb +5 -0
  18. data/lib/elibri_onix/onix_3_0/publishing_date.rb +7 -0
  19. data/lib/elibri_onix/onix_3_0/related_product.rb +5 -0
  20. data/lib/elibri_onix/onix_3_0/sales_restriction.rb +6 -0
  21. data/lib/elibri_onix/onix_3_0/sender.rb +4 -0
  22. data/lib/elibri_onix/onix_3_0/stock_quantity_coded.rb +7 -0
  23. data/lib/elibri_onix/onix_3_0/subject.rb +9 -3
  24. data/lib/elibri_onix/onix_3_0/supplier.rb +5 -0
  25. data/lib/elibri_onix/onix_3_0/supplier_identifier.rb +8 -0
  26. data/lib/elibri_onix/onix_3_0/supply_detail.rb +7 -0
  27. data/lib/elibri_onix/onix_3_0/supporting_resource.rb +3 -0
  28. data/lib/elibri_onix/onix_3_0/text_content.rb +6 -3
  29. data/lib/elibri_onix/onix_3_0/title_detail.rb +10 -3
  30. data/lib/elibri_onix/onix_3_0/title_element.rb +15 -0
  31. data/lib/elibri_onix/version.rb +4 -1
  32. data/lib/elibri_onix.rb +1 -0
  33. metadata +297 -252
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- elibri_onix (0.2.0)
4
+ elibri_onix (0.2.1)
5
5
  activesupport (>= 2.3.5)
6
6
  elibri_onix_dict (>= 0.0.5)
7
7
  i18n
@@ -10,20 +10,20 @@ PATH
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- activesupport (3.2.3)
13
+ activesupport (3.2.5)
14
14
  i18n (~> 0.6)
15
15
  multi_json (~> 1.0)
16
16
  coderay (1.0.6)
17
- elibri_onix_dict (0.0.13)
17
+ elibri_onix_dict (0.0.15)
18
18
  i18n (0.6.0)
19
19
  metaclass (0.0.1)
20
20
  method_source (0.7.1)
21
- minitest (3.0.0)
21
+ minitest (3.0.1)
22
22
  mocha (0.11.4)
23
23
  metaclass (~> 0.0.1)
24
- multi_json (1.3.5)
25
- nokogiri (1.5.2)
26
- nokogiri (1.5.2-java)
24
+ multi_json (1.3.6)
25
+ nokogiri (1.5.3)
26
+ nokogiri (1.5.3-java)
27
27
  pry (0.9.9.6)
28
28
  coderay (~> 1.0.5)
29
29
  method_source (~> 0.7.1)
data/README.rdoc CHANGED
@@ -6,7 +6,54 @@
6
6
 
7
7
  == Description
8
8
 
9
- Description goes here.
9
+ This is gem designed to parse eLibri generated onix files.
10
+ If you don't have access to eLibri api, but you still want to make some us of it - check elibri_onix_mocks gem for mocks and examples of using it.
11
+
12
+ == Usage
13
+
14
+ Usage depends on what you want to parse. In normal usage, when you received response from eLibri server you want to parse it using ONIXMessage class. Therefore you need to execute:
15
+
16
+ Elibri::ONIX::Release_3_0::ONIXMessage.new(xml_data)
17
+
18
+ xml_data should be string containing ONIX xml you want to parse.
19
+
20
+ Creating a new ONIXMessage object will also create embedded objects inside - representing structure of xml file.
21
+ ONIXMessage -> many Product(s)
22
+ Product -> many ProductIdentifier(s)
23
+ Product -> many RelatedProduct(s)
24
+ RelatedProduct -> many ProductIdentifier(s)
25
+ Product -> many SupplyDetail(s)
26
+ SupplyDetail -> one Supplier
27
+ SupplyDetail -> one Price
28
+ SupplyDetail -> one StockQuantityCoded
29
+ Product -> many Measure(s)
30
+ Product -> many TitleDetail(s)
31
+ TitleDetail -> many TitleElement(s)
32
+ Product -> many Collection(s)
33
+ Collection -> many TitleElement(s)
34
+ Collection -> one TitleDetail
35
+ Product -> many Contributor(s)
36
+ Product -> many Language(s)
37
+ Product -> many Extent(s)
38
+ Product -> many Subject(s)
39
+ Product -> many AudienceRange(s)
40
+ Product -> many TextContent(s)
41
+ Product -> many SupportingResource(s)
42
+ Product -> one Imprint
43
+ Product -> one Publisher
44
+ Product -> one PublishingDate
45
+ Product -> many SalesRestriction(s)
46
+ ONIXMessage -> one Header
47
+ Header -> one Sender
48
+
49
+
50
+ However if you have only fragment of xml that you want to parse - for example Contributor, you may parse only this fragment invoking constructor of appropriate class, providing xml as an argument, for example:
51
+
52
+ Elibri::ONIX::Release_3_0::Contributor.new(xml_data)
53
+
54
+ Each object provide method to_xml which will return xml used to construct it.
55
+
56
+ Object contains attributes, which are represented by instance variables. You can see list of attributes in FIELDS file.
10
57
 
11
58
  == Contributing to elibri_onix
12
59
 
data/elibri_onix.gemspec CHANGED
@@ -2,8 +2,8 @@
2
2
  require File.expand_path('../lib/elibri_onix/version', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |gem|
5
- gem.authors = ["Marcin Urbanski"]
6
- gem.email = ["marcin@urbanski.vdl.pl"]
5
+ gem.authors = ["Marcin Urbanski", "Piotr Szmielew"]
6
+ gem.email = ["marcin@urbanski.vdl.pl", "p.szmielew@ava.waw.pl"]
7
7
  gem.description = %q{EDItEUR ONIX format subset implementation used in Elibri publication system}
8
8
  gem.summary = %q{EDItEUR ONIX format subset implementation used in Elibri publication system}
9
9
  gem.homepage = "http://github.com/elibri/elibri_onix"
@@ -0,0 +1,37 @@
1
+ module HashId
2
+
3
+ SKIPPED_ATTRIBS = ["@opts", "@default_namespace", "@instance", "@roxml_references"]
4
+ SKIPPED_2 = ["@id", "@id_before_type_cast"]
5
+
6
+ def eid
7
+ calculate_hash(self)
8
+ end
9
+
10
+ def calculate_hash(object)
11
+ result = []
12
+ if object.is_a? Array
13
+ object.each { |x| result << calculate_hash(x) }
14
+ else
15
+ vars = []
16
+ if object.class.to_s.include? "Elibri::ONIX"
17
+ vars += object.class::ATTRIBUTES
18
+ vars += object.class::RELATIONS
19
+ end
20
+ vars = object.instance_variables if vars.blank?
21
+ vars.each do |attrib|
22
+ next if SKIPPED_ATTRIBS.include? attrib
23
+ next if SKIPPED_2.include? attrib
24
+ attrib = attrib.to_s.gsub("@", "").to_sym if attrib.is_a?(String)
25
+ if object.send(attrib).is_a? Array
26
+ result << calculate_hash(object.send(attrib))
27
+ elsif object.send(attrib).is_a?(String) || object.send(attrib).is_a?(Numeric) || object.send(attrib).is_a?(Fixnum) || object.send(attrib).is_a?(Symbol)
28
+ result << object.send(attrib)
29
+ else
30
+ result << calculate_hash(object.send(attrib))
31
+ end
32
+ end
33
+ end
34
+ return Digest::SHA1.hexdigest(result.join("-"))
35
+ end
36
+
37
+ end
@@ -5,6 +5,10 @@ module Elibri
5
5
 
6
6
  class AudienceRange
7
7
 
8
+ #from ONIX documentation:
9
+ #An optional and repeatable group of data elements which together describe an audience or readership range for which a product
10
+ #is intended.
11
+
8
12
  ATTRIBUTES = [
9
13
  :qualifier, :precision, :value
10
14
  ]
Binary file
@@ -7,6 +7,15 @@ module Elibri
7
7
  include ExternalId
8
8
  include ExternalTimestamp
9
9
 
10
+ #from ONIX documentation:
11
+ #Authorship and other forms of contribution are described by repeats of the <Contributor> composite,
12
+ #within which the recommended form of representation of a person name is the structured data element
13
+ #group consisting of Person name part 1 to Person name part 8. A single occurrence of the composite may
14
+ #carry both the primary name of a contributor, and one or more alternative names,
15
+ #for example if a contributor is referenced both by their real name and by a pseudonym,
16
+ #or by the name given on the title page and by an authority-controlled name.
17
+ #In addition, more than one representation of the same name may be sent.
18
+
10
19
  ATTRIBUTES =
11
20
  [
12
21
  :number, :role, :person_name, :from_language, :titles_before_names, :names_before_key, :prefix_to_key,
@@ -5,6 +5,10 @@ module Elibri
5
5
  module Release_3_0
6
6
 
7
7
  class Extent
8
+
9
+ #from ONIX documentation:
10
+ #covers product extents, in terms of pages, running times, file sizes etc, as may be appropriate to each media type.
11
+ #For products whose content is primarily readable text, it also covers illustrations and other kinds of ancillary matter such as the inclusion of a bibliography or index.
8
12
 
9
13
  ATTRIBUTES = [
10
14
  :type, :value, :unit, :type_name, :unit_name
@@ -5,6 +5,12 @@ module Elibri
5
5
  module Release_3_0
6
6
 
7
7
  class Header
8
+
9
+ #from ONIX documentation:
10
+ #A group of data elements which together constitute a message header.
11
+ #Mandatory in any ONIX for Books message, and non-repeating.
12
+ #In ONIX 3.0, a number of redundant elements have been deleted, and the Sender and Addressee structures and
13
+ #the name and format of the <SentDateTime> element have been made consistent with other current ONIX formats.
8
14
 
9
15
  attr_accessor :sent_date_time, :sender, :to_xml
10
16
 
@@ -6,6 +6,12 @@ module Elibri
6
6
 
7
7
  class Imprint
8
8
 
9
+ include HashId
10
+
11
+ #from ONIX documentation:
12
+ #A repeatable group of data elements which together identify an imprint or brand under which the product is marketed.
13
+ #The composite must carry either a name identifier or a name or both.
14
+
9
15
  ATTRIBUTES = [
10
16
  :name
11
17
  ]
@@ -6,6 +6,10 @@ module Elibri
6
6
 
7
7
  class Language
8
8
 
9
+ #from ONIX documentation:
10
+ #An optional and repeatable group of data elements which together represent a language, and specify its role and,
11
+ #where required, whether it is a country variant.
12
+
9
13
  ATTRIBUTES = [
10
14
  :role, :code, :role_name, :language
11
15
  ]
@@ -6,6 +6,12 @@ module Elibri
6
6
 
7
7
  class Measure
8
8
 
9
+ include HashId
10
+
11
+ #from ONIX documentation:
12
+ #An optional and repeatable group of data elements which together identify a measurement and the units in which
13
+ #it is expressed; used to specify the overall dimensions of a physical product including its packaging (if any).
14
+
9
15
  ATTRIBUTES = [
10
16
  :type, :measurement, :unit, :type_name
11
17
  ]
@@ -32,9 +38,9 @@ module Elibri
32
38
  [:type_name]
33
39
  end
34
40
 
35
- def eid
36
- @type.to_i
37
- end
41
+ # def eid
42
+ # @type.to_i
43
+ # end
38
44
 
39
45
  def id
40
46
  Kernel.warn "[DEPRECATION] `id` is deprecated. Please use `eid` instead."
@@ -5,7 +5,11 @@ module Elibri
5
5
 
6
6
  class ONIXMessage
7
7
  attr_accessor :release, :elibri_dialect, :products, :header, :to_xml
8
-
8
+
9
+ #class representing whole ONIX response from eLibri server
10
+
11
+ include HashId
12
+
9
13
  ATTRIBUTES = [
10
14
  :release, :elibri_dialect, :header
11
15
  ]
@@ -8,6 +8,11 @@ module Elibri
8
8
 
9
9
  class Price
10
10
 
11
+ #from ONIX documentation:
12
+ #A repeatable group of data elements which together specify a unit price.
13
+
14
+ include HashId
15
+
11
16
  ATTRIBUTES = [
12
17
  :type, :minimum_order_quantity, :amount, :currency_code, :printed_on_product,
13
18
  :position_on_product, :tax_type, :tax_rate_percent, :vat
@@ -5,7 +5,10 @@ module Elibri
5
5
 
6
6
  class Product
7
7
 
8
-
8
+ #class representing one Product from eLibri.
9
+ #important thing - record reference is unique eLibri identifier
10
+
11
+
9
12
  ATTRIBUTES =
10
13
  [
11
14
  :elibri_dialect, :height, :width, :thickness, :weight, :ean, :isbn13, :number_of_pages, :duration,
@@ -4,6 +4,13 @@ module Elibri
4
4
  module Release_3_0
5
5
 
6
6
  class ProductIdentifier
7
+
8
+ #from ONIX documentation:
9
+ #A repeatable group of data elements which together define an identifier of a product in accordance with a specified scheme.
10
+ #As well as standard identifiers, the composite allows proprietary identifiers (SKUs) assigned by wholesalers or
11
+ #vendors to be sent as part of the ONIX record.
12
+
13
+ include HashId
7
14
 
8
15
  attr_accessor :type, :type_name, :value, :to_xml
9
16
 
@@ -7,6 +7,11 @@ module Elibri
7
7
 
8
8
  class Publisher
9
9
 
10
+ #from ONIX documentation:
11
+ #A repeatable group of data elements which together identify an entity which is associated with the publishing of a product.
12
+ #The composite allows additional publishing roles to be introduced without adding new fields.
13
+ #Each occurrence of the composite must carry a publishing role code and either a name identifier code or a name or both.
14
+
10
15
  ATTRIBUTES = [
11
16
  :role, :name, :eid
12
17
  ]
@@ -7,6 +7,13 @@ module Elibri
7
7
 
8
8
  class PublishingDate
9
9
 
10
+ #from ONIX documentation:
11
+ #A repeatable group of data elements which together specify a date associated with the publishing of the product.
12
+ #Optional, but a date of publication must be specified either or in <MarketPublishingDetail> (P.25).
13
+ #Other dates related to the publishing of a product can be sent in further repeats.
14
+
15
+ include HashId
16
+
10
17
  ATTRIBUTES = [
11
18
  :role, :format, :date, :parsed
12
19
  ]
@@ -8,6 +8,11 @@ module Elibri
8
8
 
9
9
  class RelatedProduct
10
10
 
11
+ #from ONIX documentation:
12
+ #An optional and repeatable group of data elements which together describe a product which has a specified relationship
13
+ #to the product described in the ONIX record.
14
+ include HashId
15
+
11
16
  ATTRIBUTES = [
12
17
  :relation_code, :proprietary_identifiers, :record_reference
13
18
  ]
@@ -6,6 +6,12 @@ module Elibri
6
6
  module Release_3_0
7
7
 
8
8
  class SalesRestriction
9
+
10
+ #from ONIX documentation:
11
+ #A group of data elements which together identify a non-territorial sales restriction which a publisher applies to a product.
12
+ #Optional and repeatable.
13
+
14
+ include HashId
9
15
 
10
16
  ATTRIBUTES = [
11
17
  :type, :outlet_name, :end_date
@@ -5,6 +5,10 @@ module Elibri
5
5
 
6
6
  class Sender
7
7
 
8
+ #from ONIX documentation
9
+ #A group of data elements which together specify the sender of an ONIX for Books message.
10
+ #Mandatory in any ONIX for Books message, and non-repeating.
11
+
8
12
  attr_accessor :sender_name, :contact_name, :email_address, :to_xml
9
13
 
10
14
  ATTRIBUTES = [
@@ -3,6 +3,13 @@ module Elibri
3
3
  module Release_3_0
4
4
 
5
5
  class StockQuantityCoded
6
+
7
+ #from ONIX documentation:
8
+ #A group of data elements which together specify coded stock level without stating the exact quantity of stock.
9
+ #Either <StockQuantityCoded> or <OnHand> is mandatory in each occurrence of the <Stock> composite, even if
10
+ #the quantity on hand is zero. Non-repeating.
11
+
12
+ include HashId
6
13
 
7
14
  ATTRIBUTES = [
8
15
  :code_type, :code
@@ -6,6 +6,12 @@ module Elibri
6
6
 
7
7
  class Subject
8
8
 
9
+ #from ONIX documentation:
10
+ #An optional and repeatable group of data elements which together specify a subject classification or subject heading.
11
+
12
+ include HashId
13
+
14
+
9
15
  ATTRIBUTES = [
10
16
  :scheme_identifier, :scheme_name, :scheme_version, :code, :heading_text, :main_subject
11
17
  ]
@@ -28,9 +34,9 @@ module Elibri
28
34
  @main_subject == ''
29
35
  end
30
36
 
31
- def eid
32
- @code
33
- end
37
+ # def eid
38
+ # @code
39
+ # end
34
40
 
35
41
  def id
36
42
  Kernel.warn "[DEPRECATION] `id` is deprecated. Please use `eid` instead."
@@ -6,6 +6,9 @@ module Elibri
6
6
  module Release_3_0
7
7
 
8
8
  class Supplier
9
+
10
+ #from ONIX documentation:
11
+ #A group of data elements which together define a supplier. Mandatory in each occurrence of the <SupplyDetail> composite, and not repeatable.
9
12
 
10
13
  ATTRIBUTES = [
11
14
  :role, :name, :telephone_number, :email_address, :website, :nip
@@ -15,6 +18,8 @@ module Elibri
15
18
  :identifiers
16
19
  ]
17
20
 
21
+ include HashId
22
+
18
23
  attr_accessor :role, :identifiers, :name, :telephone_number, :email_address, :website, :to_xml
19
24
 
20
25
  def initialize(data)
@@ -7,6 +7,14 @@ module Elibri
7
7
  module Release_3_0
8
8
 
9
9
  class SupplierIdentifier
10
+
11
+ #from ONIX documentation:
12
+ #A repeatable group of data elements which together define the identifier of a supplier in accordance with a specified scheme,
13
+ #and allowing different types of supplier identifier to be included without defining additional data elements.
14
+ #Optional, but each occurrence of the <Supplier> composite must carry either at least one supplier identifier,
15
+ #or a <SupplierName>, or both.
16
+
17
+ include HashId
10
18
 
11
19
  ATTRIBUTES = [
12
20
  :type, :type_name, :value
@@ -6,6 +6,13 @@ module Elibri
6
6
  module Release_3_0
7
7
 
8
8
  class SupplyDetail
9
+
10
+ #from ONIX documentation:
11
+ #A group of data elements which together give details of a supply source, and price and availability from that source.
12
+ #Mandatory in each occurrence of the <ProductSupply> block and repeatable.
13
+
14
+ include HashId
15
+
9
16
 
10
17
  ATTRIBUTES = [
11
18
  :relation_code, :supplier, :product_availability, :pack_quantity, :price, :on_hand, :quantity_coded, :quantity_code
@@ -8,6 +8,9 @@ module Elibri
8
8
  include ExternalId
9
9
  include ExternalTimestamp
10
10
 
11
+ #from ONIX documentation:
12
+ #An optional and repeatable group of data elements which together describe a supporting resource.
13
+
11
14
  ATTRIBUTES = [
12
15
  :content_type, :mode, :form, :link, :content_type_name, :mode_name, :form_name
13
16
  ]
@@ -4,9 +4,12 @@ module Elibri
4
4
  module Release_3_0
5
5
 
6
6
  class TextContent
7
- include ExternalId
8
- include ExternalTimestamp
9
-
7
+ include ExternalId
8
+ include ExternalTimestamp
9
+
10
+ #from ONIX documentation:
11
+ #An optional and repeatable group of data elements which together carry text related to the product.
12
+
10
13
  ATTRIBUTES = [
11
14
  :type, :author, :source_title, :text, :source_url, :type_name
12
15
  ]
@@ -6,6 +6,13 @@ module Elibri
6
6
 
7
7
  class TitleDetail
8
8
 
9
+ #from ONIX documentation:
10
+ #A repeatable group of data elements which together give the text of a collection title and specify its type.
11
+ #Optional, but the composite is required unless the collection title is carried in full, and word-for- word,
12
+ #as an integral part of the product title in P.6, in which case it should not be repeated in P.5.
13
+
14
+ include HashId
15
+
9
16
  ATTRIBUTES = [
10
17
  :type, :type_name, :full_title, :product_level_title, :product_level, :collection_level_title,
11
18
  :collection_level
@@ -23,9 +30,9 @@ module Elibri
23
30
  @elements = data.xpath('xmlns:TitleElement').map { |element_data| TitleElement.new(element_data) }
24
31
  end
25
32
 
26
- def eid
27
- @type.to_i
28
- end
33
+ # def eid
34
+ # @type.to_i
35
+ # end
29
36
 
30
37
  def id
31
38
  Kernel.warn "[DEPRECATION] `id` is deprecated. Please use `eid` instead."
@@ -4,6 +4,21 @@ module Elibri
4
4
  module Release_3_0
5
5
 
6
6
  class TitleElement
7
+
8
+ #from ONIX documentation:
9
+ #A repeatable group of data elements which together represent an element of a collection title.
10
+ #At least one title element is mandatory in each occurrence of the <TitleDetail> composite.
11
+ #An instance of the <TitleElement> composite must include at least one of: <PartNumber>; <YearOfAnnual>; <TitleText>, or <TitlePrefix> together
12
+ #with <TitleWithoutPrefix>. In other words it must carry either the text of a title element or a part or year designation; and it may carry both.
13
+ #A title element must be designated as belonging to product level, collection level, or subcollection level
14
+ #(the first of these may not occur in a title element representing a collective identity, and the last-named may only occur
15
+ #in the case of a multi-level collection).
16
+ #In the simplest case, title detail sent in a <Collection> composite will consist of a single title element, at collection level.
17
+ #However, the composite structure in ONIX 3.0 allows more complex combinations of titles and part designations in multi-level
18
+ #collections to be correctly represented.
19
+
20
+
21
+ include HashId
7
22
 
8
23
  ATTRIBUTES = [
9
24
  :level, :part_number, :title, :subtitle, :full_title
@@ -1,6 +1,9 @@
1
1
  module Elibri
2
2
  module ONIX
3
- VERSION = "0.2.0"
3
+ z = $VERBOSE
4
+ $VERBOSE = nil
5
+ VERSION = "0.2.1"
4
6
  Version = VERSION
7
+ $VERBOSE = z
5
8
  end
6
9
  end
data/lib/elibri_onix.rb CHANGED
@@ -9,6 +9,7 @@ require 'nokogiri'
9
9
  require 'elibri_onix/version'
10
10
  require 'elibri_onix/inspector'
11
11
  require 'elibri_onix/external_id'
12
+ require 'elibri_onix/hash_id'
12
13
  require 'elibri_onix/external_timestamp'
13
14
  require 'elibri_onix/releases'
14
15
  require 'elibri_onix/nokogiri_patch'
metadata CHANGED
@@ -1,290 +1,335 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elibri_onix
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 21
4
5
  prerelease:
5
- version: 0.2.0
6
+ segments:
7
+ - 0
8
+ - 2
9
+ - 1
10
+ version: 0.2.1
6
11
  platform: ruby
7
12
  authors:
8
- - Marcin Urbanski
13
+ - Marcin Urbanski
14
+ - Piotr Szmielew
9
15
  autorequire:
10
16
  bindir: bin
11
17
  cert_chain: []
12
18
 
13
- date: 2012-05-23 00:00:00 +02:00
14
- default_executable:
19
+ date: 2012-06-07 00:00:00 Z
15
20
  dependencies:
16
- - !ruby/object:Gem::Dependency
17
- name: activesupport
18
- prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
20
- none: false
21
- requirements:
22
- - - ">="
23
- - !ruby/object:Gem::Version
24
- version: 2.3.5
25
- type: :runtime
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
28
- name: nokogiri
29
- prerelease: false
30
- requirement: &id002 !ruby/object:Gem::Requirement
31
- none: false
32
- requirements:
33
- - - ">="
34
- - !ruby/object:Gem::Version
35
- version: "0"
36
- type: :runtime
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
39
- name: i18n
40
- prerelease: false
41
- requirement: &id003 !ruby/object:Gem::Requirement
42
- none: false
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: "0"
47
- type: :runtime
48
- version_requirements: *id003
49
- - !ruby/object:Gem::Dependency
50
- name: elibri_onix_dict
51
- prerelease: false
52
- requirement: &id004 !ruby/object:Gem::Requirement
53
- none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- version: 0.0.5
58
- type: :runtime
59
- version_requirements: *id004
60
- - !ruby/object:Gem::Dependency
61
- name: pry
62
- prerelease: false
63
- requirement: &id005 !ruby/object:Gem::Requirement
64
- none: false
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: "0"
69
- type: :development
70
- version_requirements: *id005
71
- - !ruby/object:Gem::Dependency
72
- name: mocha
73
- prerelease: false
74
- requirement: &id006 !ruby/object:Gem::Requirement
75
- none: false
76
- requirements:
77
- - - ">="
78
- - !ruby/object:Gem::Version
79
- version: "0"
80
- type: :development
81
- version_requirements: *id006
82
- - !ruby/object:Gem::Dependency
83
- name: minitest
84
- prerelease: false
85
- requirement: &id007 !ruby/object:Gem::Requirement
86
- none: false
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- version: "0"
91
- type: :development
92
- version_requirements: *id007
93
- - !ruby/object:Gem::Dependency
94
- name: bundler
95
- prerelease: false
96
- requirement: &id008 !ruby/object:Gem::Requirement
97
- none: false
98
- requirements:
99
- - - ">="
100
- - !ruby/object:Gem::Version
101
- version: 1.0.0
102
- type: :development
103
- version_requirements: *id008
104
- - !ruby/object:Gem::Dependency
105
- name: rake
106
- prerelease: false
107
- requirement: &id009 !ruby/object:Gem::Requirement
108
- none: false
109
- requirements:
110
- - - ">="
111
- - !ruby/object:Gem::Version
112
- version: "0"
113
- type: :development
114
- version_requirements: *id009
21
+ - !ruby/object:Gem::Dependency
22
+ name: activesupport
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 9
30
+ segments:
31
+ - 2
32
+ - 3
33
+ - 5
34
+ version: 2.3.5
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: nokogiri
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 3
46
+ segments:
47
+ - 0
48
+ version: "0"
49
+ type: :runtime
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ name: i18n
53
+ prerelease: false
54
+ requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ hash: 3
60
+ segments:
61
+ - 0
62
+ version: "0"
63
+ type: :runtime
64
+ version_requirements: *id003
65
+ - !ruby/object:Gem::Dependency
66
+ name: elibri_onix_dict
67
+ prerelease: false
68
+ requirement: &id004 !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ hash: 21
74
+ segments:
75
+ - 0
76
+ - 0
77
+ - 5
78
+ version: 0.0.5
79
+ type: :runtime
80
+ version_requirements: *id004
81
+ - !ruby/object:Gem::Dependency
82
+ name: pry
83
+ prerelease: false
84
+ requirement: &id005 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ hash: 3
90
+ segments:
91
+ - 0
92
+ version: "0"
93
+ type: :development
94
+ version_requirements: *id005
95
+ - !ruby/object:Gem::Dependency
96
+ name: mocha
97
+ prerelease: false
98
+ requirement: &id006 !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ hash: 3
104
+ segments:
105
+ - 0
106
+ version: "0"
107
+ type: :development
108
+ version_requirements: *id006
109
+ - !ruby/object:Gem::Dependency
110
+ name: minitest
111
+ prerelease: false
112
+ requirement: &id007 !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ hash: 3
118
+ segments:
119
+ - 0
120
+ version: "0"
121
+ type: :development
122
+ version_requirements: *id007
123
+ - !ruby/object:Gem::Dependency
124
+ name: bundler
125
+ prerelease: false
126
+ requirement: &id008 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ hash: 23
132
+ segments:
133
+ - 1
134
+ - 0
135
+ - 0
136
+ version: 1.0.0
137
+ type: :development
138
+ version_requirements: *id008
139
+ - !ruby/object:Gem::Dependency
140
+ name: rake
141
+ prerelease: false
142
+ requirement: &id009 !ruby/object:Gem::Requirement
143
+ none: false
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ hash: 3
148
+ segments:
149
+ - 0
150
+ version: "0"
151
+ type: :development
152
+ version_requirements: *id009
115
153
  description: EDItEUR ONIX format subset implementation used in Elibri publication system
116
154
  email:
117
- - marcin@urbanski.vdl.pl
155
+ - marcin@urbanski.vdl.pl
156
+ - p.szmielew@ava.waw.pl
118
157
  executables: []
119
158
 
120
159
  extensions: []
121
160
 
122
161
  extra_rdoc_files:
123
- - LICENSE.txt
124
- - README.rdoc
125
- - FIELDS.rdoc
162
+ - LICENSE.txt
163
+ - README.rdoc
164
+ - FIELDS.rdoc
126
165
  files:
127
- - .gitignore
128
- - .travis.yml
129
- - FIELDS.rdoc
130
- - Gemfile
131
- - Gemfile.lock
132
- - LICENSE.txt
133
- - README.rdoc
134
- - Rakefile
135
- - elibri_onix.gemspec
136
- - generate.rb
137
- - lib/elibri_onix.rb
138
- - lib/elibri_onix/external_id.rb
139
- - lib/elibri_onix/external_timestamp.rb
140
- - lib/elibri_onix/inspector.rb
141
- - lib/elibri_onix/nokogiri_patch.rb
142
- - lib/elibri_onix/onix_3_0/audience_range.rb
143
- - lib/elibri_onix/onix_3_0/collection.rb
144
- - lib/elibri_onix/onix_3_0/contributor.rb
145
- - lib/elibri_onix/onix_3_0/extent.rb
146
- - lib/elibri_onix/onix_3_0/header.rb
147
- - lib/elibri_onix/onix_3_0/imprint.rb
148
- - lib/elibri_onix/onix_3_0/language.rb
149
- - lib/elibri_onix/onix_3_0/measure.rb
150
- - lib/elibri_onix/onix_3_0/onix_message.rb
151
- - lib/elibri_onix/onix_3_0/price.rb
152
- - lib/elibri_onix/onix_3_0/product.rb
153
- - lib/elibri_onix/onix_3_0/product_identifier.rb
154
- - lib/elibri_onix/onix_3_0/publisher.rb
155
- - lib/elibri_onix/onix_3_0/publishing_date.rb
156
- - lib/elibri_onix/onix_3_0/related_product.rb
157
- - lib/elibri_onix/onix_3_0/sales_restriction.rb
158
- - lib/elibri_onix/onix_3_0/sender.rb
159
- - lib/elibri_onix/onix_3_0/stock_quantity_coded.rb
160
- - lib/elibri_onix/onix_3_0/subject.rb
161
- - lib/elibri_onix/onix_3_0/supplier.rb
162
- - lib/elibri_onix/onix_3_0/supplier_identifier.rb
163
- - lib/elibri_onix/onix_3_0/supply_detail.rb
164
- - lib/elibri_onix/onix_3_0/supporting_resource.rb
165
- - lib/elibri_onix/onix_3_0/text_content.rb
166
- - lib/elibri_onix/onix_3_0/title_detail.rb
167
- - lib/elibri_onix/onix_3_0/title_element.rb
168
- - lib/elibri_onix/releases.rb
169
- - lib/elibri_onix/version.rb
170
- - test/elibri_audience_range_test.rb
171
- - test/elibri_categories_test.rb
172
- - test/elibri_contributors_test.rb
173
- - test/elibri_edition_test.rb
174
- - test/elibri_extensions_test.rb
175
- - test/elibri_extent_test.rb
176
- - test/elibri_languages_test.rb
177
- - test/elibri_measurement_test.rb
178
- - test/elibri_onix_release_3_0_onix_message_test.rb
179
- - test/elibri_onix_test.rb
180
- - test/elibri_product_form_test.rb
181
- - test/elibri_publisher_info_test.rb
182
- - test/elibri_publishing_status_test.rb
183
- - test/elibri_record_identifiers_test.rb
184
- - test/elibri_sale_restrictions_test.rb
185
- - test/elibri_series_memberships_test.rb
186
- - test/elibri_supporting_resources_test.rb
187
- - test/elibri_texts_test.rb
188
- - test/elibri_titles_test.rb
189
- - test/fixtures/all_possible_tags.xml
190
- - test/fixtures/old_dialect.xml
191
- - test/fixtures/onix_announced_product_example.xml
192
- - test/fixtures/onix_audience_range_example.xml
193
- - test/fixtures/onix_audiobook_extent_example.xml
194
- - test/fixtures/onix_categories_example.xml
195
- - test/fixtures/onix_collective_work_example.xml
196
- - test/fixtures/onix_contributors_example.xml
197
- - test/fixtures/onix_ebook_extent_example.xml
198
- - test/fixtures/onix_edition_example.xml
199
- - test/fixtures/onix_elibri_extensions_example.xml
200
- - test/fixtures/onix_languages_example.xml
201
- - test/fixtures/onix_measurement_example.xml
202
- - test/fixtures/onix_no_contributors_example.xml
203
- - test/fixtures/onix_out_of_print_product_example.xml
204
- - test/fixtures/onix_preorder_product_example.xml
205
- - test/fixtures/onix_product_form_example.xml
206
- - test/fixtures/onix_published_product_example.xml
207
- - test/fixtures/onix_publisher_info_example.xml
208
- - test/fixtures/onix_record_identifiers_example.xml
209
- - test/fixtures/onix_sale_restrictions_example.xml
210
- - test/fixtures/onix_series_memberships_example.xml
211
- - test/fixtures/onix_supporting_resources_example.xml
212
- - test/fixtures/onix_texts_example.xml
213
- - test/fixtures/onix_title_with_collection_example.xml
214
- - test/fixtures/onix_titles_example.xml
215
- - test/helper.rb
216
- has_rdoc: true
166
+ - .gitignore
167
+ - .travis.yml
168
+ - FIELDS.rdoc
169
+ - Gemfile
170
+ - Gemfile.lock
171
+ - LICENSE.txt
172
+ - README.rdoc
173
+ - Rakefile
174
+ - elibri_onix.gemspec
175
+ - generate.rb
176
+ - lib/elibri_onix.rb
177
+ - lib/elibri_onix/external_id.rb
178
+ - lib/elibri_onix/external_timestamp.rb
179
+ - lib/elibri_onix/hash_id.rb
180
+ - lib/elibri_onix/inspector.rb
181
+ - lib/elibri_onix/nokogiri_patch.rb
182
+ - lib/elibri_onix/onix_3_0/audience_range.rb
183
+ - lib/elibri_onix/onix_3_0/collection.rb
184
+ - lib/elibri_onix/onix_3_0/contributor.rb
185
+ - lib/elibri_onix/onix_3_0/extent.rb
186
+ - lib/elibri_onix/onix_3_0/header.rb
187
+ - lib/elibri_onix/onix_3_0/imprint.rb
188
+ - lib/elibri_onix/onix_3_0/language.rb
189
+ - lib/elibri_onix/onix_3_0/measure.rb
190
+ - lib/elibri_onix/onix_3_0/onix_message.rb
191
+ - lib/elibri_onix/onix_3_0/price.rb
192
+ - lib/elibri_onix/onix_3_0/product.rb
193
+ - lib/elibri_onix/onix_3_0/product_identifier.rb
194
+ - lib/elibri_onix/onix_3_0/publisher.rb
195
+ - lib/elibri_onix/onix_3_0/publishing_date.rb
196
+ - lib/elibri_onix/onix_3_0/related_product.rb
197
+ - lib/elibri_onix/onix_3_0/sales_restriction.rb
198
+ - lib/elibri_onix/onix_3_0/sender.rb
199
+ - lib/elibri_onix/onix_3_0/stock_quantity_coded.rb
200
+ - lib/elibri_onix/onix_3_0/subject.rb
201
+ - lib/elibri_onix/onix_3_0/supplier.rb
202
+ - lib/elibri_onix/onix_3_0/supplier_identifier.rb
203
+ - lib/elibri_onix/onix_3_0/supply_detail.rb
204
+ - lib/elibri_onix/onix_3_0/supporting_resource.rb
205
+ - lib/elibri_onix/onix_3_0/text_content.rb
206
+ - lib/elibri_onix/onix_3_0/title_detail.rb
207
+ - lib/elibri_onix/onix_3_0/title_element.rb
208
+ - lib/elibri_onix/releases.rb
209
+ - lib/elibri_onix/version.rb
210
+ - test/elibri_audience_range_test.rb
211
+ - test/elibri_categories_test.rb
212
+ - test/elibri_contributors_test.rb
213
+ - test/elibri_edition_test.rb
214
+ - test/elibri_extensions_test.rb
215
+ - test/elibri_extent_test.rb
216
+ - test/elibri_languages_test.rb
217
+ - test/elibri_measurement_test.rb
218
+ - test/elibri_onix_release_3_0_onix_message_test.rb
219
+ - test/elibri_onix_test.rb
220
+ - test/elibri_product_form_test.rb
221
+ - test/elibri_publisher_info_test.rb
222
+ - test/elibri_publishing_status_test.rb
223
+ - test/elibri_record_identifiers_test.rb
224
+ - test/elibri_sale_restrictions_test.rb
225
+ - test/elibri_series_memberships_test.rb
226
+ - test/elibri_supporting_resources_test.rb
227
+ - test/elibri_texts_test.rb
228
+ - test/elibri_titles_test.rb
229
+ - test/fixtures/all_possible_tags.xml
230
+ - test/fixtures/old_dialect.xml
231
+ - test/fixtures/onix_announced_product_example.xml
232
+ - test/fixtures/onix_audience_range_example.xml
233
+ - test/fixtures/onix_audiobook_extent_example.xml
234
+ - test/fixtures/onix_categories_example.xml
235
+ - test/fixtures/onix_collective_work_example.xml
236
+ - test/fixtures/onix_contributors_example.xml
237
+ - test/fixtures/onix_ebook_extent_example.xml
238
+ - test/fixtures/onix_edition_example.xml
239
+ - test/fixtures/onix_elibri_extensions_example.xml
240
+ - test/fixtures/onix_languages_example.xml
241
+ - test/fixtures/onix_measurement_example.xml
242
+ - test/fixtures/onix_no_contributors_example.xml
243
+ - test/fixtures/onix_out_of_print_product_example.xml
244
+ - test/fixtures/onix_preorder_product_example.xml
245
+ - test/fixtures/onix_product_form_example.xml
246
+ - test/fixtures/onix_published_product_example.xml
247
+ - test/fixtures/onix_publisher_info_example.xml
248
+ - test/fixtures/onix_record_identifiers_example.xml
249
+ - test/fixtures/onix_sale_restrictions_example.xml
250
+ - test/fixtures/onix_series_memberships_example.xml
251
+ - test/fixtures/onix_supporting_resources_example.xml
252
+ - test/fixtures/onix_texts_example.xml
253
+ - test/fixtures/onix_title_with_collection_example.xml
254
+ - test/fixtures/onix_titles_example.xml
255
+ - test/helper.rb
217
256
  homepage: http://github.com/elibri/elibri_onix
218
257
  licenses:
219
- - MIT
258
+ - MIT
220
259
  post_install_message:
221
260
  rdoc_options: []
222
261
 
223
262
  require_paths:
224
- - lib
263
+ - lib
225
264
  required_ruby_version: !ruby/object:Gem::Requirement
226
265
  none: false
227
266
  requirements:
228
- - - ">="
229
- - !ruby/object:Gem::Version
230
- version: "0"
267
+ - - ">="
268
+ - !ruby/object:Gem::Version
269
+ hash: 3
270
+ segments:
271
+ - 0
272
+ version: "0"
231
273
  required_rubygems_version: !ruby/object:Gem::Requirement
232
274
  none: false
233
275
  requirements:
234
- - - ">="
235
- - !ruby/object:Gem::Version
236
- version: "0"
276
+ - - ">="
277
+ - !ruby/object:Gem::Version
278
+ hash: 3
279
+ segments:
280
+ - 0
281
+ version: "0"
237
282
  requirements: []
238
283
 
239
284
  rubyforge_project:
240
- rubygems_version: 1.5.1
285
+ rubygems_version: 1.8.21
241
286
  signing_key:
242
287
  specification_version: 3
243
288
  summary: EDItEUR ONIX format subset implementation used in Elibri publication system
244
289
  test_files:
245
- - test/elibri_audience_range_test.rb
246
- - test/elibri_categories_test.rb
247
- - test/elibri_contributors_test.rb
248
- - test/elibri_edition_test.rb
249
- - test/elibri_extensions_test.rb
250
- - test/elibri_extent_test.rb
251
- - test/elibri_languages_test.rb
252
- - test/elibri_measurement_test.rb
253
- - test/elibri_onix_release_3_0_onix_message_test.rb
254
- - test/elibri_onix_test.rb
255
- - test/elibri_product_form_test.rb
256
- - test/elibri_publisher_info_test.rb
257
- - test/elibri_publishing_status_test.rb
258
- - test/elibri_record_identifiers_test.rb
259
- - test/elibri_sale_restrictions_test.rb
260
- - test/elibri_series_memberships_test.rb
261
- - test/elibri_supporting_resources_test.rb
262
- - test/elibri_texts_test.rb
263
- - test/elibri_titles_test.rb
264
- - test/fixtures/all_possible_tags.xml
265
- - test/fixtures/old_dialect.xml
266
- - test/fixtures/onix_announced_product_example.xml
267
- - test/fixtures/onix_audience_range_example.xml
268
- - test/fixtures/onix_audiobook_extent_example.xml
269
- - test/fixtures/onix_categories_example.xml
270
- - test/fixtures/onix_collective_work_example.xml
271
- - test/fixtures/onix_contributors_example.xml
272
- - test/fixtures/onix_ebook_extent_example.xml
273
- - test/fixtures/onix_edition_example.xml
274
- - test/fixtures/onix_elibri_extensions_example.xml
275
- - test/fixtures/onix_languages_example.xml
276
- - test/fixtures/onix_measurement_example.xml
277
- - test/fixtures/onix_no_contributors_example.xml
278
- - test/fixtures/onix_out_of_print_product_example.xml
279
- - test/fixtures/onix_preorder_product_example.xml
280
- - test/fixtures/onix_product_form_example.xml
281
- - test/fixtures/onix_published_product_example.xml
282
- - test/fixtures/onix_publisher_info_example.xml
283
- - test/fixtures/onix_record_identifiers_example.xml
284
- - test/fixtures/onix_sale_restrictions_example.xml
285
- - test/fixtures/onix_series_memberships_example.xml
286
- - test/fixtures/onix_supporting_resources_example.xml
287
- - test/fixtures/onix_texts_example.xml
288
- - test/fixtures/onix_title_with_collection_example.xml
289
- - test/fixtures/onix_titles_example.xml
290
- - test/helper.rb
290
+ - test/elibri_audience_range_test.rb
291
+ - test/elibri_categories_test.rb
292
+ - test/elibri_contributors_test.rb
293
+ - test/elibri_edition_test.rb
294
+ - test/elibri_extensions_test.rb
295
+ - test/elibri_extent_test.rb
296
+ - test/elibri_languages_test.rb
297
+ - test/elibri_measurement_test.rb
298
+ - test/elibri_onix_release_3_0_onix_message_test.rb
299
+ - test/elibri_onix_test.rb
300
+ - test/elibri_product_form_test.rb
301
+ - test/elibri_publisher_info_test.rb
302
+ - test/elibri_publishing_status_test.rb
303
+ - test/elibri_record_identifiers_test.rb
304
+ - test/elibri_sale_restrictions_test.rb
305
+ - test/elibri_series_memberships_test.rb
306
+ - test/elibri_supporting_resources_test.rb
307
+ - test/elibri_texts_test.rb
308
+ - test/elibri_titles_test.rb
309
+ - test/fixtures/all_possible_tags.xml
310
+ - test/fixtures/old_dialect.xml
311
+ - test/fixtures/onix_announced_product_example.xml
312
+ - test/fixtures/onix_audience_range_example.xml
313
+ - test/fixtures/onix_audiobook_extent_example.xml
314
+ - test/fixtures/onix_categories_example.xml
315
+ - test/fixtures/onix_collective_work_example.xml
316
+ - test/fixtures/onix_contributors_example.xml
317
+ - test/fixtures/onix_ebook_extent_example.xml
318
+ - test/fixtures/onix_edition_example.xml
319
+ - test/fixtures/onix_elibri_extensions_example.xml
320
+ - test/fixtures/onix_languages_example.xml
321
+ - test/fixtures/onix_measurement_example.xml
322
+ - test/fixtures/onix_no_contributors_example.xml
323
+ - test/fixtures/onix_out_of_print_product_example.xml
324
+ - test/fixtures/onix_preorder_product_example.xml
325
+ - test/fixtures/onix_product_form_example.xml
326
+ - test/fixtures/onix_published_product_example.xml
327
+ - test/fixtures/onix_publisher_info_example.xml
328
+ - test/fixtures/onix_record_identifiers_example.xml
329
+ - test/fixtures/onix_sale_restrictions_example.xml
330
+ - test/fixtures/onix_series_memberships_example.xml
331
+ - test/fixtures/onix_supporting_resources_example.xml
332
+ - test/fixtures/onix_texts_example.xml
333
+ - test/fixtures/onix_title_with_collection_example.xml
334
+ - test/fixtures/onix_titles_example.xml
335
+ - test/helper.rb