Class: RelatonGb::GbBibliographicItem

Inherits:
RelatonIsoBib::IsoBibliographicItem
  • Object
show all
Defined in:
lib/relaton_gb/gb_bibliographic_item.rb

Overview

GB bibliographic item class.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ GbBibliographicItem

Returns a new instance of GbBibliographicItem.



31
32
33
34
35
36
37
38
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 31

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]
  @type = args[:type]
  @gbplannumber = args[:gbplannumber] || structuredidentifier&.project_number
end

Instance Attribute Details

#ccsArray<Cnccs::Ccs> (readonly)

Returns:

  • (Array<Cnccs::Ccs>)


23
24
25
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 23

def ccs
  @ccs
end

#committeeRelatonGb::GbTechnicalCommittee (readonly)



14
15
16
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 14

def committee
  @committee
end

#gbplannumberString (readonly)

Returns:

  • (String)


29
30
31
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 29

def gbplannumber
  @gbplannumber
end

#gbtypeRelatonGb::GbStandardType (readonly)



17
18
19
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 17

def gbtype
  @gbtype
end

#plan_numberString (readonly)

Returns:

  • (String)


26
27
28
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 26

def plan_number
  @plan_number
end

#topicString (readonly)

Returns:

  • (String)


20
21
22
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 20

def topic
  @topic
end

#typeString (readonly)

Returns:

  • (String)


29
30
31
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 29

def type
  @type
end

Instance Method Details

#inspectString

Returns:

  • (String)


53
54
55
56
57
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 53

def inspect
  "<#{self.class}:#{format('%#.14x', object_id << 1)}>"
  # "@fullIdentifier=\"#{@fetch&.shortref}\" "\
  # "@title=\"#{title}\">"
end

#makeid(id, attribute, _delim = "") ⇒ Object



64
65
66
67
68
69
70
71
72
73
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 64

def makeid(id, attribute, _delim = "")
  return nil if attribute && !@id_attribute

  id ||= @docidentifier.reject { |i| i.type == "DOI" }[0]
  idstr = id.id
  # if id.part_number&.size&.positive?
  #   idstr = idstr + "-#{id.part_number}"
  # end
  idstr.gsub(/\s/, "").strip
end

#to_sString

Returns:

  • (String)


60
61
62
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 60

def to_s
  inspect
end

#to_xml(builder = nil, **opts) ⇒ String

Parameters:

  • builder (Nokogiri::XML::Builder) (defaults to: nil)

Returns:

  • (String)


42
43
44
45
46
47
48
49
50
# File 'lib/relaton_gb/gb_bibliographic_item.rb', line 42

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