class ONIX::ONIX21::Product

Attributes

default_currency_code[RW]

default code from ONIXMessage

default_language_of_text[RW]

default LanguageCode from ONIXMessage

Public Instance Methods

availability_date() click to toggle source
# File lib/onix/onix21.rb, line 427
def availability_date
  nil
end
available?() click to toggle source
# File lib/onix/onix21.rb, line 459
def available?
  @supply_details.select { |sd| sd.available? }.length > 0
end
available_for_country?(country) click to toggle source
# File lib/onix/onix21.rb, line 463
def available_for_country?(country)
  self.supplies_for_country(country).select { |s| s[:available] }.length > 0 and self.available?
end
bisac_categories_codes() click to toggle source
# File lib/onix/onix21.rb, line 327
def bisac_categories_codes
  cats = []
  if @basic_main_subject
    cats << @basic_main_subject
  end
  cats += (@main_subjects + @subjects).select { |s| s.scheme_identifier.human == "BisacSubjectHeading" }.map { |s| s.code }
  cats
end
bundle?() click to toggle source

doesn't apply

# File lib/onix/onix21.rb, line 451
def bundle?
  false
end
clil_categories_codes() click to toggle source
# File lib/onix/onix21.rb, line 336
def clil_categories_codes
  (@main_subjects + @subjects).select { |s| s.scheme_identifier.human == "Clil" }.map { |s| s.code }
end
countries() click to toggle source
# File lib/onix/onix21.rb, line 410
def countries
  territory = Territory.new(CountryCode.list)
  @sales_rights.each do |sr|
    if sr.not_for_sale?
      territory = territory - sr.territory
    else
      territory = territory + sr.territory
    end
  end

  @not_for_sales.each do |sr|
    territory = territory - sr.territory
  end

  territory.countries
end
description() click to toggle source
# File lib/onix/onix21.rb, line 389
def description
  desc_contents = @other_texts.select { |tc| tc.type.human == "MainDescription" } + @other_texts.select { |tc| tc.type.human == "LongDescription" } + @other_texts.select { |tc| tc.type.human == "ShortDescriptionannotation" }
  if desc_contents.length > 0
    desc_contents.first.text
  else
    nil
  end
end
digital?() click to toggle source
# File lib/onix/onix21.rb, line 455
def digital?
  @product_form == "DG"
end
distributor_name() click to toggle source
# File lib/onix/onix21.rb, line 477
def distributor_name
  nil
end
edition_number() click to toggle source
# File lib/onix/onix21.rb, line 473
def edition_number
  @edition_number
end
embargo_date() click to toggle source
# File lib/onix/onix21.rb, line 431
def embargo_date
  nil
end
epub_sample_url() click to toggle source
# File lib/onix/onix21.rb, line 517
def epub_sample_url
  nil
end
file_description() click to toggle source
# File lib/onix/onix21.rb, line 499
def file_description
  @epub_type_description
end
file_format() click to toggle source
# File lib/onix/onix21.rb, line 495
def file_format
  @epub_type.human
end
filesize() click to toggle source

doesn't apply

# File lib/onix/onix21.rb, line 508
def filesize
  nil
end
frontcover_url() click to toggle source
# File lib/onix/onix21.rb, line 481
def frontcover_url
  fc = @media_files.select { |mf| mf.media_file_type_code.human == "ImageFrontCover" && mf.media_file_link_type_code.human == "Url" }
  if fc.length > 0
    fc.first.link
  else
    nil
  end
end
imprint_name() click to toggle source
# File lib/onix/onix21.rb, line 378
def imprint_name
  if @imprints.first
    @imprints.first.name
  end
end
keywords() click to toggle source
# File lib/onix/onix21.rb, line 340
def keywords
  kws = (@main_subjects + @subjects).select { |s| s.scheme_identifier.human == "Keywords" }.map { |kw| kw.heading_text }.compact
  kws.map { |kw| kw.split(/;|,|\n/) }.flatten.map { |kw| kw.strip }
end
language_code_of_text() click to toggle source
# File lib/onix/onix21.rb, line 360
def language_code_of_text
  if self.language_of_text
    self.language_of_text.code
  end
end
language_name_of_text() click to toggle source
# File lib/onix/onix21.rb, line 366
def language_name_of_text
  if self.language_of_text
    self.language_of_text.human
  end
end
language_of_text() click to toggle source

product LanguageCode of text

# File lib/onix/onix21.rb, line 351
def language_of_text
  lang = nil
  l = @languages.select { |l| l.role.human == "LanguageOfText" }.first
  if l
    lang = l.code
  end
  lang || @default_language_of_text
end
method_missing(method) click to toggle source

@!endgroup

# File lib/onix/onix21.rb, line 536
def method_missing(method)
  raise "WARN #{method} not found"
end
onix_outlets_values() click to toggle source

doesn't apply

# File lib/onix/onix21.rb, line 346
def onix_outlets_values
  []
end
pages() click to toggle source
# File lib/onix/onix21.rb, line 467
def pages
  if @number_of_pages
    @number_of_pages.to_i
  end
end
paper_linking() click to toggle source

DEPRECATED see print_product instead

# File lib/onix/onix21.rb, line 526
def paper_linking
  self.print_product
end
parts() click to toggle source

doesn't apply

# File lib/onix/onix21.rb, line 446
def parts
  []
end
preorder_embargo_date() click to toggle source
# File lib/onix/onix21.rb, line 435
def preorder_embargo_date
  nil
end
print_product() click to toggle source
product_supplies() click to toggle source
# File lib/onix/onix21.rb, line 406
def product_supplies
  [self]
end
product_title() click to toggle source
# File lib/onix/onix21.rb, line 323
def product_title
  @titles.select { |td| td.type.human =~ /DistinctiveTitle/ }.first
end
protection_type() click to toggle source

doesn't apply

# File lib/onix/onix21.rb, line 513
def protection_type
  nil
end
public_announcement_date() click to toggle source
# File lib/onix/onix21.rb, line 439
def public_announcement_date
  nil
end
publisher_collection_title() click to toggle source

TODO

# File lib/onix/onix21.rb, line 491
def publisher_collection_title
  nil
end
publisher_gln() click to toggle source
# File lib/onix/onix21.rb, line 530
def publisher_gln
  nil
end
publisher_name() click to toggle source
# File lib/onix/onix21.rb, line 372
def publisher_name
  if @publishers.first
    @publishers.first.name
  end
end
raw_description() click to toggle source
# File lib/onix/onix21.rb, line 398
def raw_description
  if self.description
    Helper.strip_html(self.description).gsub(/\s+/, " ").strip
  else
    nil
  end
end
raw_file_description() click to toggle source
# File lib/onix/onix21.rb, line 503
def raw_file_description
  file_description
end
sold_separately?() click to toggle source

doesn't apply

# File lib/onix/onix21.rb, line 385
def sold_separately?
  true
end
subtitle() click to toggle source

product subtitle string

# File lib/onix/onix21.rb, line 319
def subtitle
  product_title.subtitle
end
title() click to toggle source

@!group High level

# File lib/onix/onix21.rb, line 314
def title
  product_title.title
end