sps_king 0.3.0 → 0.4.0
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 +4 -4
- data/.github/workflows/test.yml +12 -7
- data/CHANGELOG.md +46 -0
- data/LICENSE.txt +1 -1
- data/README.md +9 -1
- data/cliff.toml +88 -0
- data/lib/sps_king/message/credit_transfer.rb +5 -2
- data/lib/sps_king/transaction/credit_transfer_transaction.rb +6 -1
- data/lib/sps_king/transaction.rb +1 -1
- data/lib/sps_king/version.rb +1 -1
- data/spec/lib/sps_king/message/credit_transfer_spec.rb +21 -0
- data/spec/lib/sps_king/transaction/credit_transfer_transaction_spec.rb +13 -1
- metadata +5 -4
- data/gemfiles/Gemfile-activemodel-6.0.x +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7110f83251be28b1fcd5bc66d2071ac1587c7ddd9ab19a3fed3c8e0c593bc87b
|
4
|
+
data.tar.gz: 02b6280f380d1648bd8d1d905d96676e4ac7f299eb07d968780cad25967164d4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8533d776ca0a69f4f675f5717ebe4cb6a4060d85c90dfdba2d6d360e5f04017be111e78a4668d38834138406f6af7d064f20e8863dd96633bde73d693f462d31
|
7
|
+
data.tar.gz: f318b2e263415392387480e4d15d97e9da8a66ecbf69dd5f40c8df32e630ea717bfdcf89af824903a2b3bbed7dd0fbc2d3138f6f28af9289fe76ca65f8551bbe
|
data/.github/workflows/test.yml
CHANGED
@@ -11,21 +11,26 @@ jobs:
|
|
11
11
|
runs-on: ubuntu-latest
|
12
12
|
|
13
13
|
strategy:
|
14
|
+
fail-fast: false
|
14
15
|
matrix:
|
15
|
-
ruby
|
16
|
+
ruby: ['3.0', '3.1', '3.2', '3.3']
|
16
17
|
gemfile:
|
17
|
-
- gemfiles/Gemfile-activemodel-6.0.x
|
18
18
|
- gemfiles/Gemfile-activemodel-6.1.x
|
19
19
|
- gemfiles/Gemfile-activemodel-7.0.x
|
20
20
|
- gemfiles/Gemfile-activemodel-7.1.x
|
21
21
|
|
22
|
+
name: Ruby ${{ matrix.ruby }} / Gemfile {{ matrix.gemfile }}
|
23
|
+
|
22
24
|
steps:
|
23
25
|
- uses: actions/checkout@v3
|
24
|
-
|
25
|
-
|
26
|
+
|
27
|
+
- name: Set up Ruby ${{ matrix.ruby }}
|
28
|
+
uses: ruby/setup-ruby@v1
|
26
29
|
with:
|
27
|
-
ruby-version: ${{ matrix.ruby
|
28
|
-
|
29
|
-
|
30
|
+
ruby-version: ${{ matrix.ruby }}
|
31
|
+
|
32
|
+
- name: Install dependencies for ${{ matrix.gemfile }}
|
33
|
+
run: bundle install --gemfile=${{ matrix.gemfile }}
|
34
|
+
|
30
35
|
- name: Run tests
|
31
36
|
run: bundle exec rspec
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
## What's Changed
|
2
|
+
* Make charge bearer optional instead of constant set to `SLEV`
|
3
|
+
|
4
|
+
## What's Changed in v0.3.1
|
5
|
+
* Bump version to 0.3.1
|
6
|
+
* Merge pull request #5 from viafintech/bug/use-correct-default-currency
|
7
|
+
* Revert to old gemfile definition
|
8
|
+
* Re-add bundle install step
|
9
|
+
* Fix indentation
|
10
|
+
* Improve test setup
|
11
|
+
* Add newer ruby versions to test matrix
|
12
|
+
* Fix default currency on transactions
|
13
|
+
|
14
|
+
**Full Changelog**: https://github.com///compare/v0.3.0...v0.3.1
|
15
|
+
|
16
|
+
## What's Changed in v0.3.0
|
17
|
+
* Bump gem version
|
18
|
+
* Update tested activemodel versions
|
19
|
+
* Update test ruby version to 3.0
|
20
|
+
|
21
|
+
**Full Changelog**: https://github.com///compare/v0.2.0...v0.3.0
|
22
|
+
|
23
|
+
## What's Changed in v0.2.0
|
24
|
+
* Merge pull request #3 from viafintech/feature/update-dependencies-and-run-tests-on-github
|
25
|
+
* Stick to ruby 2.7 support for now
|
26
|
+
* Fix CI setup
|
27
|
+
* Bump required ruby version to 2.7
|
28
|
+
* Merge pull request #2 from viafintech/remove-coveralls-dependency
|
29
|
+
* Update version to 0.1.1
|
30
|
+
* Add missing gemfiles for testing
|
31
|
+
* Remove coveralls dependency
|
32
|
+
* Merge pull request #1 from Barzahlen/update-copyright-notice
|
33
|
+
* Update copyright notice and author mail address
|
34
|
+
* Add comment pointing to sepa_king for sepa files
|
35
|
+
* Fix gem description for next release
|
36
|
+
|
37
|
+
**Full Changelog**: https://github.com///compare/v0.1.0...v0.2.0
|
38
|
+
|
39
|
+
## What's Changed in v0.1.0
|
40
|
+
* Add .gem to gitignore
|
41
|
+
* Adapt example account holder
|
42
|
+
* Fix status badges
|
43
|
+
* Fix copyright notice
|
44
|
+
* Initial implementation after fork from sepa_king gem
|
45
|
+
|
46
|
+
<!-- generated by git-cliff -->
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -91,7 +91,7 @@ sdd.add_transaction(
|
|
91
91
|
# One of these strings:
|
92
92
|
# 'CHTA' ("Banklastschrift") - Only for Swiss Direct Debits
|
93
93
|
# 'CHDD' ("PostFinance-Lastschrift") - Only for Swiss Direct Debits
|
94
|
-
service_level: 'CHTA'
|
94
|
+
service_level: 'CHTA',
|
95
95
|
|
96
96
|
# Local instrument, in German "Lastschriftart"
|
97
97
|
# One of these strings:
|
@@ -198,6 +198,14 @@ sct.add_transaction(
|
|
198
198
|
# 'URGP' ("Taggleiche Eilüberweisung")
|
199
199
|
service_level: 'URGP'
|
200
200
|
|
201
|
+
# OPTIONAL: Charge Bearer
|
202
|
+
# One of these strings:
|
203
|
+
# 'DEBT' (Borne by Debitor)
|
204
|
+
# 'CRED' (Borne by Creditor)
|
205
|
+
# 'SHAR' (Shared)
|
206
|
+
# 'SLEV' (Service Level) - Must be SLEV for SEPA transfers
|
207
|
+
charge_bearer: 'SHAR',
|
208
|
+
|
201
209
|
# OPTIONAL: Unstructured information to indicate the purpose of the payment
|
202
210
|
# String, max. 4 char
|
203
211
|
category_purpose: 'SALA',
|
data/cliff.toml
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
# git-cliff ~ configuration file
|
2
|
+
# https://git-cliff.org/docs/configuration
|
3
|
+
|
4
|
+
# [remote.github]
|
5
|
+
# owner = "orhun"
|
6
|
+
# repo = "git-cliff"
|
7
|
+
# token = ""
|
8
|
+
|
9
|
+
[changelog]
|
10
|
+
# template for the changelog body
|
11
|
+
# https://keats.github.io/tera/docs/#introduction
|
12
|
+
body = """
|
13
|
+
## What's Changed
|
14
|
+
|
15
|
+
{%- if version %} in {{ version }}{%- endif -%}
|
16
|
+
{% for commit in commits %}
|
17
|
+
{% if commit.github.pr_title -%}
|
18
|
+
{%- set commit_message = commit.github.pr_title -%}
|
19
|
+
{%- else -%}
|
20
|
+
{%- set commit_message = commit.message -%}
|
21
|
+
{%- endif -%}
|
22
|
+
* {{ commit_message | split(pat="\n") | first | trim }}\
|
23
|
+
{% if commit.github.username %} by @{{ commit.github.username }}{%- endif -%}
|
24
|
+
{% if commit.github.pr_number %} in \
|
25
|
+
[#{{ commit.github.pr_number }}]({{ self::remote_url() }}/pull/{{ commit.github.pr_number }}) \
|
26
|
+
{%- endif %}
|
27
|
+
{%- endfor -%}
|
28
|
+
|
29
|
+
{%- if github -%}
|
30
|
+
{% if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 %}
|
31
|
+
{% raw %}\n{% endraw -%}
|
32
|
+
## New Contributors
|
33
|
+
{%- endif %}\
|
34
|
+
{% for contributor in github.contributors | filter(attribute="is_first_time", value=true) %}
|
35
|
+
* @{{ contributor.username }} made their first contribution
|
36
|
+
{%- if contributor.pr_number %} in \
|
37
|
+
[#{{ contributor.pr_number }}]({{ self::remote_url() }}/pull/{{ contributor.pr_number }}) \
|
38
|
+
{%- endif %}
|
39
|
+
{%- endfor -%}
|
40
|
+
{%- endif -%}
|
41
|
+
|
42
|
+
{% if version %}
|
43
|
+
{% if previous.version %}
|
44
|
+
**Full Changelog**: {{ self::remote_url() }}/compare/{{ previous.version }}...{{ version }}
|
45
|
+
{% endif %}
|
46
|
+
{% else -%}
|
47
|
+
{% raw %}\n{% endraw %}
|
48
|
+
{% endif %}
|
49
|
+
|
50
|
+
{%- macro remote_url() -%}
|
51
|
+
https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}
|
52
|
+
{%- endmacro -%}
|
53
|
+
"""
|
54
|
+
# remove the leading and trailing whitespace from the template
|
55
|
+
trim = true
|
56
|
+
# changelog footer
|
57
|
+
footer = """
|
58
|
+
<!-- generated by git-cliff -->
|
59
|
+
"""
|
60
|
+
# postprocessors
|
61
|
+
postprocessors = []
|
62
|
+
|
63
|
+
[git]
|
64
|
+
# parse the commits based on https://www.conventionalcommits.org
|
65
|
+
conventional_commits = false
|
66
|
+
# filter out the commits that are not conventional
|
67
|
+
filter_unconventional = true
|
68
|
+
# process each line of a commit as an individual commit
|
69
|
+
split_commits = false
|
70
|
+
# regex for preprocessing the commit messages
|
71
|
+
commit_preprocessors = [
|
72
|
+
# remove issue numbers from commits
|
73
|
+
{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "" },
|
74
|
+
]
|
75
|
+
# protect breaking changes from being skipped due to matching a skipping commit_parser
|
76
|
+
protect_breaking_commits = false
|
77
|
+
# filter out the commits that are not matched by commit parsers
|
78
|
+
filter_commits = false
|
79
|
+
# regex for matching git tags
|
80
|
+
tag_pattern = "v[0-9].*"
|
81
|
+
# regex for skipping tags
|
82
|
+
skip_tags = "beta|alpha"
|
83
|
+
# regex for ignoring tags
|
84
|
+
ignore_tags = "rc"
|
85
|
+
# sort the tags topologically
|
86
|
+
topo_order = false
|
87
|
+
# sort the commits inside sections by oldest/newest order
|
88
|
+
sort_commits = "newest"
|
@@ -16,7 +16,8 @@ module SPS
|
|
16
16
|
requested_date: transaction.requested_date,
|
17
17
|
batch_booking: transaction.batch_booking,
|
18
18
|
service_level: transaction.service_level,
|
19
|
-
category_purpose: transaction.category_purpose
|
19
|
+
category_purpose: transaction.category_purpose,
|
20
|
+
charge_bearer: transaction.charge_bearer,
|
20
21
|
}
|
21
22
|
end
|
22
23
|
|
@@ -56,7 +57,9 @@ module SPS
|
|
56
57
|
builder.BIC(account.bic)
|
57
58
|
end
|
58
59
|
end
|
59
|
-
|
60
|
+
if group[:charge_bearer]
|
61
|
+
builder.ChrgBr(group[:charge_bearer])
|
62
|
+
end
|
60
63
|
|
61
64
|
transactions.each do |transaction|
|
62
65
|
build_transaction(builder, transaction)
|
@@ -3,10 +3,15 @@ module SPS
|
|
3
3
|
class CreditTransferTransaction < Transaction
|
4
4
|
attr_accessor :service_level,
|
5
5
|
:creditor_address,
|
6
|
-
:category_purpose
|
6
|
+
:category_purpose,
|
7
|
+
:charge_bearer
|
8
|
+
|
9
|
+
CHARGE_BEARERS = ['DEBT', 'CRED', 'SHAR', 'SLEV'].freeze
|
7
10
|
|
8
11
|
validates_length_of :category_purpose, within: 1..4, allow_nil: true
|
9
12
|
|
13
|
+
validates :charge_bearer, inclusion: CHARGE_BEARERS, allow_nil: true
|
14
|
+
|
10
15
|
validate { |t| t.validate_requested_date_after(Date.today) }
|
11
16
|
|
12
17
|
def schema_compatible?(schema_name)
|
data/lib/sps_king/transaction.rb
CHANGED
data/lib/sps_king/version.rb
CHANGED
@@ -261,6 +261,27 @@ describe SPS::CreditTransfer do
|
|
261
261
|
end
|
262
262
|
end
|
263
263
|
|
264
|
+
context 'with charge bearer' do
|
265
|
+
SPS::CreditTransferTransaction::CHARGE_BEARERS.each do |charge_bearer|
|
266
|
+
context "with value #{charge_bearer}" do
|
267
|
+
subject do
|
268
|
+
sct = credit_transfer
|
269
|
+
|
270
|
+
sct.add_transaction(credit_transfer_transaction.merge(charge_bearer: charge_bearer))
|
271
|
+
|
272
|
+
sct.to_xml
|
273
|
+
end
|
274
|
+
|
275
|
+
it 'should contain payment_information with <ChrgBr>' do
|
276
|
+
puts subject
|
277
|
+
|
278
|
+
expect(subject)
|
279
|
+
.to have_xml('//Document/CstmrCdtTrfInitn/PmtInf[1]/ChrgBr', charge_bearer)
|
280
|
+
end
|
281
|
+
end
|
282
|
+
end
|
283
|
+
end
|
284
|
+
|
264
285
|
context 'with different batch_booking given' do
|
265
286
|
subject do
|
266
287
|
sct = credit_transfer
|
@@ -11,7 +11,7 @@ describe SPS::CreditTransferTransaction do
|
|
11
11
|
bic: 'RAIFCH22',
|
12
12
|
amount: 102.50,
|
13
13
|
reference: 'XYZ-1234/123',
|
14
|
-
remittance_information: 'Rechnung 123 vom 22.08.2013'
|
14
|
+
remittance_information: 'Rechnung 123 vom 22.08.2013',
|
15
15
|
)
|
16
16
|
).to be_valid
|
17
17
|
end
|
@@ -50,4 +50,16 @@ describe SPS::CreditTransferTransaction do
|
|
50
50
|
expect(SPS::CreditTransferTransaction).not_to accept('', 'X' * 5, for: :category_purpose)
|
51
51
|
end
|
52
52
|
end
|
53
|
+
|
54
|
+
context 'Charge Bearer' do
|
55
|
+
it 'should allow valid value' do
|
56
|
+
expect(SPS::CreditTransferTransaction)
|
57
|
+
.to accept(nil, 'DEBT', 'CRED', 'SHAR', 'SLEV', for: :charge_bearer)
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'should not allow invalid value' do
|
61
|
+
expect(SPS::CreditTransferTransaction)
|
62
|
+
.not_to accept('', 'X' * 5, 'X' * 4, for: :charge_bearer)
|
63
|
+
end
|
64
|
+
end
|
53
65
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sps_king
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tobias Schoknecht
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-07-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -119,12 +119,13 @@ files:
|
|
119
119
|
- ".github/workflows/test.yml"
|
120
120
|
- ".gitignore"
|
121
121
|
- ".rspec"
|
122
|
+
- CHANGELOG.md
|
122
123
|
- CONTRIBUTING.md
|
123
124
|
- Gemfile
|
124
125
|
- LICENSE.txt
|
125
126
|
- README.md
|
126
127
|
- Rakefile
|
127
|
-
-
|
128
|
+
- cliff.toml
|
128
129
|
- gemfiles/Gemfile-activemodel-6.1.x
|
129
130
|
- gemfiles/Gemfile-activemodel-7.0.x
|
130
131
|
- gemfiles/Gemfile-activemodel-7.1.x
|
@@ -189,7 +190,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
189
190
|
- !ruby/object:Gem::Version
|
190
191
|
version: '0'
|
191
192
|
requirements: []
|
192
|
-
rubygems_version: 3.5.
|
193
|
+
rubygems_version: 3.5.11
|
193
194
|
signing_key:
|
194
195
|
specification_version: 4
|
195
196
|
summary: Ruby gem for creating SPS XML files
|