Class: RelatonItu::ItuGroup

Inherits:
Object
  • Object
show all
Defined in:
lib/relaton_itu/itu_group.rb

Defined Under Namespace

Classes: Period

Constant Summary collapse

TYPES =
%w[tsag study-group work-group].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type: nil, name:, acronym: nil, period: nil) ⇒ ItuGroup

Returns a new instance of ItuGroup.

Parameters:

  • type (String, NilClass) (defaults to: nil)
  • name (String)
  • acronym (String, NilClass) (defaults to: nil)
  • period (Hash, RelatonItu::ItuGroup::Period, NilClass) (defaults to: nil)


58
59
60
61
62
63
64
65
66
67
# File 'lib/relaton_itu/itu_group.rb', line 58

def initialize(type: nil, name:, acronym: nil, period: nil)
  if type && !TYPES.include?(type)
    raise ArgumentError, "invalid type: #{type}"
  end

  @type = type
  @name = name
  @acronym = acronym
  @period = period.is_a?(Hash) ? Period.new(**period) : period
end

Instance Attribute Details

#acronymString, NilClass (readonly)

Returns:

  • (String, NilClass)


49
50
51
# File 'lib/relaton_itu/itu_group.rb', line 49

def acronym
  @acronym
end

#nameString (readonly)

Returns:

  • (String)


46
47
48
# File 'lib/relaton_itu/itu_group.rb', line 46

def name
  @name
end

#periodRelatonItu::ItuGroup::Period, NilClass (readonly)

Returns group period.

Returns:



52
53
54
# File 'lib/relaton_itu/itu_group.rb', line 52

def period
  @period
end

#typeString, NilClass (readonly)

Returns:

  • (String, NilClass)


49
50
51
# File 'lib/relaton_itu/itu_group.rb', line 49

def type
  @type
end

Instance Method Details

#to_asciibib(prefix) ⇒ String

Parameters:

  • prefix (String)

Returns:

  • (String)


88
89
90
91
92
93
94
95
# File 'lib/relaton_itu/itu_group.rb', line 88

def to_asciibib(prefix)
  pref = prefix.empty? ? prefix : prefix + "."
  out = "#{pref}name:: #{name}\n"
  out += "#{pref}type:: #{type}\n" if type
  out += "#{pref}acronym:: #{acronym}\n" if acronym
  out += period.to_asciibib prefix if period
  out
end

#to_hashHash

Returns:

  • (Hash)


78
79
80
81
82
83
84
# File 'lib/relaton_itu/itu_group.rb', line 78

def to_hash
  hash = { "name" => name }
  hash["type"] = type if type
  hash["acronym"] = acronym if acronym
  hash["period"] = period.to_hash if period
  hash
end

#to_xml(builder) ⇒ Object

Parameters:

  • builder (Nokogiri::XML::Builder)


70
71
72
73
74
75
# File 'lib/relaton_itu/itu_group.rb', line 70

def to_xml(builder)
  builder.parent[:type] = type if type
  builder.name name
  builder.acronym acronym if acronym
  period&.to_xml builder
end