Class: Hbci::Segment

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/hbci/segment.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeSegment

Returns a new instance of Segment.



43
44
45
46
47
# File 'lib/hbci/segment.rb', line 43

def initialize
  @element_groups = []
  @defined_element_groups ||= []
  define_element_groups
end

Instance Attribute Details

#defined_element_groupsObject (readonly)

Returns the value of attribute defined_element_groups.



8
9
10
# File 'lib/hbci/segment.rb', line 8

def defined_element_groups
  @defined_element_groups
end

#dialogObject

Returns the value of attribute dialog.



10
11
12
# File 'lib/hbci/segment.rb', line 10

def dialog
  @dialog
end

#element_groupsObject (readonly)

Returns the value of attribute element_groups.



7
8
9
# File 'lib/hbci/segment.rb', line 7

def element_groups
  @element_groups
end

#messageObject

Returns the value of attribute message.



9
10
11
# File 'lib/hbci/segment.rb', line 9

def message
  @message
end

#request_messageObject

Returns the value of attribute request_message.



12
13
14
# File 'lib/hbci/segment.rb', line 12

def request_message
  @request_message
end

Class Method Details

.element(name, definition = {}) ⇒ Object



22
23
24
# File 'lib/hbci/segment.rb', line 22

def self.element(name, definition = {})
  element_groups_to_be_defined << definition.merge(name: name, block: nil, passthrough: true)
end

.element_group(name, definition = {}, &block) ⇒ Object



18
19
20
# File 'lib/hbci/segment.rb', line 18

def self.element_group(name, definition = {}, &block)
  element_groups_to_be_defined << definition.merge(name: name, block: block)
end

.element_groups_to_be_definedObject



14
15
16
# File 'lib/hbci/segment.rb', line 14

def self.element_groups_to_be_defined
  @element_groups_to_be_defined ||= []
end

.fill(segment_data) ⇒ Object



35
36
37
38
39
40
41
# File 'lib/hbci/segment.rb', line 35

def self.fill(segment_data)
  segment_data.each_with_object(new).with_index do |(element_group_data, segment), element_group_index|
    element_group_data.each_with_index do |element_data, element_index|
      segment.element_groups[element_group_index][element_index] = element_data
    end
  end
end

Instance Method Details

#build(message) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/hbci/segment.rb', line 26

def build(message)
  self.request_message = message

  type, version = self.class.name.split('::').last.split('v')

  head.type = type
  head.version = version
end

#compileObject



49
# File 'lib/hbci/segment.rb', line 49

def compile; end

#to_sObject



51
52
53
# File 'lib/hbci/segment.rb', line 51

def to_s
  element_groups.join('+').gsub(/\+*$/, '') << '\''
end