Current section
12 Versions
Jump to
Current section
12 Versions
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, |