Class: RelatonBib::DocumentRelation

Inherits:
Object
  • Object
show all
Includes:
RelatonBib
Defined in:
lib/relaton_bib/document_relation.rb

Overview

Documett relation

Constant Summary

Constants included from RelatonBib

VERSION

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from RelatonBib

array, formattedref, hash_to_bib, localizedstring, localname, parse_date, symbolize, timestamp_hash

Constructor Details

#initialize(type:, bibitem:, bib_locality: []) ⇒ DocumentRelation

Returns a new instance of DocumentRelation.

Parameters:



34
35
36
37
38
39
# File 'lib/relaton_bib/document_relation.rb', line 34

def initialize(type:, bibitem:, bib_locality: [])
  type = "obsoletes" if type == "Now withdrawn"
  @type         = type
  @bib_locality = bib_locality
  @bibitem      = bibitem
end

Instance Attribute Details

#bib_localityArray<RelatonBib::BibItemLocality> (readonly)

Returns:



29
30
31
# File 'lib/relaton_bib/document_relation.rb', line 29

def bib_locality
  @bib_locality
end

#bibitemRelatonBib::BibliographicItem (readonly)



26
27
28
# File 'lib/relaton_bib/document_relation.rb', line 26

def bibitem
  @bibitem
end

#typeString (readonly)

Returns:

  • (String)


20
21
22
# File 'lib/relaton_bib/document_relation.rb', line 20

def type
  @type
end

Instance Method Details

#to_hashHash

Returns:

  • (Hash)


54
55
56
57
58
# File 'lib/relaton_bib/document_relation.rb', line 54

def to_hash
  hash = { "type" => type, "bibitem" => bibitem.to_hash }
  hash["bib_locality"] = single_element_array(bib_locality) if bib_locality&.any?
  hash
end

#to_xml(builder, **opts) ⇒ Object

Parameters:

  • builder (Nokogiri::XML::Builder)


42
43
44
45
46
47
48
49
50
51
# File 'lib/relaton_bib/document_relation.rb', line 42

def to_xml(builder, **opts)
  opts.delete :bibdata
  opts.delete :note
  builder.relation(type: type) do
    bibitem.to_xml(builder, **opts.merge(embedded: true))
    bib_locality.each do |l|
      l.to_xml builder
    end
  end
end