elibri_onix 0.5.9 → 0.5.12
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 +4 -4
- data/lib/elibri_onix/onix_3_0/contributor.rb +5 -0
- data/lib/elibri_onix/onix_3_0/language.rb +9 -7
- data/lib/elibri_onix/onix_3_0/product.rb +38 -1
- data/lib/elibri_onix/version.rb +1 -1
- data/test/elibri_product_form_features_test.rb +20 -0
- data/test/fixtures/onix_board_game_example.xml +163 -0
- data/test/fixtures/onix_puzzle_example.xml +148 -0
- metadata +7 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: f35ee1e0afa694d9272a217403c3488b2d35d14c28889f8c620786677bb2b000
         | 
| 4 | 
            +
              data.tar.gz: e50e806f0567738b47de7cc6a61d9b17eec95f266d0e775be416b87ef2a7e565
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 29bca94cd3b107116505511104fd14d6c2d8efa278862788e97f67cb1460e247827a54436058a375280e027ca28dce5de1d918c14ee063f4315f8d357b8d33db
         | 
| 7 | 
            +
              data.tar.gz: eafe7a05a5c8fae9ce0af84619822cf8d1733fecbb44a3a31d1b3f87e0cc8a3c16166faca177a57b701f9994bea37ef68beeef9a921f69f3b59ed9abf9df1cbf
         | 
| @@ -69,6 +69,9 @@ module Elibri | |
| 69 69 | 
             
                    #:nodoc:
         | 
| 70 70 | 
             
                    attr_reader :unnamed_persons
         | 
| 71 71 |  | 
| 72 | 
            +
                    attr_reader :corporate_name
         | 
| 73 | 
            +
                    attr_reader :corporate_name_inverted
         | 
| 74 | 
            +
             | 
| 72 75 | 
             
                    #reprezentacja danych w xml-u
         | 
| 73 76 | 
             
                    attr_reader :to_xml
         | 
| 74 77 |  | 
| @@ -87,6 +90,8 @@ module Elibri | |
| 87 90 | 
             
                      @names_after_key = data.at_css('NamesAfterKey').try(:text)
         | 
| 88 91 | 
             
                      @biographical_note = data.at_css('BiographicalNote').try(:text)
         | 
| 89 92 | 
             
                      @unnamed_persons = data.at_css('UnnamedPersons').try(:text)
         | 
| 93 | 
            +
                      @corporate_name = data.at_css('CorporateName').try(:text)
         | 
| 94 | 
            +
                      @corporate_name_inverted = data.at_css('CorporateNameInverted').try(:text)
         | 
| 90 95 | 
             
                      set_eid(data)
         | 
| 91 96 | 
             
                      set_datestamp(data)
         | 
| 92 97 | 
             
                    end
         | 
| @@ -5,23 +5,23 @@ module Elibri | |
| 5 5 | 
             
                module Release_3_0
         | 
| 6 6 |  | 
| 7 7 | 
             
                  class Language
         | 
| 8 | 
            -
             | 
| 8 | 
            +
             | 
| 9 9 | 
             
                    #from ONIX documentation:
         | 
| 10 10 | 
             
                    #An optional and repeatable group of data elements which together represent a language, and specify its role and,
         | 
| 11 11 | 
             
                    #where required, whether it is a country variant.
         | 
| 12 | 
            -
             | 
| 12 | 
            +
             | 
| 13 13 | 
             
                    include Inspector
         | 
| 14 14 |  | 
| 15 15 | 
             
                    #:nodoc:       
         | 
| 16 16 | 
             
                    ATTRIBUTES = [
         | 
| 17 17 | 
             
                      :role, :code, :role_name, :language
         | 
| 18 18 | 
             
                    ]
         | 
| 19 | 
            -
             | 
| 19 | 
            +
             | 
| 20 20 | 
             
                    #:nodoc:
         | 
| 21 21 | 
             
                    RELATIONS = [
         | 
| 22 22 | 
             
                      :inspect_include_fields
         | 
| 23 23 | 
             
                    ]
         | 
| 24 | 
            -
             | 
| 24 | 
            +
             | 
| 25 25 | 
             
                    #:doc:       
         | 
| 26 26 | 
             
                    #kod onix roli, np. '01' 
         | 
| 27 27 | 
             
                    #pełna lista ról: https://github.com/elibri/elibri_onix_dict/blob/master/lib/elibri_onix_dict/onix_3_0/serialized/LanguageRole.yml
         | 
| @@ -33,7 +33,7 @@ module Elibri | |
| 33 33 |  | 
| 34 34 | 
             
                    #reprezentacja w xml
         | 
| 35 35 | 
             
                    attr_reader :to_xml
         | 
| 36 | 
            -
             | 
| 36 | 
            +
             | 
| 37 37 | 
             
                    def initialize(data)
         | 
| 38 38 | 
             
                      @to_xml = data.to_s
         | 
| 39 39 | 
             
                      @role = data.at_css('LanguageRole').try(:text)
         | 
| @@ -44,10 +44,12 @@ module Elibri | |
| 44 44 | 
             
                    def role_name
         | 
| 45 45 | 
             
                      Elibri::ONIX::Dict::Release_3_0::LanguageRole.find_by_onix_code(@role).const_name.downcase
         | 
| 46 46 | 
             
                    end
         | 
| 47 | 
            -
             | 
| 47 | 
            +
             | 
| 48 48 | 
             
                    #język, np. 'polski'
         | 
| 49 49 | 
             
                    def language
         | 
| 50 | 
            -
                      Elibri::ONIX::Dict::Release_3_0::LanguageCode.find_by_onix_code(@code).name(:pl).downcase
         | 
| 50 | 
            +
                      Elibri::ONIX::Dict::Release_3_0::LanguageCode.find_by_onix_code(@code).name(:pl).downcase rescue nil
         | 
| 51 | 
            +
                    rescue 
         | 
| 52 | 
            +
             | 
| 51 53 | 
             
                    end
         | 
| 52 54 |  | 
| 53 55 | 
             
                    def inspect_include_fields
         | 
| @@ -19,7 +19,9 @@ module Elibri | |
| 19 19 | 
             
                      :publisher, :product_form, :no_contributor, :edition_statement, :edition_type_onix_code, :number_of_illustrations, :publishing_status,
         | 
| 20 20 | 
             
                      :publishing_date, :premiere, :front_cover, :series_names, :city_of_publication,
         | 
| 21 21 | 
             
                      :preview_exists, :short_description, :sale_restricted_to_poland,
         | 
| 22 | 
            -
                      :technical_protection_onix_code, :unlimited_licence, :hyphenated_isbn, :preorder_embargo_date, :additional_trade_information
         | 
| 22 | 
            +
                      :technical_protection_onix_code, :unlimited_licence, :hyphenated_isbn, :preorder_embargo_date, :additional_trade_information,
         | 
| 23 | 
            +
                      :number_of_pieces, :players_number_from, :players_number_to, :playing_time_from, :playing_time_to
         | 
| 24 | 
            +
             | 
| 23 25 | 
             
                    ]
         | 
| 24 26 |  | 
| 25 27 | 
             
                    #:nodoc:
         | 
| @@ -190,6 +192,21 @@ module Elibri | |
| 190 192 | 
             
                    #dodatkowa informacja handlowa
         | 
| 191 193 | 
             
                    attr_reader :additional_trade_information
         | 
| 192 194 |  | 
| 195 | 
            +
                    #ilość elementów (puzzle, gry planszowe)      
         | 
| 196 | 
            +
                    attr_reader :number_of_pieces
         | 
| 197 | 
            +
             | 
| 198 | 
            +
                    #min. ilość graczy - gry planszowe
         | 
| 199 | 
            +
                    attr_reader :players_number_from
         | 
| 200 | 
            +
             
         | 
| 201 | 
            +
                    #max. ilość graczy - gry planszowe
         | 
| 202 | 
            +
                    attr_reader :players_number_to
         | 
| 203 | 
            +
             | 
| 204 | 
            +
                    #min. czas gry - gry planszowe
         | 
| 205 | 
            +
                    attr_reader :playing_time_from
         | 
| 206 | 
            +
             | 
| 207 | 
            +
                    #max. czas gry - gry planszowe
         | 
| 208 | 
            +
                    attr_reader :playing_time_to
         | 
| 209 | 
            +
             | 
| 193 210 | 
             
                    #:nodoc:
         | 
| 194 211 | 
             
                    attr_reader :text_contents
         | 
| 195 212 | 
             
                    attr_reader :file_size
         | 
| @@ -286,6 +303,7 @@ module Elibri | |
| 286 303 | 
             
                        @preview_exists = @supporting_resources.find { |sr| sr.content_type_name == "widget" && sr.link =~ /p.elibri.com.pl/ }.present?
         | 
| 287 304 | 
             
                      end
         | 
| 288 305 |  | 
| 306 | 
            +
                      product_form_features_setup(data.css("ProductFormFeature"))
         | 
| 289 307 |  | 
| 290 308 | 
             
                      publishing_details_setup(data.at_css('PublishingDetail')) if data.at_css('PublishingDetail')
         | 
| 291 309 | 
             
                      licence_information_setup(data)
         | 
| @@ -329,6 +347,23 @@ module Elibri | |
| 329 347 | 
             
                      end
         | 
| 330 348 | 
             
                    end
         | 
| 331 349 |  | 
| 350 | 
            +
                    def product_form_features_setup(data)
         | 
| 351 | 
            +
                      data.each do |feature|
         | 
| 352 | 
            +
                        ftype = feature.at_css("ProductFormFeatureType").inner_text
         | 
| 353 | 
            +
                        v1, v2 = feature.at_css("ProductFormFeatureValue, ProductFormFeatureDescription").inner_text.split("-").map(&:to_i)
         | 
| 354 | 
            +
             | 
| 355 | 
            +
                        if ftype == Elibri::ONIX::Dict::Release_3_0::ProductFormFeatureType::NUMBER_OF_GAME_PIECES
         | 
| 356 | 
            +
                          @number_of_pieces = v1
         | 
| 357 | 
            +
                        elsif ftype == Elibri::ONIX::Dict::Release_3_0::ProductFormFeatureType::GAME_PLAYERS
         | 
| 358 | 
            +
                          @players_number_from = v1
         | 
| 359 | 
            +
                          @players_number_to = v2
         | 
| 360 | 
            +
                        elsif ftype == Elibri::ONIX::Dict::Release_3_0::ProductFormFeatureType::GAME_PLAY_TIME
         | 
| 361 | 
            +
                          @playing_time_from = v1
         | 
| 362 | 
            +
                          @playing_time_to = v2
         | 
| 363 | 
            +
                        end
         | 
| 364 | 
            +
                      end
         | 
| 365 | 
            +
                    end
         | 
| 366 | 
            +
             | 
| 332 367 | 
             
                    def descriptive_details_setup(data)
         | 
| 333 368 | 
             
                      @product_composition = data.at_css('ProductComposition').try(:text)
         | 
| 334 369 | 
             
                      @product_form = data.at_css('ProductForm').try(:text)
         | 
| @@ -465,6 +500,8 @@ module Elibri | |
| 465 500 | 
             
                    #data premiery, jako instancja Date (tylko wtedy, gdy dokładna data jest znana)
         | 
| 466 501 | 
             
                    def premiere
         | 
| 467 502 | 
             
                      Date.new(*parsed_publishing_date) if parsed_publishing_date.size == 3
         | 
| 503 | 
            +
                    rescue ArgumentError
         | 
| 504 | 
            +
                      nil
         | 
| 468 505 | 
             
                    end
         | 
| 469 506 |  | 
| 470 507 | 
             
                    def related_products_record_references
         | 
    
        data/lib/elibri_onix/version.rb
    CHANGED
    
    
| @@ -0,0 +1,20 @@ | |
| 1 | 
            +
            require 'helper'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe Elibri::ONIX::Release_3_0::ONIXMessage do
         | 
| 4 | 
            +
             | 
| 5 | 
            +
              it "should be able to parse number of pieces info" do
         | 
| 6 | 
            +
                product = load_fixture("onix_puzzle_example.xml")
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                assert_equal 25, product.number_of_pieces
         | 
| 9 | 
            +
              end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
              it "should be able to parse playing time and number of players" do
         | 
| 12 | 
            +
                product = load_fixture("onix_board_game_example.xml")
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                assert_equal 2, product.players_number_from
         | 
| 15 | 
            +
                assert_equal 5, product.players_number_to
         | 
| 16 | 
            +
                assert_equal 20, product.playing_time_from
         | 
| 17 | 
            +
                assert_nil product.playing_time_to
         | 
| 18 | 
            +
              end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            end
         | 
| @@ -0,0 +1,163 @@ | |
| 1 | 
            +
            <?xml version="1.0" encoding="UTF-8"?>
         | 
| 2 | 
            +
            <ONIXMessage xmlns="http://ns.editeur.org/onix/3.0/reference" release="3.0">
         | 
| 3 | 
            +
              <Header>
         | 
| 4 | 
            +
                <Sender>
         | 
| 5 | 
            +
                  <SenderName>Elibri.com.pl</SenderName>
         | 
| 6 | 
            +
                  <ContactName>Tomasz Meka</ContactName>
         | 
| 7 | 
            +
                  <EmailAddress>kontakt@elibri.com.pl</EmailAddress>
         | 
| 8 | 
            +
                </Sender>
         | 
| 9 | 
            +
                <SentDateTime>20200118</SentDateTime>
         | 
| 10 | 
            +
              </Header>
         | 
| 11 | 
            +
              <Product>
         | 
| 12 | 
            +
                <RecordReference>76843e73500beb04ddf8</RecordReference>
         | 
| 13 | 
            +
                <!--NotificationType: CONFIRMED_ON_PUBLICATION--><NotificationType>03</NotificationType>
         | 
| 14 | 
            +
                <ProductIdentifier>
         | 
| 15 | 
            +
                  <!--ProductIDType: EAN--><ProductIDType>03</ProductIDType>
         | 
| 16 | 
            +
                  <IDValue>5902719470332</IDValue>
         | 
| 17 | 
            +
                </ProductIdentifier>
         | 
| 18 | 
            +
                <DescriptiveDetail>
         | 
| 19 | 
            +
                  <!--ProductComposition: SINGLE_COMPONENT_RETAIL_PRODUCT--><ProductComposition>00</ProductComposition>
         | 
| 20 | 
            +
                  <!--ProductFormCode: GAME--><ProductForm>ZE</ProductForm>
         | 
| 21 | 
            +
                  <ProductFormFeature>
         | 
| 22 | 
            +
                    <!--ProductFormFeatureType: GAME_PLAYERS--><ProductFormFeatureType>23</ProductFormFeatureType>
         | 
| 23 | 
            +
                    <ProductFormFeatureDescription>2-5 graczy</ProductFormFeatureDescription>
         | 
| 24 | 
            +
                  </ProductFormFeature>
         | 
| 25 | 
            +
                  <ProductFormFeature>
         | 
| 26 | 
            +
                    <!--ProductFormFeatureType: GAME_PLAY_TIME--><ProductFormFeatureType>24</ProductFormFeatureType>
         | 
| 27 | 
            +
                    <ProductFormFeatureValue>20</ProductFormFeatureValue>
         | 
| 28 | 
            +
                  </ProductFormFeature>
         | 
| 29 | 
            +
                  <ProductClassification>
         | 
| 30 | 
            +
                    <!--ProductClassificationType: PKWIU--><ProductClassificationType>12</ProductClassificationType>
         | 
| 31 | 
            +
                    <ProductClassificationCode>32.40.39.0</ProductClassificationCode>
         | 
| 32 | 
            +
                  </ProductClassification>
         | 
| 33 | 
            +
                  <Collection>
         | 
| 34 | 
            +
                    <!--CollectionType: PUBLISHER_COLLECTION--><CollectionType>10</CollectionType>
         | 
| 35 | 
            +
                    <TitleDetail>
         | 
| 36 | 
            +
                      <!--TitleType: DISTINCTIVE_TITLE--><TitleType>01</TitleType>
         | 
| 37 | 
            +
                      <TitleElement>
         | 
| 38 | 
            +
                        <!--TitleElementLevel: COLLECTION--><TitleElementLevel>02</TitleElementLevel>
         | 
| 39 | 
            +
                        <TitleText>Gry planszowe</TitleText>
         | 
| 40 | 
            +
                      </TitleElement>
         | 
| 41 | 
            +
                    </TitleDetail>
         | 
| 42 | 
            +
                  </Collection>
         | 
| 43 | 
            +
                  <TitleDetail>
         | 
| 44 | 
            +
                    <!--TitleType: DISTINCTIVE_TITLE--><TitleType>01</TitleType>
         | 
| 45 | 
            +
                    <TitleElement>
         | 
| 46 | 
            +
                      <!--TitleElementLevel: PRODUCT--><TitleElementLevel>01</TitleElementLevel>
         | 
| 47 | 
            +
                      <TitleText>Jamniki</TitleText>
         | 
| 48 | 
            +
                    </TitleElement>
         | 
| 49 | 
            +
                  </TitleDetail>
         | 
| 50 | 
            +
                  <TitleDetail>
         | 
| 51 | 
            +
                    <!--TitleType: DISTRIBUTORS_TITLE--><TitleType>10</TitleType>
         | 
| 52 | 
            +
                    <TitleElement>
         | 
| 53 | 
            +
                      <!--TitleElementLevel: PRODUCT--><TitleElementLevel>01</TitleElementLevel>
         | 
| 54 | 
            +
                      <TitleText>JAMNIKI</TitleText>
         | 
| 55 | 
            +
                    </TitleElement>
         | 
| 56 | 
            +
                  </TitleDetail>
         | 
| 57 | 
            +
                  <Contributor sourcename="contributorid:201641" datestamp="20200118T2047">
         | 
| 58 | 
            +
                    <SequenceNumber>1</SequenceNumber>
         | 
| 59 | 
            +
                    <!--ContributorRole: AUTHOR--><ContributorRole>A01</ContributorRole>
         | 
| 60 | 
            +
                    <PersonName>David Short</PersonName>
         | 
| 61 | 
            +
                    <NamesBeforeKey>David</NamesBeforeKey>
         | 
| 62 | 
            +
                    <KeyNames>Short</KeyNames>
         | 
| 63 | 
            +
                  </Contributor>
         | 
| 64 | 
            +
                  <Contributor sourcename="contributorid:201642" datestamp="20200118T2047">
         | 
| 65 | 
            +
                    <SequenceNumber>2</SequenceNumber>
         | 
| 66 | 
            +
                    <!--ContributorRole: ILLUSTRATOR--><ContributorRole>A12</ContributorRole>
         | 
| 67 | 
            +
                    <PersonName>Maciej Szymanowicz</PersonName>
         | 
| 68 | 
            +
                    <NamesBeforeKey>Maciej</NamesBeforeKey>
         | 
| 69 | 
            +
                    <KeyNames>Szymanowicz</KeyNames>
         | 
| 70 | 
            +
                  </Contributor>
         | 
| 71 | 
            +
                  <Language>
         | 
| 72 | 
            +
                    <!--LanguageRole: LANGUAGE_OF_TEXT--><LanguageRole>01</LanguageRole>
         | 
| 73 | 
            +
                    <!--LanguageCode: Polish--><LanguageCode>pol</LanguageCode>
         | 
| 74 | 
            +
                  </Language>
         | 
| 75 | 
            +
                  <Subject>
         | 
| 76 | 
            +
                    <!--SubjectSchemeIdentifier: PROPRIETARY--><SubjectSchemeIdentifier>24</SubjectSchemeIdentifier>
         | 
| 77 | 
            +
                    <SubjectSchemeName>Nasza Księgarnia</SubjectSchemeName>
         | 
| 78 | 
            +
                    <SubjectCode>871</SubjectCode>
         | 
| 79 | 
            +
                    <SubjectHeadingText>Gry planszowe</SubjectHeadingText>
         | 
| 80 | 
            +
                  </Subject>
         | 
| 81 | 
            +
                  <AudienceRange>
         | 
| 82 | 
            +
                    <!--AudienceRangeQualifier: READING_AGE--><AudienceRangeQualifier>18</AudienceRangeQualifier>
         | 
| 83 | 
            +
                    <!--AudienceRangePrecision: FROM--><AudienceRangePrecision>03</AudienceRangePrecision>
         | 
| 84 | 
            +
                    <AudienceRangeValue>6</AudienceRangeValue>
         | 
| 85 | 
            +
                  </AudienceRange>
         | 
| 86 | 
            +
                  <AudienceRange>
         | 
| 87 | 
            +
                    <!--AudienceRangeQualifier: READING_AGE--><AudienceRangeQualifier>18</AudienceRangeQualifier>
         | 
| 88 | 
            +
                    <!--AudienceRangePrecision: TO--><AudienceRangePrecision>04</AudienceRangePrecision>
         | 
| 89 | 
            +
                    <AudienceRangeValue>106</AudienceRangeValue>
         | 
| 90 | 
            +
                  </AudienceRange>
         | 
| 91 | 
            +
                </DescriptiveDetail>
         | 
| 92 | 
            +
                <CollateralDetail>
         | 
| 93 | 
            +
                  <TextContent sourcename="textid:109999" datestamp="20200118T2047">
         | 
| 94 | 
            +
                    <!--OtherTextType: MAIN_DESCRIPTION--><TextType>03</TextType>
         | 
| 95 | 
            +
                    <!--ContentAudience: UNRESTRICTED--><ContentAudience>00</ContentAudience>
         | 
| 96 | 
            +
                    <Text>
         | 
| 97 | 
            +
                      <![CDATA[<p>
         | 
| 98 | 
            +
             <strong>UBIERZ JAMNIKA W KUBRACZEK!</strong></p>
         | 
| 99 | 
            +
             <p>
         | 
| 100 | 
            +
             Podczas gry Twój jamnik będzie rósł, musisz więc ubierać go w coraz większy kubraczek. Staraj się, aby na kubraczku było jak najwięcej symboli kostek – zdobędziesz za nie punkty! Dodatkowe punkty dostaniesz za kolory kubraczka.</p>
         | 
| 101 | 
            +
            ]]>
         | 
| 102 | 
            +
                    </Text>
         | 
| 103 | 
            +
                  </TextContent>
         | 
| 104 | 
            +
                </CollateralDetail>
         | 
| 105 | 
            +
                <PublishingDetail>
         | 
| 106 | 
            +
                  <Publisher>
         | 
| 107 | 
            +
                    <PublishingRole>01</PublishingRole>
         | 
| 108 | 
            +
                    <PublisherIdentifier>
         | 
| 109 | 
            +
                      <PublisherIDType>01</PublisherIDType>
         | 
| 110 | 
            +
                      <IDTypeName>ElibriPublisherCode</IDTypeName>
         | 
| 111 | 
            +
                      <IDValue>41</IDValue>
         | 
| 112 | 
            +
                    </PublisherIdentifier>
         | 
| 113 | 
            +
                    <PublisherName>Nasza Księgarnia</PublisherName>
         | 
| 114 | 
            +
                  </Publisher>
         | 
| 115 | 
            +
                  <CityOfPublication>Warszawa</CityOfPublication>
         | 
| 116 | 
            +
                  <!--PublishingStatusCode: ACTIVE--><PublishingStatus>04</PublishingStatus>
         | 
| 117 | 
            +
                  <PublishingDate>
         | 
| 118 | 
            +
                    <!--PublishingDateRole: PUBLICATION_DATE--><PublishingDateRole>01</PublishingDateRole>
         | 
| 119 | 
            +
                    <!--DateFormat: YYYYMMDD--><DateFormat>00</DateFormat>
         | 
| 120 | 
            +
                    <Date dateformat="00">20180919</Date>
         | 
| 121 | 
            +
                  </PublishingDate>
         | 
| 122 | 
            +
                  <PublishingDate>
         | 
| 123 | 
            +
                    <!--PublishingDateRole: PREORDER_EMBARGO_DATE--><PublishingDateRole>27</PublishingDateRole>
         | 
| 124 | 
            +
                    <!--DateFormat: YYYYMMDD--><DateFormat>00</DateFormat>
         | 
| 125 | 
            +
                    <Date dateformat="00">20180905</Date>
         | 
| 126 | 
            +
                  </PublishingDate>
         | 
| 127 | 
            +
                  <SalesRights>
         | 
| 128 | 
            +
                    <!--SalesRightsType: FOR_SALE_WITH_EXLUSIVE_RIGHTS--><SalesRightsType>01</SalesRightsType>
         | 
| 129 | 
            +
                    <Territory>
         | 
| 130 | 
            +
                      <CountriesIncluded>PL</CountriesIncluded>
         | 
| 131 | 
            +
                    </Territory>
         | 
| 132 | 
            +
                  </SalesRights>
         | 
| 133 | 
            +
                </PublishingDetail>
         | 
| 134 | 
            +
                <ProductSupply>
         | 
| 135 | 
            +
                  <SupplyDetail>
         | 
| 136 | 
            +
                    <Supplier>
         | 
| 137 | 
            +
                      <!--SupplierRole: PUB_TO_RET--><SupplierRole>01</SupplierRole>
         | 
| 138 | 
            +
                      <SupplierIdentifier>
         | 
| 139 | 
            +
                        <!--SupplierIDType: VAT_IDENTITY_NUMBER--><SupplierIDType>23</SupplierIDType>
         | 
| 140 | 
            +
                        <IDValue>PL5260205285</IDValue>
         | 
| 141 | 
            +
                      </SupplierIdentifier>
         | 
| 142 | 
            +
                      <SupplierName>Nasza Księgarnia</SupplierName>
         | 
| 143 | 
            +
                    </Supplier>
         | 
| 144 | 
            +
                    <!--ProductAvailabilityType: IN_STOCK--><ProductAvailability>21</ProductAvailability>
         | 
| 145 | 
            +
                    <Stock>
         | 
| 146 | 
            +
                      <OnHand>200</OnHand>
         | 
| 147 | 
            +
                      <!--Proximity: MORE_THAN--><Proximity>07</Proximity>
         | 
| 148 | 
            +
                    </Stock>
         | 
| 149 | 
            +
                    <PackQuantity>12</PackQuantity>
         | 
| 150 | 
            +
                    <Price>
         | 
| 151 | 
            +
                      <!--PriceTypeCode: RRP_WITH_TAX--><PriceType>02</PriceType>
         | 
| 152 | 
            +
                      <PriceAmount>59.9</PriceAmount>
         | 
| 153 | 
            +
                      <Tax>
         | 
| 154 | 
            +
                        <!--TaxType: VAT--><TaxType>01</TaxType>
         | 
| 155 | 
            +
                        <TaxRatePercent>23</TaxRatePercent>
         | 
| 156 | 
            +
                      </Tax>
         | 
| 157 | 
            +
                      <CurrencyCode>PLN</CurrencyCode>
         | 
| 158 | 
            +
                      <!--PricePrintedOnProduct: NO--><PrintedOnProduct>01</PrintedOnProduct>
         | 
| 159 | 
            +
                    </Price>
         | 
| 160 | 
            +
                  </SupplyDetail>
         | 
| 161 | 
            +
                </ProductSupply>
         | 
| 162 | 
            +
              </Product>
         | 
| 163 | 
            +
            </ONIXMessage>
         | 
| @@ -0,0 +1,148 @@ | |
| 1 | 
            +
            <?xml version="1.0" encoding="UTF-8"?>
         | 
| 2 | 
            +
            <ONIXMessage xmlns="http://ns.editeur.org/onix/3.0/reference" release="3.0">
         | 
| 3 | 
            +
              <Header>
         | 
| 4 | 
            +
                <Sender>
         | 
| 5 | 
            +
                  <SenderName>Elibri.com.pl</SenderName>
         | 
| 6 | 
            +
                  <ContactName>Tomasz Meka</ContactName>
         | 
| 7 | 
            +
                  <EmailAddress>kontakt@elibri.com.pl</EmailAddress>
         | 
| 8 | 
            +
                </Sender>
         | 
| 9 | 
            +
                <SentDateTime>20200118</SentDateTime>
         | 
| 10 | 
            +
              </Header>
         | 
| 11 | 
            +
              <Product>
         | 
| 12 | 
            +
                <RecordReference>85b3ad798e01c3b5ee67</RecordReference>
         | 
| 13 | 
            +
                <!--NotificationType: CONFIRMED_ON_PUBLICATION--><NotificationType>03</NotificationType>
         | 
| 14 | 
            +
                <ProductIdentifier>
         | 
| 15 | 
            +
                  <!--ProductIDType: EAN--><ProductIDType>03</ProductIDType>
         | 
| 16 | 
            +
                  <IDValue>5902719471810</IDValue>
         | 
| 17 | 
            +
                </ProductIdentifier>
         | 
| 18 | 
            +
                <DescriptiveDetail>
         | 
| 19 | 
            +
                  <!--ProductComposition: SINGLE_COMPONENT_RETAIL_PRODUCT--><ProductComposition>00</ProductComposition>
         | 
| 20 | 
            +
                  <!--ProductFormCode: JIGSAW--><ProductForm>ZJ</ProductForm>
         | 
| 21 | 
            +
                  <ProductFormFeature>
         | 
| 22 | 
            +
                    <!--ProductFormFeatureType: NUMBER_OF_GAME_PIECES--><ProductFormFeatureType>22</ProductFormFeatureType>
         | 
| 23 | 
            +
                    <ProductFormFeatureValue>25</ProductFormFeatureValue>
         | 
| 24 | 
            +
                  </ProductFormFeature>
         | 
| 25 | 
            +
                  <ProductClassification>
         | 
| 26 | 
            +
                    <!--ProductClassificationType: PKWIU--><ProductClassificationType>12</ProductClassificationType>
         | 
| 27 | 
            +
                    <ProductClassificationCode>32.40.32</ProductClassificationCode>
         | 
| 28 | 
            +
                  </ProductClassification>
         | 
| 29 | 
            +
                  <Collection>
         | 
| 30 | 
            +
                    <!--CollectionType: PUBLISHER_COLLECTION--><CollectionType>10</CollectionType>
         | 
| 31 | 
            +
                    <TitleDetail>
         | 
| 32 | 
            +
                      <!--TitleType: DISTINCTIVE_TITLE--><TitleType>01</TitleType>
         | 
| 33 | 
            +
                      <TitleElement>
         | 
| 34 | 
            +
                        <!--TitleElementLevel: COLLECTION--><TitleElementLevel>02</TitleElementLevel>
         | 
| 35 | 
            +
                        <TitleText>Puzzle</TitleText>
         | 
| 36 | 
            +
                      </TitleElement>
         | 
| 37 | 
            +
                    </TitleDetail>
         | 
| 38 | 
            +
                  </Collection>
         | 
| 39 | 
            +
                  <TitleDetail>
         | 
| 40 | 
            +
                    <!--TitleType: DISTINCTIVE_TITLE--><TitleType>01</TitleType>
         | 
| 41 | 
            +
                    <TitleElement>
         | 
| 42 | 
            +
                      <!--TitleElementLevel: PRODUCT--><TitleElementLevel>01</TitleElementLevel>
         | 
| 43 | 
            +
                      <TitleText>Pucio. Puzzle: Co tu pasuje?</TitleText>
         | 
| 44 | 
            +
                    </TitleElement>
         | 
| 45 | 
            +
                  </TitleDetail>
         | 
| 46 | 
            +
                  <TitleDetail>
         | 
| 47 | 
            +
                    <!--TitleType: DISTRIBUTORS_TITLE--><TitleType>10</TitleType>
         | 
| 48 | 
            +
                    <TitleElement>
         | 
| 49 | 
            +
                      <!--TitleElementLevel: PRODUCT--><TitleElementLevel>01</TitleElementLevel>
         | 
| 50 | 
            +
                      <TitleText>PUCIO. PUZZLE: CO TU PASUJE?</TitleText>
         | 
| 51 | 
            +
                    </TitleElement>
         | 
| 52 | 
            +
                  </TitleDetail>
         | 
| 53 | 
            +
                  <Contributor sourcename="contributorid:210002" datestamp="20190116T1724">
         | 
| 54 | 
            +
                    <SequenceNumber>1</SequenceNumber>
         | 
| 55 | 
            +
                    <!--ContributorRole: AUTHOR--><ContributorRole>A01</ContributorRole>
         | 
| 56 | 
            +
                    <PersonName>Marta Galewska-Kustra</PersonName>
         | 
| 57 | 
            +
                    <NamesBeforeKey>Marta</NamesBeforeKey>
         | 
| 58 | 
            +
                    <KeyNames>Galewska-Kustra</KeyNames>
         | 
| 59 | 
            +
                  </Contributor>
         | 
| 60 | 
            +
                  <Contributor sourcename="contributorid:210003" datestamp="20190116T1724">
         | 
| 61 | 
            +
                    <SequenceNumber>2</SequenceNumber>
         | 
| 62 | 
            +
                    <!--ContributorRole: ILLUSTRATOR--><ContributorRole>A12</ContributorRole>
         | 
| 63 | 
            +
                    <PersonName>Joanna Kłos</PersonName>
         | 
| 64 | 
            +
                    <NamesBeforeKey>Joanna</NamesBeforeKey>
         | 
| 65 | 
            +
                    <KeyNames>Kłos</KeyNames>
         | 
| 66 | 
            +
                  </Contributor>
         | 
| 67 | 
            +
                  <Language>
         | 
| 68 | 
            +
                    <!--LanguageRole: LANGUAGE_OF_TEXT--><LanguageRole>01</LanguageRole>
         | 
| 69 | 
            +
                    <!--LanguageCode: Polish--><LanguageCode>pol</LanguageCode>
         | 
| 70 | 
            +
                  </Language>
         | 
| 71 | 
            +
                </DescriptiveDetail>
         | 
| 72 | 
            +
                <CollateralDetail>
         | 
| 73 | 
            +
                  <TextContent sourcename="textid:115723" datestamp="20190116T1724">
         | 
| 74 | 
            +
                    <!--OtherTextType: MAIN_DESCRIPTION--><TextType>03</TextType>
         | 
| 75 | 
            +
                    <!--ContentAudience: UNRESTRICTED--><ContentAudience>00</ContentAudience>
         | 
| 76 | 
            +
                    <Text>
         | 
| 77 | 
            +
                      <![CDATA[<p>
         | 
| 78 | 
            +
             <strong>Wreszcie są! Długo wyczekiwane, mądre i piękne zabawki z PUCIEM!</strong></p>
         | 
| 79 | 
            +
             <p>
         | 
| 80 | 
            +
             Uwielbiany przez dzieci i rodziców bohater bestsellerowej serii Marty Galewskiej-Kustry, fenomenalnie ilustrowanej przez Joannę Kłos, w końcu wykracza poza karty książek i pojawia się także na puzzlach! Zapraszamy do wspólnej zabawy i nauki!</p>
         | 
| 81 | 
            +
             <p>
         | 
| 82 | 
            +
             Puzzle przeznaczone dla dzieci od 2 lat. Składają się z 5 obrazków głównych oraz 20 uzupełniających. Na obrazkach głównych jest Pucio w znanych dziecku codziennych sytuacjach (np. jedzenie posiłku, poranna toaleta, ubieranie się). Elementy uzupełniające przedstawiają pojedyncze obiekty zaprezentowane także na obrazku głównym (np. kanapka, szczoteczka do zębów, czapka). Dziecko ma się przyjrzeć obrazkowi głównemu, odnaleźć pasujące do niego elementy uzupełniające i dołączyć je do obrazka głównego.</p>
         | 
| 83 | 
            +
             <p>
         | 
| 84 | 
            +
             To na pozór proste zadanie wymaga skupienia uwagi na ilustracji, rozwija spostrzegawczość i mowę, ale przede wszystkim pobudza do myślenia. Mimo niedużej liczby elementów puzzle dają okazję do wielu zabaw o różnym stopniu trudności. </p>
         | 
| 85 | 
            +
             <p>
         | 
| 86 | 
            +
             Wyprodukowano w Polsce.</p>
         | 
| 87 | 
            +
            ]]>
         | 
| 88 | 
            +
                    </Text>
         | 
| 89 | 
            +
                  </TextContent>
         | 
| 90 | 
            +
                </CollateralDetail>
         | 
| 91 | 
            +
                <PublishingDetail>
         | 
| 92 | 
            +
                  <Publisher>
         | 
| 93 | 
            +
                    <PublishingRole>01</PublishingRole>
         | 
| 94 | 
            +
                    <PublisherIdentifier>
         | 
| 95 | 
            +
                      <PublisherIDType>01</PublisherIDType>
         | 
| 96 | 
            +
                      <IDTypeName>ElibriPublisherCode</IDTypeName>
         | 
| 97 | 
            +
                      <IDValue>41</IDValue>
         | 
| 98 | 
            +
                    </PublisherIdentifier>
         | 
| 99 | 
            +
                    <PublisherName>Nasza Księgarnia</PublisherName>
         | 
| 100 | 
            +
                  </Publisher>
         | 
| 101 | 
            +
                  <CityOfPublication>Warszawa</CityOfPublication>
         | 
| 102 | 
            +
                  <!--PublishingStatusCode: ACTIVE--><PublishingStatus>04</PublishingStatus>
         | 
| 103 | 
            +
                  <PublishingDate>
         | 
| 104 | 
            +
                    <!--PublishingDateRole: PUBLICATION_DATE--><PublishingDateRole>01</PublishingDateRole>
         | 
| 105 | 
            +
                    <!--DateFormat: YYYYMMDD--><DateFormat>00</DateFormat>
         | 
| 106 | 
            +
                    <Date dateformat="00">20190227</Date>
         | 
| 107 | 
            +
                  </PublishingDate>
         | 
| 108 | 
            +
                  <PublishingDate>
         | 
| 109 | 
            +
                    <!--PublishingDateRole: PREORDER_EMBARGO_DATE--><PublishingDateRole>27</PublishingDateRole>
         | 
| 110 | 
            +
                    <!--DateFormat: YYYYMMDD--><DateFormat>00</DateFormat>
         | 
| 111 | 
            +
                    <Date dateformat="00">20190213</Date>
         | 
| 112 | 
            +
                  </PublishingDate>
         | 
| 113 | 
            +
                  <SalesRights>
         | 
| 114 | 
            +
                    <!--SalesRightsType: FOR_SALE_WITH_EXLUSIVE_RIGHTS--><SalesRightsType>01</SalesRightsType>
         | 
| 115 | 
            +
                    <Territory>
         | 
| 116 | 
            +
                      <CountriesIncluded>PL</CountriesIncluded>
         | 
| 117 | 
            +
                    </Territory>
         | 
| 118 | 
            +
                  </SalesRights>
         | 
| 119 | 
            +
                </PublishingDetail>
         | 
| 120 | 
            +
                <ProductSupply>
         | 
| 121 | 
            +
                  <SupplyDetail>
         | 
| 122 | 
            +
                    <Supplier>
         | 
| 123 | 
            +
                      <!--SupplierRole: PUB_TO_RET--><SupplierRole>01</SupplierRole>
         | 
| 124 | 
            +
                      <SupplierIdentifier>
         | 
| 125 | 
            +
                        <!--SupplierIDType: VAT_IDENTITY_NUMBER--><SupplierIDType>23</SupplierIDType>
         | 
| 126 | 
            +
                        <IDValue>PL5260205285</IDValue>
         | 
| 127 | 
            +
                      </SupplierIdentifier>
         | 
| 128 | 
            +
                      <SupplierName>Nasza Księgarnia</SupplierName>
         | 
| 129 | 
            +
                    </Supplier>
         | 
| 130 | 
            +
                    <!--ProductAvailabilityType: NOT_AVAILABLE--><ProductAvailability>40</ProductAvailability>
         | 
| 131 | 
            +
                    <Stock>
         | 
| 132 | 
            +
                      <OnHand>0</OnHand>
         | 
| 133 | 
            +
                      <!--Proximity: EXACTLY--><Proximity>03</Proximity>
         | 
| 134 | 
            +
                    </Stock>
         | 
| 135 | 
            +
                    <Price>
         | 
| 136 | 
            +
                      <!--PriceTypeCode: RRP_WITH_TAX--><PriceType>02</PriceType>
         | 
| 137 | 
            +
                      <PriceAmount>24.9</PriceAmount>
         | 
| 138 | 
            +
                      <Tax>
         | 
| 139 | 
            +
                        <!--TaxType: VAT--><TaxType>01</TaxType>
         | 
| 140 | 
            +
                        <TaxRatePercent>23</TaxRatePercent>
         | 
| 141 | 
            +
                      </Tax>
         | 
| 142 | 
            +
                      <CurrencyCode>PLN</CurrencyCode>
         | 
| 143 | 
            +
                      <!--PricePrintedOnProduct: NO--><PrintedOnProduct>01</PrintedOnProduct>
         | 
| 144 | 
            +
                    </Price>
         | 
| 145 | 
            +
                  </SupplyDetail>
         | 
| 146 | 
            +
                </ProductSupply>
         | 
| 147 | 
            +
              </Product>
         | 
| 148 | 
            +
            </ONIXMessage>
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: elibri_onix
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.5. | 
| 4 | 
            +
              version: 0.5.12
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Marcin Urbanski
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2020-01- | 
| 12 | 
            +
            date: 2020-01-18 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: activesupport
         | 
| @@ -217,6 +217,7 @@ files: | |
| 217 217 | 
             
            - test/elibri_onix_message_attributes_test.rb
         | 
| 218 218 | 
             
            - test/elibri_onix_release_3_0_onix_message_test.rb
         | 
| 219 219 | 
             
            - test/elibri_onix_test.rb
         | 
| 220 | 
            +
            - test/elibri_product_form_features_test.rb
         | 
| 220 221 | 
             
            - test/elibri_product_form_test.rb
         | 
| 221 222 | 
             
            - test/elibri_publisher_info_test.rb
         | 
| 222 223 | 
             
            - test/elibri_publishing_status_test.rb
         | 
| @@ -236,6 +237,7 @@ files: | |
| 236 237 | 
             
            - test/fixtures/onix_audience_range_example.xml
         | 
| 237 238 | 
             
            - test/fixtures/onix_audiobook_example.xml
         | 
| 238 239 | 
             
            - test/fixtures/onix_audiobook_extent_example.xml
         | 
| 240 | 
            +
            - test/fixtures/onix_board_game_example.xml
         | 
| 239 241 | 
             
            - test/fixtures/onix_collective_work_example.xml
         | 
| 240 242 | 
             
            - test/fixtures/onix_contributors_example.xml
         | 
| 241 243 | 
             
            - test/fixtures/onix_ebook_extent_example.xml
         | 
| @@ -252,6 +254,7 @@ files: | |
| 252 254 | 
             
            - test/fixtures/onix_published_group_product_example.xml
         | 
| 253 255 | 
             
            - test/fixtures/onix_published_product_example.xml
         | 
| 254 256 | 
             
            - test/fixtures/onix_publisher_info_example.xml
         | 
| 257 | 
            +
            - test/fixtures/onix_puzzle_example.xml
         | 
| 255 258 | 
             
            - test/fixtures/onix_record_identifiers_example.xml
         | 
| 256 259 | 
             
            - test/fixtures/onix_related_products_example.xml
         | 
| 257 260 | 
             
            - test/fixtures/onix_removed_elibri_extensions.xml
         | 
| @@ -284,7 +287,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 284 287 | 
             
                - !ruby/object:Gem::Version
         | 
| 285 288 | 
             
                  version: '0'
         | 
| 286 289 | 
             
            requirements: []
         | 
| 287 | 
            -
             | 
| 290 | 
            +
            rubyforge_project: 
         | 
| 291 | 
            +
            rubygems_version: 2.7.9
         | 
| 288 292 | 
             
            signing_key: 
         | 
| 289 293 | 
             
            specification_version: 4
         | 
| 290 294 | 
             
            summary: EDItEUR ONIX format subset implementation used in Elibri publication system
         |