Module: Libis::Tools::Metadata::Mappers::Kuleuven

Included in:
Flandrica
Defined in:
lib/libis/tools/metadata/mappers/kuleuven.rb

Overview

Mixin for Libis::Tools::Metadata::MarcRecord to enable conversion into DublinCoreRecord. This module implements the conversion mapping for KU Leuven.

Instance Method Summary collapse

Instance Method Details

#to_dc(label = nil) ⇒ ::Libis::Tools::Metadata::DublinCoreRecord

Main conversion method.

Parameters:

  • label (String) (defaults to: nil)

    optional extra identified to add to the DC record.

Returns:



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/libis/tools/metadata/mappers/kuleuven.rb', line 20

def to_dc(label = nil)
  assert(self.is_a? Libis::Tools::Metadata::MarcRecord)

  doc = Libis::Tools::Metadata::DublinCoreRecord.new do |xml|
    marc2dc_identifier(xml, label)
    marc2dc_title(xml)
    marc2dc_ispartof(xml)
    marc2dc_alternative(xml)
    marc2dc_creator(xml)
    marc2dc_subject(xml)
    marc2dc_temporal(xml)
    marc2dc_description(xml)
    marc2dc_isversionof(xml)
    marc2dc_abstract(xml)
    marc2dc_tableofcontents(xml)
    marc2dc_available(xml)
    marc2dc_haspart(xml)
    marc2dc_contributor(xml)
    marc2dc_provenance(xml)
    marc2dc_publisher(xml)
    marc2dc_date(xml)
    marc2dc_type(xml)
    marc2dc_spatial(xml)
    marc2dc_extent(xml)
    marc2dc_accrualperiodicity(xml)
    marc2dc_format(xml)
    marc2dc_medium(xml)
    marc2dc_relation(xml)
    marc2dc_replaces(xml)
    marc2dc_hasversion(xml)
    marc2dc_source(xml)
    marc2dc_language(xml)
    marc2dc_rightsholder(xml)
    marc2dc_references(xml)
    marc2dc_isreferencedby(xml)
    marc2dc_coverage(xml)

  end

  # deduplicate the XML
  found = Set.new
  doc.root.children.each { |node| node.unlink unless found.add?(node.to_xml) }

  doc

end