Class: RelatonBib::Contributor
- Includes:
- RelatonBib
- Defined in:
- lib/relaton_bib/contributor.rb
Overview
Contributor.
Direct Known Subclasses
Constant Summary
Constants included from RelatonBib
Instance Attribute Summary collapse
- #contact ⇒ Array<RelatonBib::Address, RelatonBib::Contact> readonly
- #uri ⇒ URI readonly
Instance Method Summary collapse
-
#initialize(url: nil, contact: []) ⇒ Contributor
constructor
A new instance of Contributor.
- #to_asciibib(prefix = "") ⇒ String
- #to_hash ⇒ Hash
- #to_xml(builder) ⇒ Object
-
#url ⇒ String
Returns url.
Methods included from RelatonBib
Constructor Details
#initialize(url: nil, contact: []) ⇒ Contributor
Returns a new instance of Contributor.
182 183 184 185 |
# File 'lib/relaton_bib/contributor.rb', line 182 def initialize(url: nil, contact: []) @uri = URI url if url @contact = contact end |
Instance Attribute Details
#contact ⇒ Array<RelatonBib::Address, RelatonBib::Contact> (readonly)
178 179 180 |
# File 'lib/relaton_bib/contributor.rb', line 178 def contact @contact end |
#uri ⇒ URI (readonly)
175 176 177 |
# File 'lib/relaton_bib/contributor.rb', line 175 def uri @uri end |
Instance Method Details
#to_asciibib(prefix = "") ⇒ String
208 209 210 211 212 213 214 215 216 217 |
# File 'lib/relaton_bib/contributor.rb', line 208 def to_asciibib(prefix = "") # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity pref = prefix.empty? ? prefix : prefix + "." out = "" out += "#{pref}url:: #{uri}\n" if uri addr = contact.select { |c| c.is_a? RelatonBib::Address } addr.each { |ct| out += ct.to_asciibib prefix, addr.size } cont = contact.select { |c| c.is_a? RelatonBib::Contact } cont.each { |ct| out += ct.to_asciibib prefix, cont.size } out end |
#to_hash ⇒ Hash
199 200 201 202 203 204 |
# File 'lib/relaton_bib/contributor.rb', line 199 def to_hash hash = {} hash["url"] = uri.to_s if uri hash["contact"] = single_element_array(contact) if contact&.any? hash end |
#to_xml(builder) ⇒ Object
194 195 196 |
# File 'lib/relaton_bib/contributor.rb', line 194 def to_xml(builder) contact.each { |contact| contact.to_xml builder } end |
#url ⇒ String
Returns url.
189 190 191 |
# File 'lib/relaton_bib/contributor.rb', line 189 def url @uri.to_s end |