sepa 0.0.14 → 0.0.15
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 +7 -0
- data/README.md +11 -3
- data/lib/sepa/base.rb +14 -11
- data/lib/sepa/direct_debit_order.rb +4 -3
- data/lib/sepa/version.rb +1 -1
- data/spec/sepa/direct_debit_order_spec.rb +10 -7
- data/spec/sepa/expected-simple.xml +1 -1
- data/spec/sepa/expected_customer_direct_debit_initiation_v02.xml +2 -2
- data/spec/sepa/expected_customer_direct_debit_initiation_v04.xml +1 -1
- data/spec/sepa/expected_customer_direct_debit_initiation_v04_with_org_id.xml +1 -1
- data/spec/sepa/payments_initiation/pain00800104/customer_direct_debit_initiation_spec.rb +6 -5
- data/spec/spec_helper.rb +34 -0
- metadata +63 -98
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA512:
|
3
|
+
metadata.gz: d57cc7203c00c3f47dc18189cca69b7b7397c424d0cf390f3fd9d4a948cbd9cbcefffe9efbbad0338ccc202c10c9d9199b051b874e99e3b2fd13e5fd37062752
|
4
|
+
data.tar.gz: f7a93dafda118a000313bbf186f35fbcdeab9f9d53892cf06dccf6bd1f422019269293f6f1e92035b49b48ee9f1384c97307bbc6c8adffc2706bc1cbcd425847
|
5
|
+
SHA1:
|
6
|
+
metadata.gz: a02ba9d2473675049d7bcba39addd3e4513d69bd
|
7
|
+
data.tar.gz: fba85ca92384748652582373d4d235315969e988
|
data/README.md
CHANGED
@@ -3,16 +3,16 @@
|
|
3
3
|
An implementation of pain.008.001 CustomerDirectDebitInitiation - versions 02 and 04. WARNING:
|
4
4
|
NO WARRANTY, USE AT YOUR OWN RISK AND PERIL. By using this software, you warrant and represent
|
5
5
|
and declare that having studied and examined and tested the source, you are satisfied, sure, and
|
6
|
-
certain that the version you use does exactly what you want it to do. This
|
6
|
+
certain that the version you use does exactly what you want it to do. This
|
7
7
|
|
8
8
|
MORE WARNING: This is alpha-quality software. The API is not yet stable. New versions will break
|
9
9
|
compatibility in unpredictable ways. Use at your own risk and peril.
|
10
10
|
|
11
11
|
ANOTHER WARNING: While I aim for ISO-20022 compatibility in all its glorious detail, this gem
|
12
12
|
implements only a subset of ISO-20022, and possibly does so incorrectly. On top of that, your
|
13
|
-
bank's interpretation of ISO-20022 may differ from mine, may require some fields that are
|
13
|
+
bank's interpretation of ISO-20022 may differ from mine, may require some fields that are
|
14
14
|
optional in the ISO specification, and may ignore some other fields that are mandatory in the
|
15
|
-
specification.
|
15
|
+
specification.
|
16
16
|
|
17
17
|
I wanted to make it as easy as possible to define message types and components so this library
|
18
18
|
will be easy to grow to implement the entire standard.
|
@@ -73,6 +73,9 @@ a message-id.
|
|
73
73
|
The last line returns a string that you will then need to send to your bank one way or another. For example, you might use an EBICS client. Or your bank might provide
|
74
74
|
software to send the file. Or perhaps you can upload it via their website.
|
75
75
|
|
76
|
+
## History
|
77
|
+
|
78
|
+
0.0.15 Ruby 1.8.7 compatibility
|
76
79
|
|
77
80
|
## Contributing
|
78
81
|
|
@@ -83,3 +86,8 @@ Other message types are totally welcome.
|
|
83
86
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
84
87
|
4. Push to the branch (`git push origin my-new-feature`)
|
85
88
|
5. Create new Pull Request
|
89
|
+
|
90
|
+
## Contributors
|
91
|
+
|
92
|
+
Author: [Conan Dalton](http://www.conandalton.net), aka [conanite](https://github.com/conanite)
|
93
|
+
With thanks to [corny](https://github.com/corny), [TheConstructor](https://github.com/TheConstructor)
|
data/lib/sepa/base.rb
CHANGED
@@ -3,7 +3,7 @@ module Sepa
|
|
3
3
|
class Base
|
4
4
|
include Aduki::Initializer
|
5
5
|
|
6
|
-
@@attribute_defs = Hash.new { |h,k| h[k] =
|
6
|
+
@@attribute_defs = Hash.new { |h,k| h[k] = [] }
|
7
7
|
|
8
8
|
def build_xml_attributes names
|
9
9
|
result = { }
|
@@ -19,13 +19,16 @@ module Sepa
|
|
19
19
|
|
20
20
|
def normalize str
|
21
21
|
return str if str.is_a? Fixnum
|
22
|
-
return str if str.is_a? Float
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
}
|
22
|
+
return ("%.2f" % str) if str.is_a? Float
|
23
|
+
replacements = {
|
24
|
+
'à' => 'a', 'é' => 'e', 'è' => 'e',
|
25
|
+
'û' => 'u', 'î' => 'i', 'ô' => 'o', 'ü' => 'u', 'ï' => 'i', 'ö' => 'o',
|
26
|
+
'ÿ' => 'y', 'ç' => 'c', 'Ç' => 'C', 'É' => 'E', 'È' => 'E', 'á' => 'a',
|
27
|
+
'À' => 'A', 'Á' => 'A', 'Ü' => 'U', 'Ï' => 'I', 'Ö' => 'O', 'ß' => 'ss'
|
28
|
+
}
|
29
|
+
str = replacements.to_a.
|
30
|
+
inject(str) { |s, kv| s.gsub(kv[0], kv[1]) }.
|
31
|
+
gsub(/[^a-zA-Z0-9_@ \.,()'+\/\?-]/, '')
|
29
32
|
end
|
30
33
|
|
31
34
|
def to_xml builder
|
@@ -79,18 +82,18 @@ module Sepa
|
|
79
82
|
typed_attribute name, tag, type, options
|
80
83
|
else
|
81
84
|
attr_accessor name
|
82
|
-
attribute_defs[name
|
85
|
+
attribute_defs << [name, { :tag => tag, :type => type, :options => options }]
|
83
86
|
end
|
84
87
|
end
|
85
88
|
|
86
89
|
def self.typed_attribute name, tag, type, options
|
87
|
-
attribute_defs[name
|
90
|
+
attribute_defs << [name, { :tag => tag, :type => type, :options => options }]
|
88
91
|
attr_accessor name
|
89
92
|
aduki name => type
|
90
93
|
end
|
91
94
|
|
92
95
|
def self.array_attribute name, tag, member_type=nil, options={ }
|
93
|
-
attribute_defs[name
|
96
|
+
attribute_defs << [name, { :tag => tag, :type => :[], :member_type => member_type, :options => options }]
|
94
97
|
attr_accessor name
|
95
98
|
aduki(name => member_type) if member_type
|
96
99
|
end
|
@@ -84,7 +84,7 @@ class Sepa::DirectDebitOrder
|
|
84
84
|
"group_header.control_sum" => creditor_payments.inject(0) { |sum, cp| sum + cp.control_sum },
|
85
85
|
}
|
86
86
|
|
87
|
-
hsh = hsh.merge initiating_party.to_properties("group_header.initiating_party", opts.merge({context
|
87
|
+
hsh = hsh.merge initiating_party.to_properties("group_header.initiating_party", opts.merge({:context => :initiating_party}))
|
88
88
|
|
89
89
|
cps = []
|
90
90
|
if opts[:pain_008_001_version] == "02"
|
@@ -181,7 +181,8 @@ class Sepa::DirectDebitOrder
|
|
181
181
|
seq_types[dd.sequence_type] << dd
|
182
182
|
end
|
183
183
|
|
184
|
-
|
184
|
+
%w{FRST RCUR FNAL OOFF}.each do |seq_type|
|
185
|
+
dds = seq_types[seq_type]
|
185
186
|
next if dds.empty?
|
186
187
|
ncp = CreditorPayment.new(creditor, creditor_account, "#{id}-#{seq_type}", collection_date, sepa_identification, dds)
|
187
188
|
ncp.sequence_type = seq_type
|
@@ -213,7 +214,7 @@ class Sepa::DirectDebitOrder
|
|
213
214
|
hsh["#{prefix}.payment_type_information.sequence_type"] = sequence_type
|
214
215
|
end
|
215
216
|
|
216
|
-
hsh = hsh.merge creditor.to_properties("#{prefix}.creditor", opts.merge({ context
|
217
|
+
hsh = hsh.merge creditor.to_properties("#{prefix}.creditor", opts.merge({ :context => :creditor }))
|
217
218
|
hsh = hsh.merge creditor_account.to_properties("#{prefix}.creditor", opts)
|
218
219
|
hsh = hsh.merge sepa_identification.to_properties("#{prefix}.creditor_scheme_identification", opts)
|
219
220
|
|
data/lib/sepa/version.rb
CHANGED
@@ -24,7 +24,7 @@ describe Sepa::DirectDebitOrder do
|
|
24
24
|
dd20 = Sepa::DirectDebitOrder::DirectDebit.new debtor2, bank_account2, "MONECOLE REG F13793 PVT 3", 1935.35, "EUR", mandate2
|
25
25
|
dd21 = Sepa::DirectDebitOrder::DirectDebit.new debtor2, bank_account2, "MONECOLE REG F13794 PVT 3", 1236.36, "EUR", mandate2
|
26
26
|
|
27
|
-
sepa_now = Time.
|
27
|
+
sepa_now = Time.local(1992, 2, 28, 18, 30, 0, 0, 0)
|
28
28
|
Time.stub(:now).and_return sepa_now
|
29
29
|
|
30
30
|
creditor = Sepa::DirectDebitOrder::Party.new "Mon École", "3, Livva de Getamire", nil, "75022", "Paris", "Frankreich", "M. le Directeur", "+33 999 999 999", "directeur@monecole.softify.com"
|
@@ -39,25 +39,28 @@ describe Sepa::DirectDebitOrder do
|
|
39
39
|
|
40
40
|
it "should produce v02 xml corresponding to the given inputs" do
|
41
41
|
o = order Sepa::DirectDebitOrder::PrivateSepaIdentifier
|
42
|
-
xml = o.to_xml pain_008_001_version
|
42
|
+
xml = o.to_xml :pain_008_001_version => "02"
|
43
|
+
xml = check_doc_header_02 xml
|
43
44
|
expected = File.read(File.expand_path("../expected_customer_direct_debit_initiation_v02.xml", __FILE__))
|
44
|
-
expected.force_encoding(Encoding::UTF_8)
|
45
|
+
expected.force_encoding(Encoding::UTF_8) if expected.respond_to? :force_encoding
|
45
46
|
xml.should == expected
|
46
47
|
end
|
47
48
|
|
48
49
|
it "should produce v04 xml corresponding to the given inputs" do
|
49
50
|
o = order Sepa::DirectDebitOrder::PrivateSepaIdentifier
|
50
|
-
xml = o.to_xml pain_008_001_version
|
51
|
+
xml = o.to_xml :pain_008_001_version => "04"
|
52
|
+
xml = check_doc_header_04 xml
|
51
53
|
expected = File.read(File.expand_path("../expected_customer_direct_debit_initiation_v04.xml", __FILE__))
|
52
|
-
expected.force_encoding(Encoding::UTF_8)
|
54
|
+
expected.force_encoding(Encoding::UTF_8) if expected.respond_to? :force_encoding
|
53
55
|
xml.should == expected
|
54
56
|
end
|
55
57
|
|
56
58
|
it "should produce v04 xml corresponding to the given inputs with an organisation identifier for the creditor" do
|
57
59
|
o = order Sepa::DirectDebitOrder::OrganisationSepaIdentifier
|
58
|
-
xml = o.to_xml pain_008_001_version
|
60
|
+
xml = o.to_xml :pain_008_001_version => "04"
|
61
|
+
xml = check_doc_header_04 xml
|
59
62
|
expected = File.read(File.expand_path("../expected_customer_direct_debit_initiation_v04_with_org_id.xml", __FILE__))
|
60
|
-
expected.force_encoding(Encoding::UTF_8)
|
63
|
+
expected.force_encoding(Encoding::UTF_8) if expected.respond_to? :force_encoding
|
61
64
|
xml.should == expected
|
62
65
|
end
|
63
66
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<Document
|
2
|
+
<Document>
|
3
3
|
<CstmrDrctDbtInitn>
|
4
4
|
<GrpHdr>
|
5
5
|
<MsgId>MSG0001</MsgId>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<Document
|
2
|
+
<Document>
|
3
3
|
<CstmrDrctDbtInitn>
|
4
4
|
<GrpHdr>
|
5
5
|
<MsgId>MSG0001</MsgId>
|
@@ -121,7 +121,7 @@
|
|
121
121
|
<PmtInfId>MONECOLE_PAYMENTS_20130703-RCUR</PmtInfId>
|
122
122
|
<PmtMtd>DD</PmtMtd>
|
123
123
|
<NbOfTxs>4</NbOfTxs>
|
124
|
-
<CtrlSum>5536.
|
124
|
+
<CtrlSum>5536.35</CtrlSum>
|
125
125
|
<PmtTpInf>
|
126
126
|
<SvcLvl>
|
127
127
|
<Cd>SEPA</Cd>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<Document
|
2
|
+
<Document>
|
3
3
|
<CstmrDrctDbtInitn>
|
4
4
|
<GrpHdr>
|
5
5
|
<MsgId>MSG0001</MsgId>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<Document
|
2
|
+
<Document>
|
3
3
|
<CstmrDrctDbtInitn>
|
4
4
|
<GrpHdr>
|
5
5
|
<MsgId>MSG0001</MsgId>
|
@@ -68,16 +68,17 @@ describe Sepa::PaymentsInitiation::Pain00800104::CustomerDirectDebitInitiation d
|
|
68
68
|
|
69
69
|
it "should raise an error unless the version is '02' or '04'" do
|
70
70
|
pain = Sepa::PaymentsInitiation::Pain00800104::CustomerDirectDebitInitiation.new(props)
|
71
|
-
expect { pain.generate_xml(pain_008_001_version
|
72
|
-
expect { pain.generate_xml(pain_008_001_version
|
73
|
-
expect { pain.generate_xml(pain_008_001_version
|
71
|
+
expect { pain.generate_xml(:pain_008_001_version => '2') }.to raise_error
|
72
|
+
expect { pain.generate_xml(:pain_008_001_version => 2) }.to raise_error
|
73
|
+
expect { pain.generate_xml(:pain_008_001_version => "") }.to raise_error
|
74
74
|
expect { pain.generate_xml({ }) }.to raise_error
|
75
75
|
end
|
76
76
|
|
77
77
|
it "should produce xml corresponding to the given inputs" do
|
78
|
-
xml = Sepa::PaymentsInitiation::Pain00800104::CustomerDirectDebitInitiation.new(props).generate_xml(pain_008_001_version
|
78
|
+
xml = Sepa::PaymentsInitiation::Pain00800104::CustomerDirectDebitInitiation.new(props).generate_xml(:pain_008_001_version => '04')
|
79
|
+
xml = check_doc_header_04 xml
|
79
80
|
expected = File.read(File.expand_path("../../../expected-simple.xml", __FILE__))
|
80
|
-
expected.force_encoding(Encoding::UTF_8)
|
81
|
+
expected.force_encoding(Encoding::UTF_8) if expected.respond_to? :force_encoding
|
81
82
|
xml.should == expected
|
82
83
|
end
|
83
84
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,7 +1,41 @@
|
|
1
1
|
require 'sepa'
|
2
2
|
|
3
|
+
#
|
4
|
+
# Ruby 1.8 hashes are unordered, which results in xml tag attributes appearing in arbitrary order, so
|
5
|
+
# we can't just do a plain string compare of output.
|
6
|
+
# XmlHelper replaces <Document blah blah blah> with <Document>, and checks that the "blah blah blah"
|
7
|
+
# part is still correct
|
8
|
+
#
|
9
|
+
module XmlHelper
|
10
|
+
XMLNSXSI = 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"'
|
11
|
+
XMLNS_02 = 'xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02"'
|
12
|
+
XSI_02 = 'xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02 pain.008.001.02.xsd"'
|
13
|
+
|
14
|
+
XMLNS_04 = 'xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.001.04"'
|
15
|
+
XSI_04 = 'xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.008.001.04 pain.008.001.04.xsd"'
|
16
|
+
|
17
|
+
DOCUMENT_TAG = /<Document [^>]+>/
|
18
|
+
|
19
|
+
def check_doc_header_02 xml
|
20
|
+
document_tag = xml.match(DOCUMENT_TAG).to_s
|
21
|
+
document_tag.should include XMLNSXSI
|
22
|
+
document_tag.should include XMLNS_02
|
23
|
+
document_tag.should include XSI_02
|
24
|
+
xml.sub(DOCUMENT_TAG, '<Document>')
|
25
|
+
end
|
26
|
+
|
27
|
+
def check_doc_header_04 xml
|
28
|
+
document_tag = xml.match(DOCUMENT_TAG).to_s
|
29
|
+
document_tag.should include XMLNSXSI
|
30
|
+
document_tag.should include XMLNS_04
|
31
|
+
document_tag.should include XSI_04
|
32
|
+
xml.sub(DOCUMENT_TAG, '<Document>')
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
3
36
|
RSpec.configure do |config|
|
4
37
|
config.treat_symbols_as_metadata_keys_with_true_values = true
|
5
38
|
config.run_all_when_everything_filtered = true
|
6
39
|
config.order = 'random'
|
40
|
+
config.include XmlHelper
|
7
41
|
end
|
metadata
CHANGED
@@ -1,105 +1,73 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: sepa
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.15
|
6
5
|
platform: ruby
|
7
|
-
authors:
|
6
|
+
authors:
|
8
7
|
- Conan Dalton
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
11
|
+
|
12
|
+
date: 2013-12-31 00:00:00 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
15
|
name: builder
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ! '>='
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '0'
|
22
|
-
type: :runtime
|
23
16
|
prerelease: false
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version:
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: aduki
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
|
-
requirements:
|
35
|
-
- - ! '>='
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: '0'
|
17
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- &id002
|
20
|
+
- ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: "0"
|
38
23
|
type: :runtime
|
24
|
+
version_requirements: *id001
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: aduki
|
39
27
|
prerelease: false
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
- - ! '>='
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: '0'
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: countries
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - ~>
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: 0.9.3
|
28
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- *id002
|
54
31
|
type: :runtime
|
32
|
+
version_requirements: *id003
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: countries
|
55
35
|
prerelease: false
|
56
|
-
|
57
|
-
|
58
|
-
requirements:
|
36
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
59
38
|
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
39
|
+
- !ruby/object:Gem::Version
|
61
40
|
version: 0.9.3
|
62
|
-
|
41
|
+
type: :runtime
|
42
|
+
version_requirements: *id004
|
43
|
+
- !ruby/object:Gem::Dependency
|
63
44
|
name: rspec
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
|
-
requirements:
|
67
|
-
- - ~>
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '2.9'
|
70
|
-
type: :development
|
71
45
|
prerelease: false
|
72
|
-
|
73
|
-
|
74
|
-
requirements:
|
46
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
47
|
+
requirements:
|
75
48
|
- - ~>
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version:
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
|
-
name: rspec_numbering_formatter
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
|
-
requirements:
|
83
|
-
- - ! '>='
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
version: '0'
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: "2.9"
|
86
51
|
type: :development
|
52
|
+
version_requirements: *id005
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: rspec_numbering_formatter
|
87
55
|
prerelease: false
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
and pain.008.001.04 CustomerDirectDebitInitiation for now. WARNING: NO WARRANTY,
|
96
|
-
USE AT YOUR OWN RISK AND PERIL. '
|
97
|
-
email:
|
56
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- *id002
|
59
|
+
type: :development
|
60
|
+
version_requirements: *id006
|
61
|
+
description: " Generate ISO20022 XML messages. Implements a subset of pain.008.001.02 and pain.008.001.04 CustomerDirectDebitInitiation for now. WARNING: NO WARRANTY, USE AT YOUR OWN RISK AND PERIL. "
|
62
|
+
email:
|
98
63
|
- conan@conandalton.net
|
99
64
|
executables: []
|
65
|
+
|
100
66
|
extensions: []
|
67
|
+
|
101
68
|
extra_rdoc_files: []
|
102
|
-
|
69
|
+
|
70
|
+
files:
|
103
71
|
- .gitignore
|
104
72
|
- .rspec
|
105
73
|
- Gemfile
|
@@ -157,32 +125,29 @@ files:
|
|
157
125
|
- spec/sepa/payments_initiation/pain00800104/customer_direct_debit_initiation_spec.rb
|
158
126
|
- spec/spec_helper.rb
|
159
127
|
homepage: https://github.com/conanite/sepa
|
160
|
-
licenses:
|
128
|
+
licenses:
|
161
129
|
- MIT
|
130
|
+
metadata: {}
|
131
|
+
|
162
132
|
post_install_message:
|
163
133
|
rdoc_options: []
|
164
|
-
|
134
|
+
|
135
|
+
require_paths:
|
165
136
|
- lib
|
166
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
173
|
-
none: false
|
174
|
-
requirements:
|
175
|
-
- - ! '>='
|
176
|
-
- !ruby/object:Gem::Version
|
177
|
-
version: '0'
|
137
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
138
|
+
requirements:
|
139
|
+
- *id002
|
140
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- *id002
|
178
143
|
requirements: []
|
144
|
+
|
179
145
|
rubyforge_project:
|
180
|
-
rubygems_version:
|
146
|
+
rubygems_version: 2.0.14
|
181
147
|
signing_key:
|
182
|
-
specification_version:
|
183
|
-
summary:
|
184
|
-
|
185
|
-
test_files:
|
148
|
+
specification_version: 4
|
149
|
+
summary: "pain.008.001.04 and pain.008.001.02 CustomerDirectDebitInitiation ISO20022 XML. WARNING: NO WARRANTY, USE AT YOUR OWN RISK AND PERIL."
|
150
|
+
test_files:
|
186
151
|
- spec/sepa/direct_debit_order_spec.rb
|
187
152
|
- spec/sepa/direct_debit_properties.yml
|
188
153
|
- spec/sepa/expected-simple.xml
|