Class: Hbci::Segments::HNVSDv1
- Inherits:
-
Hbci::Segment
- Object
- Hbci::Segment
- Hbci::Segments::HNVSDv1
- Defined in:
- lib/hbci/segments/hnvsd.rb
Instance Attribute Summary collapse
-
#segments ⇒ Object
readonly
Returns the value of attribute segments.
Attributes inherited from Hbci::Segment
#defined_element_groups, #dialog, #element_groups, #message, #request_message
Instance Method Summary collapse
- #add_segment(segment) ⇒ Object
- #compile ⇒ Object
- #find(segment_type) ⇒ Object
- #find_all(segment_type) ⇒ Object
-
#initialize {|_self| ... } ⇒ HNVSDv1
constructor
A new instance of HNVSDv1.
Methods inherited from Hbci::Segment
#build, element, element_group, element_groups_to_be_defined, fill, #to_s
Constructor Details
#initialize {|_self| ... } ⇒ HNVSDv1
Returns a new instance of HNVSDv1.
11 12 13 14 15 |
# File 'lib/hbci/segments/hnvsd.rb', line 11 def initialize super() @segments = [] yield self if block_given? end |
Instance Attribute Details
#segments ⇒ Object (readonly)
Returns the value of attribute segments.
6 7 8 |
# File 'lib/hbci/segments/hnvsd.rb', line 6 def segments @segments end |
Instance Method Details
#add_segment(segment) ⇒ Object
28 29 30 31 |
# File 'lib/hbci/segments/hnvsd.rb', line 28 def add_segment(segment) segment.build(self) @segments.push(segment) end |
#compile ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/hbci/segments/hnvsd.rb', line 33 def compile head.position = 999 @segments.each_with_index do |segment, _index| segment. = segment.compile unless segment.head.position segment.head.position = .next_position .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) ⇒ Object
17 18 19 20 21 |
# 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) ⇒ Object
23 24 25 26 |
# 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 |