Sha256: 8233dbe9c99f5997670b89e49237a239693314e6b50efc7b322146900db0cec5
Contents?: true
Size: 1.4 KB
Versions: 21
Compression:
Stored size: 1.4 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 # @return [Hash] def to_hash hash = { "bureau" => bureau, "group" => group.to_hash } hash["subgroup"] = subgroup.to_hash if subgroup hash["workgroup"] = workgroup.to_hash if workgroup hash end end end
Version data entries
21 entries across 21 versions & 1 rubygems