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
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(builder = nil, **opts) ⇒ String
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 args[:committee] && @committee = GbTechnicalCommittee.new(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 # @doctype = args[:doctype] 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 |
Instance Method Details
#inspect ⇒ String
72 73 74 |
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 72 def inspect "<#{self.class}:#{format('%<id>#.14x', id: object_id << 1)}>" end |
#makeid(id, attribute, _delim = "") ⇒ Object
81 82 83 84 85 86 87 |
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 81 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
65 66 67 68 69 |
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 65 def to_asciibib(prefix = "") out = super ccs.each { |c| out += c.to_aciibib prefix, ccs.size } out end |
#to_hash ⇒ Hash
54 55 56 57 58 59 60 61 |
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 54 def to_hash 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
77 78 79 |
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 77 def to_s inspect end |
#to_xml(builder = nil, **opts) ⇒ String
43 44 45 46 47 48 49 50 51 |
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 43 def to_xml(builder = nil, **opts) if builder super(builder, **opts) { |xml| render_gbxml(xml) } else Nokogiri::XML::Builder.new(encoding: "UTF-8") do |bldr| super(bldr, **opts) { |xml| render_gbxml(xml) } end.doc.root.to_xml end end |