class Hbci::Segments::HNVSDv1

Attributes

segments[R]

Public Class Methods

new() { |self| ... } click to toggle source
Calls superclass method Hbci::Segment::new
# File lib/hbci/segments/hnvsd.rb, line 11
def initialize
  super()
  @segments = []
  yield self if block_given?
end

Public Instance Methods

add_segment(segment) click to toggle source
# File lib/hbci/segments/hnvsd.rb, line 28
def add_segment(segment)
  segment.build(self)
  @segments.push(segment)
end
compile() click to toggle source
# File lib/hbci/segments/hnvsd.rb, line 33
def compile
  head.position = 999
  @segments.each_with_index do |segment, _index|
    segment.request_message = request_message
    segment.compile
    unless segment.head.position
      segment.head.position = request_message.next_position
      request_message.next_position += 1
    end
  end
  @segments.each do |segment|
    segment.after_compile if segment.respond_to?(:after_compile)
  end
  self.content = @segments.join('')
end
find(segment_type) click to toggle source
# File lib/hbci/segments/hnvsd.rb, line 17
def find(segment_type)
  segments = find_all(segment_type)
  warn "more then one #{segment_type} segment available" if segments.size > 1
  segments.first
end
find_all(segment_type) click to toggle source
# File lib/hbci/segments/hnvsd.rb, line 23
def find_all(segment_type)
  @raw_segments = Parser.parse(content)
  @raw_segments.select { |sd| sd[0][0] == segment_type }.map { |sd| Hbci::SegmentFactory.build(sd) }
end