Class: RelatonBib::Organization
Overview
Constant Summary
Constants included
from RelatonBib
VERSION
Instance Attribute Summary collapse
Attributes inherited from Contributor
#contact, #uri
Instance Method Summary
collapse
Methods inherited from Contributor
#url
Methods included from RelatonBib
array, format_date, grammar_hash, parse_date, parse_yaml
Methods included from Config
#configuration, #configure
Constructor Details
Returns a new instance of Organization.
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
# File 'lib/relaton_bib/organization.rb', line 70
def initialize(**args) raise ArgumentError, "missing keyword: name" unless args[:name]
super(url: args[:url], contact: args.fetch(:contact, []))
@name = if args[:name].is_a?(Array)
args[:name].map { |n| localized_string(n) }
else
[localized_string(args[:name])]
end
@abbreviation = localized_string args[:abbreviation]
@subdivision = (args[:subdivision] || []).map do |sd|
localized_string sd
end
@identifier = args.fetch(:identifier, [])
end
|
Instance Attribute Details
56
57
58
|
# File 'lib/relaton_bib/organization.rb', line 56
def abbreviation
@abbreviation
end
|
62
63
64
|
# File 'lib/relaton_bib/organization.rb', line 62
def identifier
@identifier
end
|
53
54
55
|
# File 'lib/relaton_bib/organization.rb', line 53
def name
@name
end
|
59
60
61
|
# File 'lib/relaton_bib/organization.rb', line 59
def subdivision
@subdivision
end
|
Instance Method Details
#to_asciibib(prefix = "", count = 1) ⇒ String
120
121
122
123
124
125
126
127
128
129
130
131
132
|
# File 'lib/relaton_bib/organization.rb', line 120
def to_asciibib(prefix = "", count = 1) pref = prefix.sub(/\*$/, "organization")
out = count > 1 ? "#{pref}::\n" : ""
name.each { |n| out += n.to_asciibib "#{pref}.name", name.size }
out += abbreviation.to_asciibib "#{pref}.abbreviation" if abbreviation
subdivision.each do |sd|
out += "#{pref}.subdivision::" if subdivision.size > 1
out += sd.to_asciibib "#{pref}.subdivision"
end
identifier.each { |n| out += n.to_asciibib pref, identifier.size }
out += super pref
out
end
|
#to_hash ⇒ Hash
107
108
109
110
111
112
113
114
115
|
# File 'lib/relaton_bib/organization.rb', line 107
def to_hash hash = { "name" => single_element_array(name) }
hash["abbreviation"] = abbreviation.to_hash if abbreviation
hash["identifier"] = single_element_array(identifier) if identifier&.any?
if subdivision&.any?
hash["subdivision"] = single_element_array(subdivision)
end
{ "organization" => hash.merge(super) }
end
|
#to_xml(**opts) ⇒ Object
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
# File 'lib/relaton_bib/organization.rb', line 91
def to_xml(**opts) opts[:builder].organization do |builder|
nm = name.select { |n| n.language&.include? opts[:lang] }
nm = name unless nm.any?
nm.each { |n| builder.name { |b| n.to_xml b } }
sbdv = subdivision.select { |sd| sd.language&.include? opts[:lang] }
sbdv = subdivision unless sbdv.any?
sbdv.each { |sd| builder.subdivision { sd.to_xml builder } }
builder.abbreviation { |a| abbreviation.to_xml a } if abbreviation
builder.uri url if uri
identifier.each { |identifier| identifier.to_xml builder }
super builder
end
end
|