Class: RelatonIsoBib::EditorialGroup

Inherits:
Object
  • Object
show all
Includes:
RelatonBib
Defined in:
lib/relaton_iso_bib/editorial_group.rb

Overview

ISO project group.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(technical_committee:, **args) ⇒ EditorialGroup

Returns a new instance of EditorialGroup.

Parameters:

Options Hash (technical_committee:):

  • :name (String)
  • :type (String)
  • :number (Integer)


36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/relaton_iso_bib/editorial_group.rb', line 36

def initialize(technical_committee:, **args)
  @technical_committee = technical_committee.map do |tc|
    tc.is_a?(Hash) ? IsoSubgroup.new(tc) : tc
  end
  @subcommittee = args.fetch(:subcommittee, []).map do |sc|
    sc.is_a?(Hash) ? IsoSubgroup.new(sc) : sc
  end
  @workgroup = args.fetch(:workgroup, []).map do |wg|
    wg.is_a?(Hash) ? IsoSubgroup.new(wg) : wg
  end
  @secretariat = args[:secretariat]
end

Instance Attribute Details

#secretariatString, NilClass (readonly)

Returns:

  • (String, NilClass)


18
19
20
# File 'lib/relaton_iso_bib/editorial_group.rb', line 18

def secretariat
  @secretariat
end

#subcommitteeArray<RelatonIsoBib::IsoSubgroup> (readonly)



12
13
14
# File 'lib/relaton_iso_bib/editorial_group.rb', line 12

def subcommittee
  @subcommittee
end

#technical_committeeArray<RelatonIsoBib::IsoSubgroup> (readonly)



9
10
11
# File 'lib/relaton_iso_bib/editorial_group.rb', line 9

def technical_committee
  @technical_committee
end

#workgroupArray<RelatonIsoBib::IsoSubgroup> (readonly)



15
16
17
# File 'lib/relaton_iso_bib/editorial_group.rb', line 15

def workgroup
  @workgroup
end

Instance Method Details

#to_hashHash

Returns:

  • (Hash)


71
72
73
74
75
76
77
# File 'lib/relaton_iso_bib/editorial_group.rb', line 71

def to_hash
  hash = { "technical_committee" => single_element_array(technical_committee) }
  hash["subcommittee"] = single_element_array(subcommittee) if subcommittee&.any?
  hash["workgroup"] = single_element_array(workgroup) if workgroup&.any?
  hash["secretariat"] = secretariat if secretariat
  hash
end

#to_xml(builder) ⇒ Object

Parameters:

  • builder (Nokogiri::XML::Builder)


52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/relaton_iso_bib/editorial_group.rb', line 52

def to_xml(builder)
  return unless technical_committee || subcommittee || workgroup || secretariat

  builder.editorialgroup do
    technical_committee.each do |tc|
      builder.send("technical-committee") { tc.to_xml builder }
    end
    subcommittee.each do |sc|
      builder.subcommittee { sc.to_xml builder }
    end
    workgroup.each do |wg|
      builder.workgroup { wg.to_xml builder }
    end
    builder.secretariat secretariat if secretariat
  end
end