Class: RelatonBib::StructuredIdentifier
- Includes:
- RelatonBib
- Defined in:
- lib/relaton_bib/structured_identifier.rb
Constant Summary
Constants included from RelatonBib
Instance Attribute Summary collapse
- #agency ⇒ Array<String> readonly
- #docnumber ⇒ String readonly
- #edition ⇒ String, NilClass readonly
- #klass ⇒ String, NilClass readonly
- #language ⇒ String, NilClass readonly
- #partnumber ⇒ String, NilClass readonly
- #supplementnumber ⇒ String, NilClass readonly
- #supplementtype ⇒ String, NilClass readonly
- #type ⇒ String, NilClass readonly
- #version ⇒ String, NilClass readonly
- #year ⇒ String, NilClass readonly
Instance Method Summary collapse
- #all_parts ⇒ Object
-
#initialize(docnumber:, **args) ⇒ StructuredIdentifier
constructor
A new instance of StructuredIdentifier.
- #remove_date ⇒ Object
-
#remove_part ⇒ Object
in docid manipulations, assume ISO as the default: id-part:year.
- #to_asciibib(prefix) ⇒ String
- #to_hash ⇒ Hash
- #to_xml(builder) ⇒ Object
Methods included from RelatonBib
Constructor Details
#initialize(docnumber:, **args) ⇒ StructuredIdentifier
Returns a new instance of StructuredIdentifier.
84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/relaton_bib/structured_identifier.rb', line 84 def initialize(docnumber:, **args) @type = args[:type] @agency = args[:agency] @klass = args[:class] @docnumber = docnumber @partnumber = args[:partnumber] @edition = args[:edition] @version = args[:version] @supplementtype = args[:supplementtype] @supplementnumber = args[:supplementnumber] @language = args[:language] @year = args[:year] end |
Instance Attribute Details
#agency ⇒ Array<String> (readonly)
65 66 67 |
# File 'lib/relaton_bib/structured_identifier.rb', line 65 def agency @agency end |
#docnumber ⇒ String (readonly)
62 63 64 |
# File 'lib/relaton_bib/structured_identifier.rb', line 62 def docnumber @docnumber end |
#edition ⇒ String, NilClass (readonly)
68 69 70 |
# File 'lib/relaton_bib/structured_identifier.rb', line 68 def edition @edition end |
#klass ⇒ String, NilClass (readonly)
68 69 70 |
# File 'lib/relaton_bib/structured_identifier.rb', line 68 def klass @klass end |
#language ⇒ String, NilClass (readonly)
68 69 70 |
# File 'lib/relaton_bib/structured_identifier.rb', line 68 def language @language end |
#partnumber ⇒ String, NilClass (readonly)
68 69 70 |
# File 'lib/relaton_bib/structured_identifier.rb', line 68 def partnumber @partnumber end |
#supplementnumber ⇒ String, NilClass (readonly)
68 69 70 |
# File 'lib/relaton_bib/structured_identifier.rb', line 68 def supplementnumber @supplementnumber end |
#supplementtype ⇒ String, NilClass (readonly)
68 69 70 |
# File 'lib/relaton_bib/structured_identifier.rb', line 68 def supplementtype @supplementtype end |
#type ⇒ String, NilClass (readonly)
68 69 70 |
# File 'lib/relaton_bib/structured_identifier.rb', line 68 def type @type end |
#version ⇒ String, NilClass (readonly)
68 69 70 |
# File 'lib/relaton_bib/structured_identifier.rb', line 68 def version @version end |
#year ⇒ String, NilClass (readonly)
68 69 70 |
# File 'lib/relaton_bib/structured_identifier.rb', line 68 def year @year end |
Instance Method Details
#all_parts ⇒ Object
168 169 170 |
# File 'lib/relaton_bib/structured_identifier.rb', line 168 def all_parts @docnumber = @docnumber + " (all parts)" end |
#remove_date ⇒ Object
153 154 155 156 157 158 159 160 |
# File 'lib/relaton_bib/structured_identifier.rb', line 153 def remove_date if @type == "Chinese Standard" @docnumber.sub!(/-[12]\d\d\d/, "") else @docnumber.sub!(/:[12]\d\d\d/, "") end @year = nil end |
#remove_part ⇒ Object
in docid manipulations, assume ISO as the default: id-part:year
163 164 165 166 |
# File 'lib/relaton_bib/structured_identifier.rb', line 163 def remove_part @partnumber = nil @docnumber = @docnumber.sub(/-\d+/, "") end |
#to_asciibib(prefix) ⇒ String
136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 |
# File 'lib/relaton_bib/structured_identifier.rb', line 136 def to_asciibib(prefix) # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength,Metrics/PerceivedComplexity out = "#{prefix}.docnumber:: #{docnumber}\n" agency.each { |a| out += "#{prefix}.agency:: #{a}\n" } out += "#{prefix}.type:: #{type}\n" if type out += "#{prefix}.class:: #{klass}\n" if klass out += "#{prefix}.partnumber:: #{partnumber}\n" if partnumber out += "#{prefix}.edition:: #{edition}\n" if edition out += "#{prefix}.version:: #{version}\n" if version out += "#{prefix}.supplementtype:: #{supplementtype}\n" if supplementtype if supplementnumber out += "#{prefix}.supplementnumber:: #{supplementnumber}\n" end out += "#{prefix}.language:: #{language}\n" if language out += "#{prefix}.year:: #{year}\n" if year out end |
#to_hash ⇒ Hash
118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
# File 'lib/relaton_bib/structured_identifier.rb', line 118 def to_hash hash = { "docnumber" => docnumber } hash["type"] = type if type hash["agency"] = single_element_array agency if agency&.any? hash["class"] = klass if klass hash["partnumber"] = partnumber if partnumber hash["edition"] = edition if edition hash["version"] = version if version hash["supplementtype"] = supplementtype if supplementtype hash["supplementnumber"] = supplementnumber if supplementnumber hash["language"] = language if language hash["year"] = year if year hash end |
#to_xml(builder) ⇒ Object
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'lib/relaton_bib/structured_identifier.rb', line 101 def to_xml(builder) xml = builder.structuredidentifier do |b| agency&.each { |a| b.agency a } b.class_ klass if klass b.docnumber docnumber b.partnumber partnumber if partnumber b.edition edition if edition b.version version if version b.supplementtype supplementtype if supplementtype b.supplementnumber supplementnumber if supplementnumber b.language language if language b.year year if year end xml[:type] = type if type end |