Current section

12 Versions

Jump to

Compare versions

4 files changed
+11 additions
-17 deletions
  @@ -27,4 +27,4 @@
27 27 [{<<"app">>,<<"timex">>},
28 28 {<<"optional">>,nil},
29 29 {<<"requirement">>,<<"~> 0.13.4">>}]}]}.
30 - {<<"version">>,<<"0.3.0">>}.
30 + {<<"version">>,<<"0.3.1">>}.
  @@ -12,8 +12,6 @@ defmodule MT940.CustomerStatementMessage do
12 12 statement_lines: [],
13 13 closing_balance: nil
14 14
15 - @typep message :: record(:message, account: MT940.Account, statement_lines: list, closing_balance: MT940.ClosingBalance)
16 -
17 15 @spec parse_file!(binary) :: list
18 16 def parse_file!(filename) when is_binary(filename) do
19 17 filename
  @@ -64,27 +62,23 @@ defmodule MT940.CustomerStatementMessage do
64 62 end
65 63
66 64
67 - @spec bank_code(message) :: binary
68 - def bank_code(message) when Record.is_record(message) do
69 - message(message, :account).bank_code
65 + def bank_code(message(account: account)) do
66 + account.bank_code
70 67 end
71 68
72 69
73 - @spec account_number(message) :: binary
74 - def account_number(message) when Record.is_record(message) do
75 - message(message, :account).account_number
70 + def account_number(message(account: account)) do
71 + account.account_number
76 72 end
77 73
78 74
79 - @spec statement_lines(message) :: list
80 - def statement_lines(message) when Record.is_record(message) do
81 - message(message, :statement_lines)
75 + def statement_lines(message(statement_lines: statement_lines)) do
76 + statement_lines
82 77 end
83 78
84 79
85 - @spec closing_balance(message) :: MT940.ClosingBalance
86 - def closing_balance(message) when Record.is_record(message) do
87 - message(message, :closing_balance)
80 + def closing_balance(message(closing_balance: closing_balance)) do
81 + closing_balance
88 82 end
  @@ -71,7 +71,7 @@ defmodule MT940.Parser do
71 71
72 72 messages = raw
73 73 |> String.strip
74 - |> String.split(Regex.compile!("#{line_separator}-#{line_separator}?"), trim: true)
74 + |> String.split(Regex.compile!("#{line_separator}-(#{line_separator}|$)"), trim: true)
75 75 |> Stream.map(&parse_message(&1, line_separator))
76 76
77 77 case messages |> Enum.filter(fn m -> case m do
  @@ -4,7 +4,7 @@ defmodule Mt940.Mixfile do
4 4 def project do
5 5 [
6 6 app: :mt940,
7 - version: "0.3.0",
7 + version: "0.3.1",
8 8 elixir: "~> 1.0",
9 9 description: description,
10 10 package: package,