class MT940::CustomerStatementMessage
Attributes
Public Class Methods
Source
# File lib/mt940/customer_statement_message.rb, line 17 def initialize(lines) @account = select_by_type(lines, MT940::AccountIdentification) @opening_balance = select_by_type(lines, MT940::AccountBalance) @closing_balance = select_by_type(lines, MT940::ClosingBalance) @statement_lines = [] lines.each_with_index do |line, i| next unless line.class == MT940::StatementLine ensure_is_info_line!(lines[i + 1]) @statement_lines << StatementLineBundle.new(lines[i], lines[i + 1]) end end
Source
# File lib/mt940/customer_statement_message.rb, line 12 def self.parse(data) messages = MT940.parse(data) messages.map { |msg| new(msg) } end
Source
# File lib/mt940/customer_statement_message.rb, line 8 def self.parse_file(file) parse(File.read(file)) end
Public Instance Methods
Source
# File lib/mt940/customer_statement_message.rb, line 34 def account_number @account.account_number end
Source
# File lib/mt940/customer_statement_message.rb, line 30 def bank_code @account.bank_code end
Source
# File lib/mt940/customer_statement_message.rb, line 38 def signature Digest::SHA256.hexdigest(opening_balance&.content.to_s + closing_balance&.content.to_s) end
Private Instance Methods
Source
# File lib/mt940/customer_statement_message.rb, line 48 def ensure_is_info_line!(line) return if line.is_a? MT940::StatementLineInformation raise Errors::UnexpectedStructureError, 'Unexpected Structure; expected StatementLineInformation, ' \ "but was #{line.class}" end
Source
# File lib/mt940/customer_statement_message.rb, line 44 def select_by_type(lines, line_klass) lines.select { |line| line.instance_of?(line_klass) }.first end