Class: RelatonBib::Affiliation
Overview
Constant Summary
Constants included
from RelatonBib
VERSION
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from RelatonBib
array, format_date, grammar_hash, parse_date, parse_yaml
Methods included from Config
#configuration, #configure
Constructor Details
#initialize(organization: nil, name: nil, description: []) ⇒ Affiliation
Returns a new instance of Affiliation.
141
142
143
144
145
|
# File 'lib/relaton_bib/contributor.rb', line 141
def initialize(organization: nil, name: nil, description: [])
@name = name
@organization = organization
@description = description
end
|
Instance Attribute Details
133
134
135
|
# File 'lib/relaton_bib/contributor.rb', line 133
def name
@name
end
|
136
137
138
|
# File 'lib/relaton_bib/contributor.rb', line 136
def organization
@organization
end
|
Instance Method Details
#description(lang = nil) ⇒ Object
175
176
177
178
179
|
# File 'lib/relaton_bib/contributor.rb', line 175
def description(lang = nil)
return @description unless lang
@description.select { |d| d.language&.include? lang }
end
|
#description_xml(builder) ⇒ Object
164
165
166
|
# File 'lib/relaton_bib/contributor.rb', line 164
def description_xml(builder)
description.each { |d| builder.description { d.to_xml builder } }
end
|
#name_xml(builder) ⇒ Object
160
161
162
|
# File 'lib/relaton_bib/contributor.rb', line 160
def name_xml(builder)
builder.name { name.to_xml builder } if name
end
|
#to_asciibib(prefix = "", count = 1) ⇒ String
198
199
200
201
202
203
204
205
206
207
|
# File 'lib/relaton_bib/contributor.rb', line 198
def to_asciibib(prefix = "", count = 1) pref = prefix.empty? ? prefix : "#{prefix}."
out = count > 1 ? "#{pref}affiliation::\n" : ""
out += name.to_asciibib "#{pref}affiliation.name" if name
description.each do |d|
out += d.to_asciibib "#{pref}affiliation.description", description.size
end
out += organization.to_asciibib "#{pref}affiliation.*" if organization
out
end
|
#to_hash ⇒ Hash
Render affiliation as hash.
186
187
188
189
190
191
192
193
|
# File 'lib/relaton_bib/contributor.rb', line 186
def to_hash
hash = organization&.to_hash || {}
hash["name"] = name.to_hash if name
if description&.any?
hash["description"] = single_element_array(description)
end
hash
end
|
#to_xml(**opts) ⇒ Object
150
151
152
153
154
155
156
157
158
|
# File 'lib/relaton_bib/contributor.rb', line 150
def to_xml(**opts)
return unless organization || name || description&.any?
opts[:builder].affiliation do |builder|
name_xml builder
description_xml builder
organization&.to_xml(**opts)
end
end
|