bankline_csv_import_file 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.github/workflows/ci.yml +26 -0
- data/.rubocop.yml +5 -0
- data/Gemfile +6 -1
- data/Gemfile.lock +42 -14
- data/README.md +8 -7
- data/Rakefile +1 -1
- data/bankline_csv_import_file.gemspec +4 -5
- data/lib/bankline_csv_import_file/record.rb +2 -1
- data/lib/bankline_csv_import_file/version.rb +1 -1
- metadata +8 -7
- data/.travis.yml +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a291c34665a288d576f2b5aa20c621ad58dec49b2b4c61e240f33c33e21e15fd
|
4
|
+
data.tar.gz: 0abd8a2e5d0b851954b641faa7cfb3d044cc0f56f8f4d18edb62cc61dbea5c6b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6de7bfb93252c6a1a99bfdcdf7467a0886f4ce8b1ced41f03562b3b782c1ad643317ebbb02e187c91a9ecfd3bf24c6c9405aa42c109dc98f6308341d9cbb1e8c
|
7
|
+
data.tar.gz: 1353404252535a7def4ddaf8e4d67e2837ff849bf2f876ad6acbbfe54a7504abdebd3a596f928800d14282c31f31ddeb6212d955a49e78bdf339bffe1d82fa57
|
@@ -0,0 +1,26 @@
|
|
1
|
+
name: Ruby CI
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ master ]
|
6
|
+
pull_request:
|
7
|
+
branches: [ master ]
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
test:
|
11
|
+
|
12
|
+
runs-on: ubuntu-latest
|
13
|
+
|
14
|
+
strategy:
|
15
|
+
matrix:
|
16
|
+
ruby-version: ["3.0", "2.7", "2.6", "2.5"]
|
17
|
+
|
18
|
+
steps:
|
19
|
+
- uses: actions/checkout@v2
|
20
|
+
- name: Set up Ruby ${{ matrix.ruby-version }}
|
21
|
+
uses: ruby/setup-ruby@v1
|
22
|
+
with:
|
23
|
+
ruby-version: ${{ matrix.ruby-version }}
|
24
|
+
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
25
|
+
- name: Run tests
|
26
|
+
run: bundle exec rake
|
data/.rubocop.yml
ADDED
data/Gemfile
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
source "https://rubygems.org"
|
2
2
|
|
3
|
-
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
|
3
|
+
git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
|
4
4
|
|
5
5
|
# Specify your gem's dependencies in bankline_csv_import_file.gemspec
|
6
6
|
gemspec
|
7
|
+
|
8
|
+
group :development do
|
9
|
+
gem "barsoom_utils", github: "barsoom/barsoom_utils"
|
10
|
+
gem "rubocop"
|
11
|
+
end
|
data/Gemfile.lock
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
GIT
|
2
|
+
remote: https://github.com/barsoom/barsoom_utils
|
3
|
+
revision: d59121c10b4ba0e996d213ad23dc1545dcd27de0
|
4
|
+
specs:
|
5
|
+
barsoom_utils (0.1.0)
|
6
|
+
|
1
7
|
PATH
|
2
8
|
remote: .
|
3
9
|
specs:
|
@@ -6,30 +12,52 @@ PATH
|
|
6
12
|
GEM
|
7
13
|
remote: https://rubygems.org/
|
8
14
|
specs:
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
ast (2.4.2)
|
16
|
+
diff-lcs (1.4.4)
|
17
|
+
parallel (1.20.1)
|
18
|
+
parser (3.0.2.0)
|
19
|
+
ast (~> 2.4.1)
|
20
|
+
rainbow (3.0.0)
|
21
|
+
rake (13.0.1)
|
22
|
+
regexp_parser (2.1.1)
|
23
|
+
rexml (3.2.5)
|
24
|
+
rspec (3.9.0)
|
25
|
+
rspec-core (~> 3.9.0)
|
26
|
+
rspec-expectations (~> 3.9.0)
|
27
|
+
rspec-mocks (~> 3.9.0)
|
28
|
+
rspec-core (3.9.2)
|
29
|
+
rspec-support (~> 3.9.3)
|
30
|
+
rspec-expectations (3.9.2)
|
18
31
|
diff-lcs (>= 1.2.0, < 2.0)
|
19
|
-
rspec-support (~> 3.
|
20
|
-
rspec-mocks (3.
|
32
|
+
rspec-support (~> 3.9.0)
|
33
|
+
rspec-mocks (3.9.1)
|
21
34
|
diff-lcs (>= 1.2.0, < 2.0)
|
22
|
-
rspec-support (~> 3.
|
23
|
-
rspec-support (3.
|
35
|
+
rspec-support (~> 3.9.0)
|
36
|
+
rspec-support (3.9.3)
|
37
|
+
rubocop (1.18.4)
|
38
|
+
parallel (~> 1.10)
|
39
|
+
parser (>= 3.0.0.0)
|
40
|
+
rainbow (>= 2.2.2, < 4.0)
|
41
|
+
regexp_parser (>= 1.8, < 3.0)
|
42
|
+
rexml
|
43
|
+
rubocop-ast (>= 1.8.0, < 2.0)
|
44
|
+
ruby-progressbar (~> 1.7)
|
45
|
+
unicode-display_width (>= 1.4.0, < 3.0)
|
46
|
+
rubocop-ast (1.8.0)
|
47
|
+
parser (>= 3.0.1.1)
|
48
|
+
ruby-progressbar (1.11.0)
|
49
|
+
unicode-display_width (2.0.0)
|
24
50
|
|
25
51
|
PLATFORMS
|
26
52
|
ruby
|
27
53
|
|
28
54
|
DEPENDENCIES
|
29
55
|
bankline_csv_import_file!
|
56
|
+
barsoom_utils!
|
30
57
|
bundler
|
31
58
|
rake
|
32
59
|
rspec
|
60
|
+
rubocop
|
33
61
|
|
34
62
|
BUNDLED WITH
|
35
|
-
|
63
|
+
2.2.25
|
data/README.md
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
# Bankline CSV import file
|
2
2
|
|
3
|
+
[](https://github.com/barsoom/bankline_csv_import_file/actions/workflows/ci.yml)
|
4
|
+
|
3
5
|
Generate Bankline CSV import files per <https://www.business.rbs.co.uk/content/dam/rbs_co_uk/Business_and_Content/PDFs/Bankline/Bankline-import-file-guide-CSV-RBS.pdf>, used e.g. by NatWest.
|
4
6
|
|
5
7
|
Not intended to be a complete implementation. We have implemented what we need; feel free to make PRs for further behaviour.
|
6
8
|
|
7
|
-
USER BEWARE: At the time of writing, we have not yet verified that the produced file works.
|
8
|
-
|
9
9
|
|
10
10
|
## Usage
|
11
11
|
|
@@ -21,6 +21,8 @@ file.add_international_payment(…)
|
|
21
21
|
file.generate # => "foo,bar,…"
|
22
22
|
```
|
23
23
|
|
24
|
+
At least with NatWest, it seems that the uploaded file must have a `.txt` extension, despite containing CSV.
|
25
|
+
|
24
26
|
### Domestic payment
|
25
27
|
|
26
28
|
All these arguments are required unless stated otherwise.
|
@@ -32,11 +34,11 @@ file.add_domestic_payment(
|
|
32
34
|
payer_sort_code: "151000",
|
33
35
|
payer_account_number: "31806542",
|
34
36
|
amount: "123.45", # Strings and BigDecimal are allowed. (Floats are not advisable for money.) Rounded to 2 decimals.
|
37
|
+
payment_date: Date.new(2018, 1, 1), # See note below.
|
35
38
|
beneficiary_sort_code: "151000",
|
36
39
|
beneficiary_account_number: "44298801",
|
37
40
|
beneficiary_name: "John Doe", # Truncated to a max length of 35.
|
38
41
|
beneficiary_reference: "Invoice 123", # Truncated to a max length of 18.
|
39
|
-
payment_date: Date.new(2018, 1, 1), # See note below.
|
40
42
|
)
|
41
43
|
|
42
44
|
file.generate # => "foo,bar,…"
|
@@ -63,18 +65,17 @@ All these arguments are required unless stated otherwise.
|
|
63
65
|
file = BanklineCsvImportFile.new
|
64
66
|
|
65
67
|
file.add_international_payment(
|
66
|
-
payer_sort_code: "151000",
|
67
|
-
payer_account_number: "31806542",
|
68
|
+
payer_sort_code: "151000",
|
69
|
+
payer_account_number: "31806542",
|
68
70
|
amount: "123.45", # Strings and BigDecimal are allowed. (Floats are not advisable for money.)
|
69
71
|
payment_date: Date.new(2018, 1, 1), # See note below.
|
70
72
|
beneficiary_bic: "SPKHDE2H",
|
71
73
|
beneficiary_iban: "DE53250501800039370089",
|
72
74
|
beneficiary_name: "John Doe",
|
75
|
+
beneficiary_reference: "Invoice 123", # Optional. Truncated to 35 chars per line and max 4 lines.
|
73
76
|
|
74
77
|
# Optional but recommended, see below. Truncated to 35 chars per line and max 3 lines.
|
75
78
|
beneficiary_address: "10 Foo Street\nBartown, Baz County\nABC 123"
|
76
|
-
|
77
|
-
beneficiary_reference: "Invoice 123", # Optional. Truncated to 35 chars per line and max 4 lines.
|
78
79
|
)
|
79
80
|
|
80
81
|
file.generate # => "foo,bar,…"
|
data/Rakefile
CHANGED
@@ -7,19 +7,18 @@ require "bankline_csv_import_file/version"
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
8
|
spec.name = "bankline_csv_import_file"
|
9
9
|
spec.version = BanklineCsvImportFile::VERSION
|
10
|
-
spec.authors = ["Henrik Nyh"]
|
11
|
-
spec.email = ["henrik@nyh.se"]
|
10
|
+
spec.authors = [ "Henrik Nyh" ]
|
11
|
+
spec.email = [ "henrik@nyh.se" ]
|
12
12
|
|
13
13
|
spec.summary = %q{Generate Bankline CSV import files.}
|
14
14
|
spec.homepage = "https://github.com/barsoom/bankline_csv_import_file"
|
15
15
|
spec.license = "MIT"
|
16
|
+
spec.metadata = { "rubygems_mfa_required" => "true" }
|
16
17
|
|
17
18
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
18
19
|
f.match(%r{^(test|spec|features)/})
|
19
20
|
end
|
20
|
-
spec.
|
21
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
|
-
spec.require_paths = ["lib"]
|
21
|
+
spec.require_paths = [ "lib" ]
|
23
22
|
|
24
23
|
spec.add_development_dependency "bundler"
|
25
24
|
spec.add_development_dependency "rake"
|
@@ -1,7 +1,7 @@
|
|
1
1
|
class BanklineCsvImportFile
|
2
2
|
class Record
|
3
3
|
def initialize
|
4
|
-
# H001..H003
|
4
|
+
# 85 columns, namely H001..H003 and T001..T082 per https://www.business.rbs.co.uk/content/dam/rbs_co_uk/Business_and_Content/PDFs/Bankline/Bankline-import-file-guide-CSV-RBS.pdf (section 3).
|
5
5
|
@array = Array.new(85)
|
6
6
|
end
|
7
7
|
|
@@ -13,6 +13,7 @@ class BanklineCsvImportFile
|
|
13
13
|
when /\AT(\d\d\d)\z/
|
14
14
|
i = $1.to_i
|
15
15
|
raise "Out of range!" unless (1..82).cover?(i)
|
16
|
+
|
16
17
|
@array[i + 2] = value
|
17
18
|
else
|
18
19
|
raise "Unknown field: #{key.inspect}"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bankline_csv_import_file
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henrik Nyh
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-11-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -59,9 +59,10 @@ executables: []
|
|
59
59
|
extensions: []
|
60
60
|
extra_rdoc_files: []
|
61
61
|
files:
|
62
|
+
- ".github/workflows/ci.yml"
|
62
63
|
- ".gitignore"
|
63
64
|
- ".rspec"
|
64
|
-
- ".
|
65
|
+
- ".rubocop.yml"
|
65
66
|
- Gemfile
|
66
67
|
- Gemfile.lock
|
67
68
|
- LICENSE.txt
|
@@ -76,7 +77,8 @@ files:
|
|
76
77
|
homepage: https://github.com/barsoom/bankline_csv_import_file
|
77
78
|
licenses:
|
78
79
|
- MIT
|
79
|
-
metadata:
|
80
|
+
metadata:
|
81
|
+
rubygems_mfa_required: 'true'
|
80
82
|
post_install_message:
|
81
83
|
rdoc_options: []
|
82
84
|
require_paths:
|
@@ -92,8 +94,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
92
94
|
- !ruby/object:Gem::Version
|
93
95
|
version: '0'
|
94
96
|
requirements: []
|
95
|
-
|
96
|
-
rubygems_version: 2.6.11
|
97
|
+
rubygems_version: 3.2.28
|
97
98
|
signing_key:
|
98
99
|
specification_version: 4
|
99
100
|
summary: Generate Bankline CSV import files.
|