elibri_onix 0.5.7 → 0.5.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ff669eaa352e69ad1d7bc7e8261db9a2f478793a2f9fc0a2c9bd07efc665ccd2
4
- data.tar.gz: f7a6a113cf206e37fbf8e135d3fc8367c6959a1c93f60c1c2a4d0db99f25c814
3
+ metadata.gz: e5ea523876f8d6c3592cb2a0db236799034257c23b8e2b7a66ee9b1554138348
4
+ data.tar.gz: 75d75d545d5a86401dd99152e56dc8dfcc8215aa6e6073c9c3695d00cac5d7f1
5
5
  SHA512:
6
- metadata.gz: f9d76b9732944ec1e3835e12cc4f8ffff8c9e988d9105b45d6fd3d1982bc0935b22db900e595a492330149c144a41570ca5baeebd1220bb4710e0d4554041a21
7
- data.tar.gz: efa8683c0d127665652caa2abc96d4091c2653267125796d2c3d066e4b2d9d1f85adfc43e2d4ad55621e78ead2925ae9d8c1dc36f73b9d7db0576b79893751d8
6
+ metadata.gz: a6b5248d7dbb0b983bf2e58fa8debd020a8157645e979c8311c8d1c817c12dda7efeecc135d9b2fc07bd4cabc6a5bc1cce7007c47749766a4a7ac5e58191df32
7
+ data.tar.gz: 18602e1caa0e78b55ea9f541aa4dc67500ae28bf311d5e03be459731b78a54cd9c3000e38ef88d1622ec2870d2d4a8b0f77b1410d1e027cd0337c941fd0580d4
@@ -27,7 +27,7 @@ module Elibri
27
27
  end
28
28
 
29
29
  def type_name
30
- Elibri::ONIX::Dict::Release_3_0::MeasureType.find_by_onix_code(@type).const_name.downcase
30
+ Elibri::ONIX::Dict::Release_3_0::MeasureType.find_by_onix_code(@type).try(:const_name).try(:downcase)
31
31
  end
32
32
 
33
33
  def inspect_include_fields
@@ -269,7 +269,7 @@ module Elibri
269
269
  @cover_price = BigDecimal(data.at_xpath('elibri:CoverPrice').try(:text)) if data.at_xpath('elibri:CoverPrice')
270
270
  @vat = data.at_xpath('elibri:Vat').try(:text).try(:to_i)
271
271
  else
272
- price_sd = @supply_details.find { |sd| sd.supplier.role == Elibri::ONIX::Dict::Release_3_0::SupplierRole::PUB_TO_RET }
272
+ price_sd = @supply_details.find { |sd| sd.supplier && sd.supplier.role == Elibri::ONIX::Dict::Release_3_0::SupplierRole::PUB_TO_RET }
273
273
  if price_sd && price_sd.price && price_sd.price && price_sd.price.type == Elibri::ONIX::Dict::Release_3_0::PriceTypeCode::RRP_WITH_TAX
274
274
  @vat = price_sd.price.tax_rate_percent.to_i
275
275
  @cover_price = price_sd.price.amount
@@ -316,9 +316,8 @@ module Elibri
316
316
  @licence_limited_to = Date.new(date[0...4].to_i, date[4...6].to_i, date[6...8].to_i)
317
317
  end
318
318
  else
319
- daten = data.css('PublishingDate').find { |d| d.at_css("PublishingDateRole").text == Elibri::ONIX::Dict::Release_3_0::PublishingDateRole::OUT_OF_PRINT_DATE }
319
+ daten = data.css('PublishingDate').find { |d| d.at_css("PublishingDateRole") && d.at_css("PublishingDateRole").text == Elibri::ONIX::Dict::Release_3_0::PublishingDateRole::OUT_OF_PRINT_DATE }
320
320
  if daten
321
-
322
321
  date = daten.at_css('Date').text
323
322
  @licence_limited_to_before_type_cast = date
324
323
  @licence_limited_to = Date.new(date[0...4].to_i, date[4...6].to_i, date[6...8].to_i)
@@ -332,12 +331,24 @@ module Elibri
332
331
 
333
332
  def descriptive_details_setup(data)
334
333
  @product_composition = data.at_css('ProductComposition').try(:text)
335
- @product_form = data.at_css('ProductForm').text
336
- if @product_form.starts_with?("B") && !@cover_type
337
- @cover_type = Elibri::ONIX::Dict::CoverType.determine_cover_type(@product_form, data.at_css('ProductFormDetail').try(:text))
338
- end
339
- if Elibri::ONIX::Dict::Release_3_0::ProductFormCode::find_by_onix_code(@product_form)
340
- @product_form_name = Elibri::ONIX::Dict::Release_3_0::ProductFormCode::find_by_onix_code(@product_form).name(:en).downcase
334
+ @product_form = data.at_css('ProductForm').try(:text)
335
+ if @product_form
336
+ if @product_form.starts_with?("B") && !@cover_type
337
+ @cover_type = Elibri::ONIX::Dict::CoverType.determine_cover_type(@product_form, data.at_css('ProductFormDetail').try(:text))
338
+ end
339
+ if Elibri::ONIX::Dict::Release_3_0::ProductFormCode::find_by_onix_code(@product_form)
340
+ @product_form_name = Elibri::ONIX::Dict::Release_3_0::ProductFormCode::find_by_onix_code(@product_form).name(:en).downcase
341
+ end
342
+
343
+ simplified_product_form = @product_form.starts_with?("B") ? "BA" : @product_form
344
+ if Elibri::ONIX::Dict::Release_3_0::ProductFormCode::find_by_onix_code(simplified_product_form).try!(:digital?)
345
+ @digital_formats = []
346
+ data.css("ProductFormDetail").each do |format|
347
+ format_name = Elibri::ONIX::Dict::Release_3_0::ProductFormDetail::find_by_onix_code(format.text).try(:name)
348
+ @digital_formats << format_name.upcase.gsub("MOBIPOCKET", "MOBI") if format_name
349
+ end
350
+ end
351
+
341
352
  end
342
353
  if classification = data.css('ProductClassification').find { |cl|
343
354
  cl.at_css('ProductClassificationType').text == Elibri::ONIX::Dict::Release_3_0::ProductClassificationType::PKWIU }
@@ -354,15 +365,6 @@ module Elibri
354
365
  %w{93 94 95 96 97 98 99}.include?(sd.at_css('SubjectSchemeIdentifier').try(:text)) }.map { |sd| ThemaSubject.new(sd) }
355
366
  @audience_ranges = data.css('AudienceRange').map { |audience_data| AudienceRange.new(audience_data) }
356
367
 
357
- simplified_product_form = @product_form.starts_with?("B") ? "BA" : @product_form
358
- if Elibri::ONIX::Dict::Release_3_0::ProductFormCode::find_by_onix_code(simplified_product_form).try!(:digital?)
359
- @digital_formats = []
360
- data.css("ProductFormDetail").each do |format|
361
- format_name = Elibri::ONIX::Dict::Release_3_0::ProductFormDetail::find_by_onix_code(format.text).try(:name)
362
- @digital_formats << format_name.upcase.gsub("MOBIPOCKET", "MOBI") if format_name
363
- end
364
- end
365
-
366
368
  #zabezpiecznie pliku
367
369
  if protection = data.at_css("EpubTechnicalProtection").try(:text)
368
370
  @technical_protection = Elibri::ONIX::Dict::Release_3_0::EpubTechnicalProtection::find_by_onix_code(protection).try(:name)
@@ -534,21 +536,23 @@ module Elibri
534
536
 
535
537
 
536
538
  def compute_state!
537
- if @notification_type == "01"
538
- @current_state = :announced
539
- elsif @notification_type == "02"
540
- @current_state = :preorder
541
- elsif @notification_type == "05"
542
- @current_state = :deleted
543
- else
544
- if @publishing_status == "04"
545
- @current_state = :published
546
- elsif @publishing_status == "07"
547
- @current_state = :out_of_print
548
- elsif @notification_type == "03"
549
- @current_state = :published
539
+ if @notification_type || @publishing_status
540
+ if @notification_type == "01"
541
+ @current_state = :announced
542
+ elsif @notification_type == "02"
543
+ @current_state = :preorder
544
+ elsif @notification_type == "05"
545
+ @current_state = :deleted
550
546
  else
551
- raise "cannot determine the state of the product #{@record_reference}"
547
+ if @publishing_status == "04"
548
+ @current_state = :published
549
+ elsif @publishing_status == "07"
550
+ @current_state = :out_of_print
551
+ elsif @notification_type == "03"
552
+ @current_state = :published
553
+ else
554
+ raise "cannot determine the state of the product #{@record_reference}"
555
+ end
552
556
  end
553
557
  end
554
558
  end
@@ -2,7 +2,7 @@ module Elibri
2
2
  module ONIX
3
3
  z = $VERBOSE
4
4
  $VERBOSE = nil
5
- VERSION = "0.5.7"
5
+ VERSION = "0.5.8"
6
6
  Version = VERSION
7
7
  $VERBOSE = z
8
8
  end
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.7
4
+ version: 0.5.8
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: 2019-12-30 00:00:00.000000000 Z
12
+ date: 2020-01-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -284,7 +284,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
284
284
  - !ruby/object:Gem::Version
285
285
  version: '0'
286
286
  requirements: []
287
- rubygems_version: 3.0.3
287
+ rubyforge_project:
288
+ rubygems_version: 2.7.9
288
289
  signing_key:
289
290
  specification_version: 4
290
291
  summary: EDItEUR ONIX format subset implementation used in Elibri publication system