Class: MultiVersionCommonCartridge::Writers::ItemWriter

Inherits:
Object
  • Object
show all
Includes:
SupportedVersions
Defined in:
lib/multi_version_common_cartridge/writers/item_writer.rb

Constant Summary collapse

MESSAGES =
{
  no_title: 'A title is required',
  no_identifier: 'An identifier is required'
}.freeze

Constants included from SupportedVersions

SupportedVersions::SUPPORTED_VERSIONS, SupportedVersions::UNSUPPORTED_VERSION_MSG_TEMPLATE

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from SupportedVersions

#validate_version

Constructor Details

#initialize(item, factory, version) ⇒ ItemWriter

Returns a new instance of ItemWriter.



29
30
31
32
33
# File 'lib/multi_version_common_cartridge/writers/item_writer.rb', line 29

def initialize(item, factory, version)
  @item = item
  @factory = factory
  @version = validate_version(version)
end

Instance Attribute Details

#itemObject (readonly)

Returns the value of attribute item.



27
28
29
# File 'lib/multi_version_common_cartridge/writers/item_writer.rb', line 27

def item
  @item
end

Instance Method Details

#finalizeObject



35
36
37
38
# File 'lib/multi_version_common_cartridge/writers/item_writer.rb', line 35

def finalize
  validate_title
  validate_identifier
end

#organization_item_elementObject



40
41
42
43
44
45
46
47
48
49
# File 'lib/multi_version_common_cartridge/writers/item_writer.rb', line 40

def organization_item_element
  CommonCartridge::Elements::Organizations::Item.new.tap do |item_element|
    item_element.identifier = item.identifier
    item_element.identifierref = item.resource.identifier if item.resource
    item_element.title = item.title
    item_element.items = item.children.map do |child|
      @factory.item_writer(child).organization_item_element
    end
  end
end