Sha256: 1696be8d21c61408cdb15040a8b663db9c6e5829e64231182307a018754f31ea
Contents?: true
Size: 1.17 KB
Versions: 1
Compression:
Stored size: 1.17 KB
Contents
module RelatonItu class EditorialGroup BUREAUS = %w[T D R].freeze # @return [String] attr_reader :bureau # @returnn [RelatonItu::ItuGroup] attr_reader :group # @return [RelatonItu::ItuGroup, NilClass] attr_reader :subgroup, :workgroup # @param bureau [String] # @param group [Hash, RelatonItu::ItuGroup] # @param subgroup [Hash, RelatonItu::ItuGroup, NilClass] # @param workgroup [Hash, RelatonItu::ItuGroup, NilClass] def initialize(bureau:, group:, subgroup: nil, workgroup: nil) raise ArgumentError, "invalid bureau: #{bureau}" unless BUREAUS.include? bureau @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 # @param builder [Nokogiri::XML::Builder] def to_xml(builder) builder.editorialgroup do builder.bureau bureau builder.group { |b| group.to_xml b } builder.subgroup { |b| group.to_xml b } if subgroup builder.workgroup { |b| group.to_xml b } if workgroup end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
relaton-itu-0.3.1 | lib/relaton_itu/editorial_group.rb |