class RelatonItu::EditorialGroup

Constants

BUREAUS

Attributes

bureau[R]

@return [String]

group[R]

@returnn [RelatonItu::ItuGroup]

subgroup[R]

@return [RelatonItu::ItuGroup, NilClass]

workgroup[R]

@return [RelatonItu::ItuGroup, NilClass]

Public Class Methods

new(bureau:, group:, subgroup: nil, workgroup: nil) click to toggle source

@param bureau [String] @param group [Hash, RelatonItu::ItuGroup] @param subgroup [Hash, RelatonItu::ItuGroup, NilClass] @param workgroup [Hash, RelatonItu::ItuGroup, NilClass]

# File lib/relaton_itu/editorial_group.rb, line 18
def initialize(bureau:, group:, subgroup: nil, workgroup: nil)
  unless BUREAUS.include? bureau
    warn "[relaton-itu] WARNING: invalid bureau: #{bureau}"
  end
  @bureau = bureau
  @group = group.is_a?(Hash) ? ItuGroup.new(**group) : group
  @subgroup = subgroup.is_a?(Hash) ? ItuGroup.new(subgroup) : subgroup
  @workgroup = workgroup.is_a?(Hash) ? ItuGroup.new(workgroup) : workgroup
end

Public Instance Methods

presence?() click to toggle source

@return [true]

# File lib/relaton_itu/editorial_group.rb, line 29
def presence?
  true
end
to_asciibib(prefix) click to toggle source

@param prefix [String] @return [String]

# File lib/relaton_itu/editorial_group.rb, line 54
def to_asciibib(prefix) # rubocop:disable Metrics/AbcSize
  pref = prefix.empty? ? prefix : prefix + "."
  pref += "editorialgroup"
  out = "#{pref}.bureau:: #{bureau}\n"
  out += group.to_asciibib "#{pref}.group" if group
  out += subgroup.to_asciibib "#{pref}.subgroup" if subgroup
  out += workgroup.to_asciibib "#{pref}.workgroup" if workgroup
  out
end
to_hash() click to toggle source

@return [Hash]

# File lib/relaton_itu/editorial_group.rb, line 44
def to_hash
  hash = { "bureau" => bureau }
  hash["group"] = group.to_hash if group
  hash["subgroup"] = subgroup.to_hash if subgroup
  hash["workgroup"] = workgroup.to_hash if workgroup
  hash
end
to_xml(builder) click to toggle source

@param builder [Nokogiri::XML::Builder]

# File lib/relaton_itu/editorial_group.rb, line 34
def to_xml(builder) # rubocop:disable Metrics/AbcSize
  builder.editorialgroup do
    builder.bureau bureau
    builder.group { |b| group.to_xml b } if group
    builder.subgroup { |b| group.to_xml b } if subgroup
    builder.workgroup { |b| group.to_xml b } if workgroup
  end
end