Class: RelatonGb::GbBibliographicItem
- Inherits:
-
RelatonIsoBib::IsoBibliographicItem
- Object
- RelatonIsoBib::IsoBibliographicItem
- RelatonGb::GbBibliographicItem
- Defined in:
- lib/relaton_gb/gb_bibliographic_item.rb
Overview
GB bibliographic item class.
Instance Attribute Summary collapse
- #ccs ⇒ Array<Cnccs::Ccs> readonly
- #committee ⇒ RelatonGb::GbTechnicalCommittee readonly
- #gbplannumber ⇒ String readonly
- #gbtype ⇒ RelatonGb::GbStandardType readonly
- #plan_number ⇒ String readonly
- #topic ⇒ String readonly
- #type ⇒ String readonly
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(**args) ⇒ GbBibliographicItem
constructor
A new instance of GbBibliographicItem.
- #inspect ⇒ String
- #makeid(id, attribute, _delim = "") ⇒ Object
- #to_asciibib(prefix = "") ⇒ String
- #to_hash ⇒ Hash
- #to_s ⇒ String
-
#to_xml(**opts) ⇒ String
XML.
Constructor Details
#initialize(**args) ⇒ GbBibliographicItem
Returns a new instance of GbBibliographicItem.
32 33 34 35 36 37 38 39 |
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 32 def initialize(**args) super @committee = GbTechnicalCommittee.new **args[:committee] if args[:committee] @ccs = args[:ccs].map { |c| c.is_a?(Cnccs::Ccs) ? c : Cnccs.fetch(c) } @gbtype = GbStandardType.new **args[:gbtype] @gbplannumber = args[:gbplannumber] || structuredidentifier&.project_number end |
Instance Attribute Details
#ccs ⇒ Array<Cnccs::Ccs> (readonly)
24 25 26 |
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 24 def ccs @ccs end |
#committee ⇒ RelatonGb::GbTechnicalCommittee (readonly)
15 16 17 |
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 15 def committee @committee end |
#gbplannumber ⇒ String (readonly)
30 31 32 |
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 30 def gbplannumber @gbplannumber end |
#gbtype ⇒ RelatonGb::GbStandardType (readonly)
18 19 20 |
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 18 def gbtype @gbtype end |
#plan_number ⇒ String (readonly)
27 28 29 |
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 27 def plan_number @plan_number end |
#topic ⇒ String (readonly)
21 22 23 |
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 21 def topic @topic end |
#type ⇒ String (readonly)
30 31 32 |
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 30 def type @type end |
Class Method Details
.from_hash(hash) ⇒ RelatonGb::GbBibliographicItem
43 44 45 46 |
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 43 def self.from_hash(hash) item_hash = ::RelatonGb::HashConverter.hash_to_bib(hash) new **item_hash end |
Instance Method Details
#inspect ⇒ String
90 91 92 |
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 90 def inspect "<#{self.class}:#{format('%<id>#.14x', id: object_id << 1)}>" end |
#makeid(id, attribute, _delim = "") ⇒ Object
99 100 101 102 103 104 105 |
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 99 def makeid(id, attribute, _delim = "") return nil if attribute && !@id_attribute id ||= @docidentifier.reject { |i| i.type == "DOI" }[0] idstr = id.id idstr.gsub(/\s/, "").strip end |
#to_asciibib(prefix = "") ⇒ String
83 84 85 86 87 |
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 83 def to_asciibib(prefix = "") out = super ccs.each { |c| out += c.to_aciibib prefix, ccs.size } out end |
#to_hash ⇒ Hash
72 73 74 75 76 77 78 79 |
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 72 def to_hash # rubocop:disable Metrics/AbcSize hash = super hash["ccs"] = single_element_array(ccs) if ccs&.any? hash["committee"] = committee.to_hash if committee hash["plannumber"] = gbplannumber if gbplannumber hash["gbtype"] = gbtype.to_hash hash end |
#to_s ⇒ String
95 96 97 |
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 95 def to_s inspect end |
#to_xml(**opts) ⇒ String
Returns XML.
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 54 def to_xml(**opts) super(**opts) do |b| if opts[:bibdata] && has_ext_attrs? b.ext do b.doctype doctype if doctype b.horizontal horizontal unless horizontal.nil? # b.docsubtype docsubtype if docsubtype committee&.to_xml b ics.each { |i| i.to_xml b } structuredidentifier&.to_xml b b.stagename stagename if stagename render_gbxml(b) end end end end |