class RelatonIsoBib::EditorialGroup
ISO project group.
Attributes
@return [String, NilClass]
@return [Array<RelatonIsoBib::IsoSubgroup>]
@return [Array<RelatonIsoBib::IsoSubgroup>]
@return [Array<RelatonIsoBib::IsoSubgroup>]
Public Class Methods
@param technical_committee
[Array<Hash, RelatonIsoBib::IsoSubgroup>] @option technical_committee
[String] :name @option technical_committee
[String] :type @option technical_committee
[Integer] :number
@param subcommittee [Array<Hash, RelatonIsoBib::IsoSubgroup>] @option subcommittee [String] :name @option subcommittee [String] :type @option subcommittee [Integer] :number
@param workgroup [Array<Hash, RelatonIsoBib::IsoSubgroup>] @option workgroup [String] :name @option workgroup [String] :type @option workgroup [Integer] :number
@param secretariat [String, NilClass]
# File lib/relaton_iso_bib/editorial_group.rb, line 36 def initialize(technical_committee:, **args) # rubocop:disable Metrics/CyclomaticComplexity,Metrics/AbcSize @technical_committee = technical_committee.map do |tc| tc.is_a?(Hash) ? RelatonBib::WorkGroup.new(**tc) : tc end @subcommittee = args.fetch(:subcommittee, []).map do |sc| sc.is_a?(Hash) ? RelatonBib::WorkGroup.new(**sc) : sc end @workgroup = args.fetch(:workgroup, []).map do |wg| wg.is_a?(Hash) ? RelatonBib::WorkGroup.new(**wg) : wg end @secretariat = args[:secretariat] end
Public Instance Methods
@return [true]
# File lib/relaton_iso_bib/editorial_group.rb, line 50 def presence? true end
@param prefix [String] @return [String]
# File lib/relaton_iso_bib/editorial_group.rb, line 88 def to_asciibib(prefix = "") # rubocop:disable Metrics/AbcSize, Metrics/MethodLength pref = prefix.empty? ? prefix : "#{prefix}." pref += "editorialgroup" out = "" technical_committee.each do |tc| out += tc.to_asciibib "#{pref}.technical_committee", technical_committee.size end subcommittee.each do |sc| out += sc.to_asciibib "#{pref}.subcommittee", subcommittee.size end workgroup.each do |wg| out += wg.to_asciibib "#{pref}.workgroup", workgroup.size end out += "#{pref}.secretariat:: #{secretariat}\n" if secretariat out end
@return [Hash]
# File lib/relaton_iso_bib/editorial_group.rb, line 74 def to_hash # rubocop:disable Metrics/AbcSize hash = { "technical_committee" => single_element_array(technical_committee), } if subcommittee&.any? hash["subcommittee"] = single_element_array(subcommittee) end hash["workgroup"] = single_element_array(workgroup) if workgroup&.any? hash["secretariat"] = secretariat if secretariat hash end
@param builder [Nokogiri::XML::Builder]
# File lib/relaton_iso_bib/editorial_group.rb, line 55 def to_xml(builder) # rubocop:disable Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity,Metrics/AbcSize, Metrics/MethodLength 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