Class: RelatonBib::ContributionInfo

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

Overview

Contribution info.

Constant Summary

Constants included from RelatonBib

VERSION

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from RelatonBib

parse_date

Constructor Details

#initialize(entity:, role: [{ type: "publisher" }]) ⇒ ContributionInfo

Returns a new instance of ContributionInfo.

Parameters:



66
67
68
69
# File 'lib/relaton_bib/contribution_info.rb', line 66

def initialize(entity:, role: [{ type: "publisher" }])
  @entity = entity
  @role   = role.map { |r| ContributorRole.new(**r) }
end

Instance Attribute Details

#entityObject (readonly)

Returns [RelatonBib::Person, RelatonBib::Organization].

Returns:

  • RelatonBib::Person, RelatonBib::Organization


62
63
64
# File 'lib/relaton_bib/contribution_info.rb', line 62

def entity
  @entity
end

#roleArray<RelatonBib::ContributorRole> (readonly)



58
59
60
# File 'lib/relaton_bib/contribution_info.rb', line 58

def role
  @role
end

Instance Method Details

#to_hashHash

Returns:

  • (Hash)


77
78
79
80
81
# File 'lib/relaton_bib/contribution_info.rb', line 77

def to_hash
  hash = entity.to_hash
  hash["role"] = single_element_array(role) if role&.any?
  hash
end

#to_xml(builder) ⇒ Object

Parameters:

  • builder (Nokogiri::XML::Builder)


72
73
74
# File 'lib/relaton_bib/contribution_info.rb', line 72

def to_xml(builder)
  entity.to_xml builder
end