Class: DTAUS::Erweiterung

Inherits:
Object
  • Object
show all
Defined in:
lib/dtaus/erweiterung.rb

Overview

Eine Erweiterung eines C-Segments Stellt eine Länge von 27 Zeichen sicher

Constant Summary collapse

TYPE_KUNDE =
'01'
TYPE_VERWENDUNGZWECK =
'02'
TYPE_AUFTRAGGEBER =
'03'
TYPES =
{
  :kunde => TYPE_KUNDE,
  :verwendungszweck => TYPE_VERWENDUNGZWECK,
  :auftraggeber => TYPE_AUFTRAGGEBER
}

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(_type, _text) ⇒ Erweiterung

Erstellt eine Erweiterung

_text

ist ein beliebig langer String

_type

muss ein Symbol sein, aus: :kunde, :verwendungszweck, :auftraggeber



27
28
29
30
31
32
33
34
35
36
# File 'lib/dtaus/erweiterung.rb', line 27

def initialize(_type, _text)
  unless TYPES.keys.include?(_type) or TYPES.values.include?(_type)
    raise IncorrectErweiterungTypeException.new("Allowed types: :kunde, :verwendungszweck, :auftraggeber") 
  end
  @text = Converter.convert_text(_text).ljust(27)
  if text.size > 27
    raise IncorrectSizeException.new("Text size may not exceed 27 Chars") 
  end
  @type = TYPES[_type] || _type
end

Instance Attribute Details

#textObject (readonly)

Returns the value of attribute text.



19
20
21
# File 'lib/dtaus/erweiterung.rb', line 19

def text
  @text
end

#typeObject (readonly)

Returns the value of attribute type.



19
20
21
# File 'lib/dtaus/erweiterung.rb', line 19

def type
  @type
end

Class Method Details

.from_string(_type, _text) ⇒ Object

Erstellt aus einem beliebig langem String eine Liste von Erweiterungen, wenn dies nötig wird. Es werden nur Erweiterungen für den Teil von _text erzeugt, der nicht in das Standardfeld von 27 Zeichen passt. Keine Erweiterungen werden erzeugt, wenn der _text vollständig in das Standardfeld von 27 Zeichen passt.

_text

ist ein beliebig langer String

_type

muss ein Symbol sein, aus: :kunde, :verwendungszweck, :auftraggeber

returns: Array of Erweiterung



50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/dtaus/erweiterung.rb', line 50

def self.from_string(_type, _text)
  erweiterungen = []
  _text = Converter.convert_text(_text)
  
  # first slice will be omitted
  _text.slice!(0..26) 
  
  while _text.size > 0
    erweiterungen << Erweiterung.new(_type, _text.slice!(0..26))
  end
  erweiterungen
end