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