Class: RelatonBib::ContributorRole
- Inherits:
-
Object
- Object
- RelatonBib::ContributorRole
- Defined in:
- lib/relaton_bib/contribution_info.rb
Overview
Contributor’s role.
Constant Summary collapse
- TYPES =
%w[author performer publisher editor adapter translator distributor ].freeze
Instance Attribute Summary collapse
- #description ⇒ Array<RelatonBib::FormattedString> readonly
- #type ⇒ ContributorRoleType readonly
Instance Method Summary collapse
-
#initialize(**args) ⇒ ContributorRole
constructor
A new instance of ContributorRole.
- #to_xml(builder) ⇒ Object
Constructor Details
#initialize(**args) ⇒ ContributorRole
Returns a new instance of ContributorRole.
23 24 25 26 27 28 29 30 |
# File 'lib/relaton_bib/contribution_info.rb', line 23 def initialize(**args) if args[:type] && !TYPES.include?(args[:type]) raise ArgumentError, %{Type "#{type}" is invalid.} end @type = args[:type] @description = args.fetch(:description, []).map { |d| FormattedString.new content: d, format: nil } end |
Instance Attribute Details
#description ⇒ Array<RelatonBib::FormattedString> (readonly)
15 16 17 |
# File 'lib/relaton_bib/contribution_info.rb', line 15 def description @description end |
#type ⇒ ContributorRoleType (readonly)
18 19 20 |
# File 'lib/relaton_bib/contribution_info.rb', line 18 def type @type end |
Instance Method Details
#to_xml(builder) ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/relaton_bib/contribution_info.rb', line 32 def to_xml(builder) builder.role(type: type) do description.each do |d| builder.description { |desc| d.to_xml(desc) } end end end |