class RelatonOgc::EditorialGroup

OGC project group.

Constants

COMMITTEES

Attributes

committee[R]

@return [String]

subcommittee[R]

@return [RelatonIsoBib::IsoSubgroup]

workgroup[R]

@return [RelatonIsoBib::IsoSubgroup]

Public Class Methods

new(committee:, **args) click to toggle source

@param committee [String]

@param subcommittee [Hash, RelatonIsoBib::IsoSubgroup] @option subcommittee [String] :name @option subcommittee [String] :type @option subcommittee [Integer] :number

@param workgroup [Hash, RelatonIsoBib::IsoSubgroup] @option workgroup [String] :name @option workgroup [String] :type @option workgroup [Integer] :number

# File lib/relaton_ogc/editorial_group.rb, line 28
def initialize(committee:, **args)
  unless COMMITTEES.include? committee
    raise ArgumentError, "committee is invalid: #{committee}"
  end

  @committee    = committee
  @subcommittee = subgroup args[:subcommittee]
  @workgroup    = subgroup args[:workgroup]
end

Public Instance Methods

presence?() click to toggle source

@return [true]

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

@param prefix [String] @return [String]

# File lib/relaton_ogc/editorial_group.rb, line 62
def to_asciibib(prefix)
  pref = prefix.empty? ? prefix : prefix + "."
  pref += "editorialgroup"
  out = "#{pref}.committee:: #{committee}\n"
  out += subcommittee.to_asciibib "#{pref}.subcommittee" if subcommittee
  out += workgroup.to_asciibib "#{pref}.workgroup" if workgroup
  out
end
to_hash() click to toggle source

@return [Hash]

# File lib/relaton_ogc/editorial_group.rb, line 53
def to_hash
  hash = { "committee" => committee }
  hash["subcommittee"] = subcommittee.to_hash if subcommittee
  hash["workgroup"] = workgroup.to_hash if workgroup
  hash
end
to_xml(builder) click to toggle source

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

# File lib/relaton_ogc/editorial_group.rb, line 44
def to_xml(builder)
  builder.editorialgroup do
    builder.committee committee
    builder.subcommittee { subcommittee&.to_xml builder } if subcommittee
    builder.workgroup { workgroup&.to_xml builder } if workgroup
  end
end

Private Instance Methods

subgroup(group) click to toggle source

@param group [Hash, RelatonIsoBib::IsoSubgroup] @return {RelatonIsoBib::IsoSubgroup}

# File lib/relaton_ogc/editorial_group.rb, line 75
def subgroup(group)
  if group.is_a?(Hash)
    RelatonBib::WorkGroup.new(**group)
  else group
  end
end