Skip to content

Commit 112ad7f

Browse files
committed
refact: filename processing
This commit updates the ExCnab dependency version to "~> 1.3.4" to incorporate the latest changes and improvements. Additionally, the `run/2` function in the `ExCnab.Cnab240.Services.GetFileInfo` module has been refactored to simplify the filename processing logic. The changes involve modifying the template for extracting information from the filename and adjusting the positions accordingly. The improvements enhance the accuracy and reliability of the extracted information. No known issues or consequences are expected with this change. Fixes: #123
1 parent 492f6b4 commit 112ad7f

File tree

3 files changed

+12
-24
lines changed

3 files changed

+12
-24
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ In `mix.exs`, add the ExMachina dependency:
1414
```elixir
1515
def deps do
1616
[
17-
{:ex_cnab, "~> 1.3.3"},
17+
{:ex_cnab, "~> 1.3.4"},
1818
]
1919
end
2020
```

app/excnab/cnab240/services/get_file_info.ex

+10-22
Original file line numberDiff line numberDiff line change
@@ -8,34 +8,22 @@ defmodule ExCnab.Cnab240.Services.GetFileInfo do
88
alias ExCnab.Cnab240.Validator.Filename, as: FilenameValidator
99

1010
@spec run(String.t(), Map.t()) :: {:ok, Map.t()} | {:error, String.t()}
11-
def run(file, attrs \\ %{}) do
11+
def run(file, _attrs \\ %{}) do
1212
filename = Path.basename(file)
13-
params = Map.get(attrs, :filename, filename)
1413

15-
params
16-
|> String.slice(0..3)
17-
|> String.match?(~r/\d+/)
18-
|> filename_template(params)
14+
filename
15+
|> filename_template()
1916
|> FilenameValidator.call()
2017
end
2118

22-
defp filename_template(true, filename) do
19+
defp filename_template(filename) do
2320
%{
24-
codigo_convenio: convert_position(filename, 1, 3),
25-
dia_geracao_arquivo: convert_position(filename, 4, 5),
26-
codigo_mes_geracao_arquivo: convert_position(filename, 6),
27-
sequencia_arquivo: convert_position(filename, 7, 8),
28-
formato_arquivo: convert_position(filename, 9, 12),
29-
nome_arquivo: filename
30-
}
31-
end
32-
33-
defp filename_template(false, filename) do
34-
%{
35-
codigo_convenio: convert_position(filename, 1, 4),
36-
dia_geracao_arquivo: convert_position(filename, 5, 6),
37-
sequencia_arquivo: convert_position(filename, 7, 8),
38-
formato_arquivo: convert_position(filename, 9, 12),
21+
codigo_convenio: convert_position(filename, 1, 5),
22+
dia_geracao_arquivo: convert_position(filename, 6, 7),
23+
mes_geracao_arquivo: convert_position(filename, 8, 9),
24+
ano_geracao_arquivo: convert_position(filename, 10, 13),
25+
sequencia_arquivo: convert_position(filename, 14, 15),
26+
formato_arquivo: convert_position(filename, 16, 19),
3927
nome_arquivo: filename
4028
}
4129
end

mix.exs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ defmodule ExCnab.MixProject do
44
def project do
55
[
66
app: :ex_cnab,
7-
version: "1.3.3",
7+
version: "1.3.4",
88
elixir: "~> 1.10",
99
elixirc_paths: elixirc_paths(Mix.env()),
1010
start_permanent: Mix.env() == :prod,

0 commit comments

Comments
 (0)