sepa_king_codeur 0.12.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/.rspec +2 -0
- data/.travis.yml +37 -0
- data/CONTRIBUTING.md +38 -0
- data/Gemfile +2 -0
- data/LICENSE.txt +22 -0
- data/README.md +297 -0
- data/Rakefile +6 -0
- data/gemfiles/Gemfile-activemodel-3.1.x +5 -0
- data/gemfiles/Gemfile-activemodel-3.2.x +5 -0
- data/gemfiles/Gemfile-activemodel-4.0.x +5 -0
- data/gemfiles/Gemfile-activemodel-4.1.x +5 -0
- data/gemfiles/Gemfile-activemodel-4.2.x +5 -0
- data/gemfiles/Gemfile-activemodel-5.0.x +5 -0
- data/gemfiles/Gemfile-activemodel-5.1.x +5 -0
- data/gemfiles/Gemfile-activemodel-5.2.x +5 -0
- data/gemfiles/Gemfile-activemodel-6.0.x +5 -0
- data/lib/schema/pain.001.001.03.ch.02.xsd +1212 -0
- data/lib/schema/pain.001.001.03.xsd +921 -0
- data/lib/schema/pain.001.002.03.xsd +450 -0
- data/lib/schema/pain.001.003.03.xsd +474 -0
- data/lib/schema/pain.008.001.02.xsd +879 -0
- data/lib/schema/pain.008.002.02.xsd +597 -0
- data/lib/schema/pain.008.003.02.xsd +614 -0
- data/lib/sepa_king.rb +19 -0
- data/lib/sepa_king/account.rb +19 -0
- data/lib/sepa_king/account/creditor_account.rb +8 -0
- data/lib/sepa_king/account/creditor_address.rb +37 -0
- data/lib/sepa_king/account/debtor_account.rb +5 -0
- data/lib/sepa_king/account/debtor_address.rb +37 -0
- data/lib/sepa_king/converter.rb +51 -0
- data/lib/sepa_king/error.rb +4 -0
- data/lib/sepa_king/message.rb +169 -0
- data/lib/sepa_king/message/credit_transfer.rb +137 -0
- data/lib/sepa_king/message/direct_debit.rb +207 -0
- data/lib/sepa_king/transaction.rb +56 -0
- data/lib/sepa_king/transaction/credit_transfer_transaction.rb +31 -0
- data/lib/sepa_king/transaction/direct_debit_transaction.rb +56 -0
- data/lib/sepa_king/validator.rb +57 -0
- data/lib/sepa_king/version.rb +3 -0
- data/sepa_king.gemspec +33 -0
- data/spec/account_spec.rb +42 -0
- data/spec/converter_spec.rb +74 -0
- data/spec/credit_transfer_spec.rb +520 -0
- data/spec/credit_transfer_transaction_spec.rb +74 -0
- data/spec/creditor_account_spec.rb +23 -0
- data/spec/debtor_account_spec.rb +12 -0
- data/spec/debtor_address_spec.rb +12 -0
- data/spec/direct_debit_spec.rb +657 -0
- data/spec/direct_debit_transaction_spec.rb +69 -0
- data/spec/examples/pain.001.001.03.ch.02.xml +172 -0
- data/spec/examples/pain.001.001.03.xml +89 -0
- data/spec/examples/pain.001.002.03.xml +89 -0
- data/spec/examples/pain.001.003.03.xml +89 -0
- data/spec/examples/pain.008.002.02.xml +134 -0
- data/spec/examples/pain.008.003.02.xml +134 -0
- data/spec/message_spec.rb +128 -0
- data/spec/spec_helper.rb +33 -0
- data/spec/support/active_model.rb +30 -0
- data/spec/support/custom_matcher.rb +60 -0
- data/spec/support/factories.rb +24 -0
- data/spec/support/validations.rb +27 -0
- data/spec/transaction_spec.rb +134 -0
- data/spec/validation_spec.rb +25 -0
- data/spec/validator_spec.rb +99 -0
- metadata +250 -0
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'rspec/expectations'
|
2
|
+
require 'nokogiri'
|
3
|
+
|
4
|
+
RSpec::Matchers.define :validate_against do |xsd|
|
5
|
+
match do |actual|
|
6
|
+
@schema = Nokogiri::XML::Schema(File.read("lib/schema/#{xsd}"))
|
7
|
+
@doc = Nokogiri::XML(actual)
|
8
|
+
|
9
|
+
expect(@schema).to be_valid(@doc)
|
10
|
+
end
|
11
|
+
|
12
|
+
failure_message do |actual|
|
13
|
+
# Return the validation errors as string
|
14
|
+
@schema.validate(@doc).join("\n")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
RSpec::Matchers.define :have_xml do |xpath, text|
|
19
|
+
match do |actual|
|
20
|
+
doc = Nokogiri::XML(actual)
|
21
|
+
doc.remove_namespaces! # so we can use shorter xpath's without any namespace
|
22
|
+
|
23
|
+
nodes = doc.xpath(xpath)
|
24
|
+
expect(nodes).not_to be_empty
|
25
|
+
if text
|
26
|
+
nodes.each do |node|
|
27
|
+
if text.is_a?(Regexp)
|
28
|
+
expect(node.content).to match(text)
|
29
|
+
else
|
30
|
+
expect(node.content).to eq(text)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
true
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
RSpec::Matchers.define :accept do |*values, options|
|
39
|
+
attributes = Array(options[:for])
|
40
|
+
|
41
|
+
attributes.each do |attribute|
|
42
|
+
match do |actual|
|
43
|
+
values.all? { |value|
|
44
|
+
expect(
|
45
|
+
actual.new(attribute => value).errors_on(attribute).size
|
46
|
+
).to eq 0
|
47
|
+
}
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
attributes.each do |attribute|
|
52
|
+
match_when_negated do |actual|
|
53
|
+
values.all? { |value|
|
54
|
+
expect(
|
55
|
+
actual.new(attribute => value).errors_on(attribute).size
|
56
|
+
).to be >= 1
|
57
|
+
}
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
def credit_transfer_transaction(attributes={})
|
4
|
+
{ name: 'Telekomiker AG',
|
5
|
+
bic: 'PBNKDEFF370',
|
6
|
+
iban: 'DE37112589611964645802',
|
7
|
+
amount: 102.50,
|
8
|
+
reference: 'XYZ-1234/123',
|
9
|
+
remittance_information: 'Rechnung vom 22.08.2013'
|
10
|
+
}.merge(attributes)
|
11
|
+
end
|
12
|
+
|
13
|
+
def direct_debt_transaction(attributes={})
|
14
|
+
{ name: 'Müller & Schmidt oHG',
|
15
|
+
bic: 'GENODEF1JEV',
|
16
|
+
iban: 'DE68210501700012345678',
|
17
|
+
amount: 750.00,
|
18
|
+
reference: 'XYZ/2013-08-ABO/6789',
|
19
|
+
remittance_information: 'Vielen Dank für Ihren Einkauf!',
|
20
|
+
mandate_id: 'K-08-2010-42123',
|
21
|
+
mandate_date_of_signature: Date.new(2010,7,25),
|
22
|
+
requested_date: Date.today + 1
|
23
|
+
}.merge(attributes)
|
24
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# Borrowed from rspec-rails
|
2
|
+
# https://github.com/rspec/rspec-rails/blob/master/lib/rspec/rails/extensions/active_record/base.rb
|
3
|
+
|
4
|
+
module ::ActiveModel::Validations
|
5
|
+
# Extension to enhance `to have` on AR Model instances. Calls
|
6
|
+
# model.valid? in order to prepare the object's errors object. Accepts
|
7
|
+
# a :context option to specify the validation context.
|
8
|
+
#
|
9
|
+
# You can also use this to specify the content of the error messages.
|
10
|
+
#
|
11
|
+
# @example
|
12
|
+
#
|
13
|
+
# expect(model).to have(:no).errors_on(:attribute)
|
14
|
+
# expect(model).to have(1).error_on(:attribute)
|
15
|
+
# expect(model).to have(n).errors_on(:attribute)
|
16
|
+
# expect(model).to have(n).errors_on(:attribute, context: :create)
|
17
|
+
#
|
18
|
+
# expect(model.errors_on(:attribute)).to include("can't be blank")
|
19
|
+
def errors_on(attribute, options = {})
|
20
|
+
valid_args = [options[:context]].compact
|
21
|
+
self.valid?(*valid_args)
|
22
|
+
|
23
|
+
[self.errors[attribute]].flatten.compact
|
24
|
+
end
|
25
|
+
|
26
|
+
alias :error_on :errors_on
|
27
|
+
end
|
@@ -0,0 +1,134 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe SEPA::Transaction do
|
5
|
+
describe :new do
|
6
|
+
it 'should have default for reference' do
|
7
|
+
expect(SEPA::Transaction.new.reference).to eq('NOTPROVIDED')
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should have default for requested_date' do
|
11
|
+
expect(SEPA::Transaction.new.requested_date).to eq(Date.new(1999, 1, 1))
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should have default for batch_booking' do
|
15
|
+
expect(SEPA::Transaction.new.batch_booking).to eq(true)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
context 'Name' do
|
20
|
+
it 'should accept valid value' do
|
21
|
+
expect(SEPA::Transaction).to accept('Manfred Mustermann III.', 'Zahlemann & Söhne GbR', 'X' * 70, for: :name)
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should not accept invalid value' do
|
25
|
+
expect(SEPA::Transaction).not_to accept(nil, '', 'X' * 71, for: :name)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context 'Adress' do
|
30
|
+
context 'with address_line' do
|
31
|
+
it 'should accept valid value' do
|
32
|
+
expect(SEPA::Transaction).to accept(SEPA::DebtorAddress.new(
|
33
|
+
country_code: "CH",
|
34
|
+
address_line1: "Musterstrasse 123",
|
35
|
+
address_line2: "1234 Musterstadt"
|
36
|
+
), for: :debtor_address)
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'should accept valid value' do
|
40
|
+
expect(SEPA::Transaction).to accept(SEPA::CreditorAddress.new(
|
41
|
+
country_code: "CH",
|
42
|
+
address_line1: "Musterstrasse 123",
|
43
|
+
address_line2: "1234 Musterstadt"
|
44
|
+
), for: :creditor_address)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
context 'with individual address fields' do
|
49
|
+
it 'should accept valid value' do
|
50
|
+
expect(SEPA::Transaction).to accept(SEPA::DebtorAddress.new(
|
51
|
+
country_code: "CH",
|
52
|
+
street_name: 'Mustergasse',
|
53
|
+
building_number: '123',
|
54
|
+
post_code: '1234',
|
55
|
+
town_name: 'Musterstadt'
|
56
|
+
), for: :debtor_address)
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'should accept valid value' do
|
60
|
+
expect(SEPA::Transaction).to accept(SEPA::CreditorAddress.new(
|
61
|
+
country_code: "CH",
|
62
|
+
street_name: 'Mustergasse',
|
63
|
+
building_number: '123',
|
64
|
+
post_code: '1234',
|
65
|
+
town_name: 'Musterstadt'
|
66
|
+
), for: :creditor_address)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'should not accept invalid value' do
|
71
|
+
expect(SEPA::Transaction).not_to accept('', {} , for: :name)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
context 'IBAN' do
|
76
|
+
it 'should accept valid value' do
|
77
|
+
expect(SEPA::Transaction).to accept('DE21500500009876543210', 'PL61109010140000071219812874', for: :iban)
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'should not accept invalid value' do
|
81
|
+
expect(SEPA::Transaction).not_to accept(nil, '', 'invalid', for: :iban)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
context 'BIC' do
|
86
|
+
it 'should accept valid value' do
|
87
|
+
expect(SEPA::Transaction).to accept('DEUTDEFF', 'DEUTDEFF500', 'SPUEDE2UXXX', for: :bic)
|
88
|
+
end
|
89
|
+
|
90
|
+
it 'should not accept invalid value' do
|
91
|
+
expect(SEPA::Transaction).not_to accept('', 'invalid', for: :bic)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
context 'Amount' do
|
96
|
+
it 'should accept valid value' do
|
97
|
+
expect(SEPA::Transaction).to accept(0.01, 1, 100, 100.00, 99.99, 1234567890.12, BigDecimal('10'), '42', '42.51', '42.512', 1.23456, for: :amount)
|
98
|
+
end
|
99
|
+
|
100
|
+
it 'should not accept invalid value' do
|
101
|
+
expect(SEPA::Transaction).not_to accept(nil, 0, -3, 'xz', for: :amount)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
context 'Reference' do
|
106
|
+
it 'should accept valid value' do
|
107
|
+
expect(SEPA::Transaction).to accept(nil, 'ABC-1234/78.0', 'X' * 35, for: :reference)
|
108
|
+
end
|
109
|
+
|
110
|
+
it 'should not accept invalid value' do
|
111
|
+
expect(SEPA::Transaction).not_to accept('', 'X' * 36, for: :reference)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
context 'Remittance information' do
|
116
|
+
it 'should allow valid value' do
|
117
|
+
expect(SEPA::Transaction).to accept(nil, 'Bonus', 'X' * 140, for: :remittance_information)
|
118
|
+
end
|
119
|
+
|
120
|
+
it 'should not allow invalid value' do
|
121
|
+
expect(SEPA::Transaction).not_to accept('', 'X' * 141, for: :remittance_information)
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
context 'Currency' do
|
126
|
+
it 'should allow valid values' do
|
127
|
+
expect(SEPA::Transaction).to accept('EUR', 'CHF', 'SEK', for: :currency)
|
128
|
+
end
|
129
|
+
|
130
|
+
it 'should not allow invalid values' do
|
131
|
+
expect(SEPA::Transaction).not_to accept('', 'EURO', 'ABCDEF', for: :currency)
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Credit Transfer Initiation' do
|
4
|
+
it "should validate example file" do
|
5
|
+
expect(File.read('spec/examples/pain.001.002.03.xml')).to validate_against('pain.001.002.03.xsd')
|
6
|
+
expect(File.read('spec/examples/pain.001.003.03.xml')).to validate_against('pain.001.003.03.xsd')
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'should not validate dummy string' do
|
10
|
+
expect('foo').not_to validate_against('pain.001.002.03.xsd')
|
11
|
+
expect('foo').not_to validate_against('pain.001.003.03.xsd')
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe 'Direct Debit Initiation' do
|
16
|
+
it 'should validate example file' do
|
17
|
+
expect(File.read('spec/examples/pain.008.002.02.xml')).to validate_against('pain.008.002.02.xsd')
|
18
|
+
expect(File.read('spec/examples/pain.008.003.02.xml')).to validate_against('pain.008.003.02.xsd')
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should not validate dummy string' do
|
22
|
+
expect('foo').not_to validate_against('pain.008.002.02.xsd')
|
23
|
+
expect('foo').not_to validate_against('pain.008.003.02.xsd')
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe SEPA::IBANValidator do
|
5
|
+
class Validatable
|
6
|
+
include ActiveModel::Model
|
7
|
+
attr_accessor :iban, :iban_the_terrible
|
8
|
+
validates_with SEPA::IBANValidator, message: "%{value} seems wrong"
|
9
|
+
validates_with SEPA::IBANValidator, field_name: :iban_the_terrible
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should accept valid IBAN' do
|
13
|
+
expect(Validatable).to accept('DE21500500009876543210', 'DE87200500001234567890', for: [:iban, :iban_the_terrible])
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should not accept an invalid IBAN' do
|
17
|
+
expect(Validatable).not_to accept('', 'xxx', # Oviously no IBAN
|
18
|
+
'DE22500500009876543210', # wrong checksum
|
19
|
+
'DE2150050000987654321', # too short
|
20
|
+
'de87200500001234567890', # downcase characters
|
21
|
+
'DE87 2005 0000 1234 5678 90', # spaces included
|
22
|
+
for: [:iban, :iban_the_terrible])
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should customize error message" do
|
26
|
+
v = Validatable.new(:iban => 'xxx')
|
27
|
+
v.valid?
|
28
|
+
expect(v.errors[:iban]).to eq(['xxx seems wrong'])
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe SEPA::BICValidator do
|
33
|
+
class Validatable
|
34
|
+
include ActiveModel::Model
|
35
|
+
attr_accessor :bic, :custom_bic
|
36
|
+
validates_with SEPA::BICValidator, message: "%{value} seems wrong"
|
37
|
+
validates_with SEPA::BICValidator, field_name: :custom_bic
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should accept valid BICs' do
|
41
|
+
expect(Validatable).to accept('DEUTDEDBDUE', 'DUSSDEDDXXX', for: [:bic, :custom_bic])
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'should not accept an invalid BIC' do
|
45
|
+
expect(Validatable).not_to accept('', 'GENODE61HR', 'DEUTDEDBDUEDEUTDEDBDUE', for: [:bic, :custom_bic])
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should customize error message" do
|
49
|
+
v = Validatable.new(:bic => 'xxx')
|
50
|
+
v.valid?
|
51
|
+
expect(v.errors[:bic]).to eq(['xxx seems wrong'])
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
describe SEPA::CreditorIdentifierValidator do
|
56
|
+
class Validatable
|
57
|
+
include ActiveModel::Model
|
58
|
+
attr_accessor :creditor_identifier, :crid
|
59
|
+
validates_with SEPA::CreditorIdentifierValidator, message: "%{value} seems wrong"
|
60
|
+
validates_with SEPA::CreditorIdentifierValidator, field_name: :crid
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'should accept valid creditor_identifier' do
|
64
|
+
expect(Validatable).to accept('DE98ZZZ09999999999', 'AT12ZZZ00000000001', 'FR12ZZZ123456', 'NL97ZZZ123456780001', for: [:creditor_identifier, :crid])
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'should not accept an invalid creditor_identifier' do
|
68
|
+
expect(Validatable).not_to accept('', 'xxx', 'DE98ZZZ099999999990', for: [:creditor_identifier, :crid])
|
69
|
+
end
|
70
|
+
|
71
|
+
it "should customize error message" do
|
72
|
+
v = Validatable.new(:creditor_identifier => 'xxx')
|
73
|
+
v.valid?
|
74
|
+
expect(v.errors[:creditor_identifier]).to eq(['xxx seems wrong'])
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
describe SEPA::MandateIdentifierValidator do
|
79
|
+
class Validatable
|
80
|
+
include ActiveModel::Model
|
81
|
+
attr_accessor :mandate_id, :mid
|
82
|
+
validates_with SEPA::MandateIdentifierValidator, message: "%{value} seems wrong"
|
83
|
+
validates_with SEPA::MandateIdentifierValidator, field_name: :mid
|
84
|
+
end
|
85
|
+
|
86
|
+
it 'should accept valid mandate_identifier' do
|
87
|
+
expect(Validatable).to accept('XYZ-123', "+?/-:().,'", 'X' * 35, for: [:mandate_id, :mid])
|
88
|
+
end
|
89
|
+
|
90
|
+
it 'should not accept an invalid mandate_identifier' do
|
91
|
+
expect(Validatable).not_to accept(nil, '', 'X' * 36, 'ABC 123', '#/*', 'Ümläüt', for: [:mandate_id, :mid])
|
92
|
+
end
|
93
|
+
|
94
|
+
it "should customize error message" do
|
95
|
+
v = Validatable.new(:mandate_id => 'ABC 123')
|
96
|
+
v.valid?
|
97
|
+
expect(v.errors[:mandate_id]).to eq(['ABC 123 seems wrong'])
|
98
|
+
end
|
99
|
+
end
|
metadata
ADDED
@@ -0,0 +1,250 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sepa_king_codeur
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.12.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Georg Leciejewski
|
8
|
+
- Georg Ledermann
|
9
|
+
- Codeur
|
10
|
+
autorequire:
|
11
|
+
bindir: bin
|
12
|
+
cert_chain: []
|
13
|
+
date: 2021-07-08 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: activemodel
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - ">="
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '3.1'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '3.1'
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: iban-tools
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '0'
|
36
|
+
type: :runtime
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0'
|
43
|
+
- !ruby/object:Gem::Dependency
|
44
|
+
name: nokogiri
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '0'
|
50
|
+
type: :runtime
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0'
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: bundler
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0'
|
64
|
+
type: :development
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: coveralls
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
type: :development
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '0'
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: rake
|
87
|
+
requirement: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0'
|
92
|
+
type: :development
|
93
|
+
prerelease: false
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
- !ruby/object:Gem::Dependency
|
100
|
+
name: rspec
|
101
|
+
requirement: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - ">="
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '0'
|
106
|
+
type: :development
|
107
|
+
prerelease: false
|
108
|
+
version_requirements: !ruby/object:Gem::Requirement
|
109
|
+
requirements:
|
110
|
+
- - ">="
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '0'
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: simplecov
|
115
|
+
requirement: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - ">="
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '0'
|
120
|
+
type: :development
|
121
|
+
prerelease: false
|
122
|
+
version_requirements: !ruby/object:Gem::Requirement
|
123
|
+
requirements:
|
124
|
+
- - ">="
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '0'
|
127
|
+
description: Implemention of pain.001.002.03 and pain.008.002.02 (ISO 20022)
|
128
|
+
email:
|
129
|
+
- gl@salesking.eu
|
130
|
+
- mail@georg-ledermann.de
|
131
|
+
- dev@codeur.com
|
132
|
+
executables: []
|
133
|
+
extensions: []
|
134
|
+
extra_rdoc_files: []
|
135
|
+
files:
|
136
|
+
- ".gitignore"
|
137
|
+
- ".rspec"
|
138
|
+
- ".travis.yml"
|
139
|
+
- CONTRIBUTING.md
|
140
|
+
- Gemfile
|
141
|
+
- LICENSE.txt
|
142
|
+
- README.md
|
143
|
+
- Rakefile
|
144
|
+
- gemfiles/Gemfile-activemodel-3.1.x
|
145
|
+
- gemfiles/Gemfile-activemodel-3.2.x
|
146
|
+
- gemfiles/Gemfile-activemodel-4.0.x
|
147
|
+
- gemfiles/Gemfile-activemodel-4.1.x
|
148
|
+
- gemfiles/Gemfile-activemodel-4.2.x
|
149
|
+
- gemfiles/Gemfile-activemodel-5.0.x
|
150
|
+
- gemfiles/Gemfile-activemodel-5.1.x
|
151
|
+
- gemfiles/Gemfile-activemodel-5.2.x
|
152
|
+
- gemfiles/Gemfile-activemodel-6.0.x
|
153
|
+
- lib/schema/pain.001.001.03.ch.02.xsd
|
154
|
+
- lib/schema/pain.001.001.03.xsd
|
155
|
+
- lib/schema/pain.001.002.03.xsd
|
156
|
+
- lib/schema/pain.001.003.03.xsd
|
157
|
+
- lib/schema/pain.008.001.02.xsd
|
158
|
+
- lib/schema/pain.008.002.02.xsd
|
159
|
+
- lib/schema/pain.008.003.02.xsd
|
160
|
+
- lib/sepa_king.rb
|
161
|
+
- lib/sepa_king/account.rb
|
162
|
+
- lib/sepa_king/account/creditor_account.rb
|
163
|
+
- lib/sepa_king/account/creditor_address.rb
|
164
|
+
- lib/sepa_king/account/debtor_account.rb
|
165
|
+
- lib/sepa_king/account/debtor_address.rb
|
166
|
+
- lib/sepa_king/converter.rb
|
167
|
+
- lib/sepa_king/error.rb
|
168
|
+
- lib/sepa_king/message.rb
|
169
|
+
- lib/sepa_king/message/credit_transfer.rb
|
170
|
+
- lib/sepa_king/message/direct_debit.rb
|
171
|
+
- lib/sepa_king/transaction.rb
|
172
|
+
- lib/sepa_king/transaction/credit_transfer_transaction.rb
|
173
|
+
- lib/sepa_king/transaction/direct_debit_transaction.rb
|
174
|
+
- lib/sepa_king/validator.rb
|
175
|
+
- lib/sepa_king/version.rb
|
176
|
+
- sepa_king.gemspec
|
177
|
+
- spec/account_spec.rb
|
178
|
+
- spec/converter_spec.rb
|
179
|
+
- spec/credit_transfer_spec.rb
|
180
|
+
- spec/credit_transfer_transaction_spec.rb
|
181
|
+
- spec/creditor_account_spec.rb
|
182
|
+
- spec/debtor_account_spec.rb
|
183
|
+
- spec/debtor_address_spec.rb
|
184
|
+
- spec/direct_debit_spec.rb
|
185
|
+
- spec/direct_debit_transaction_spec.rb
|
186
|
+
- spec/examples/pain.001.001.03.ch.02.xml
|
187
|
+
- spec/examples/pain.001.001.03.xml
|
188
|
+
- spec/examples/pain.001.002.03.xml
|
189
|
+
- spec/examples/pain.001.003.03.xml
|
190
|
+
- spec/examples/pain.008.002.02.xml
|
191
|
+
- spec/examples/pain.008.003.02.xml
|
192
|
+
- spec/message_spec.rb
|
193
|
+
- spec/spec_helper.rb
|
194
|
+
- spec/support/active_model.rb
|
195
|
+
- spec/support/custom_matcher.rb
|
196
|
+
- spec/support/factories.rb
|
197
|
+
- spec/support/validations.rb
|
198
|
+
- spec/transaction_spec.rb
|
199
|
+
- spec/validation_spec.rb
|
200
|
+
- spec/validator_spec.rb
|
201
|
+
homepage: http://github.com/codeur/sepa_king
|
202
|
+
licenses:
|
203
|
+
- MIT
|
204
|
+
metadata:
|
205
|
+
homepage_uri: http://github.com/codeur/sepa_king
|
206
|
+
source_code_uri: https://github.com/codeur/sepa_king
|
207
|
+
post_install_message:
|
208
|
+
rdoc_options: []
|
209
|
+
require_paths:
|
210
|
+
- lib
|
211
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - ">="
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '2.2'
|
216
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
217
|
+
requirements:
|
218
|
+
- - ">="
|
219
|
+
- !ruby/object:Gem::Version
|
220
|
+
version: '0'
|
221
|
+
requirements: []
|
222
|
+
rubygems_version: 3.2.7
|
223
|
+
signing_key:
|
224
|
+
specification_version: 4
|
225
|
+
summary: Ruby gem for creating SEPA XML files
|
226
|
+
test_files:
|
227
|
+
- spec/account_spec.rb
|
228
|
+
- spec/converter_spec.rb
|
229
|
+
- spec/credit_transfer_spec.rb
|
230
|
+
- spec/credit_transfer_transaction_spec.rb
|
231
|
+
- spec/creditor_account_spec.rb
|
232
|
+
- spec/debtor_account_spec.rb
|
233
|
+
- spec/debtor_address_spec.rb
|
234
|
+
- spec/direct_debit_spec.rb
|
235
|
+
- spec/direct_debit_transaction_spec.rb
|
236
|
+
- spec/examples/pain.001.001.03.ch.02.xml
|
237
|
+
- spec/examples/pain.001.001.03.xml
|
238
|
+
- spec/examples/pain.001.002.03.xml
|
239
|
+
- spec/examples/pain.001.003.03.xml
|
240
|
+
- spec/examples/pain.008.002.02.xml
|
241
|
+
- spec/examples/pain.008.003.02.xml
|
242
|
+
- spec/message_spec.rb
|
243
|
+
- spec/spec_helper.rb
|
244
|
+
- spec/support/active_model.rb
|
245
|
+
- spec/support/custom_matcher.rb
|
246
|
+
- spec/support/factories.rb
|
247
|
+
- spec/support/validations.rb
|
248
|
+
- spec/transaction_spec.rb
|
249
|
+
- spec/validation_spec.rb
|
250
|
+
- spec/validator_spec.rb
|