absa-esd 0.0.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.
- data/Gemfile +6 -0
- data/Gemfile.lock +40 -0
- data/README +0 -0
- data/Rakefile +7 -0
- data/absa-esd.gemspec +24 -0
- data/lib/absa-esd.rb +15 -0
- data/lib/absa-esd/statement4_unpacked.rb +20 -0
- data/lib/absa-esd/transmission/document.rb +20 -0
- data/lib/absa-esd/transmission/record.rb +28 -0
- data/lib/absa-esd/transmission/set.rb +155 -0
- data/lib/absa-esd/version.rb +5 -0
- data/lib/config/statement4_unpacked/recon_account.yml +309 -0
- data/lib/config/statement4_unpacked/recon_transmission.yml +84 -0
- data/spec/examples/statement4_unpacked.dat +51 -0
- data/spec/lib/statement4_unpacked_spec.rb +142 -0
- data/spec/spec_helper.rb +9 -0
- metadata +99 -0
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
GIT
|
2
|
+
remote: git://github.com/tehtorq/strata.git
|
3
|
+
revision: 32ab2e00de10c0d4760ec28be6de4d49fd7e7e40
|
4
|
+
specs:
|
5
|
+
strata (0.0.1)
|
6
|
+
activesupport
|
7
|
+
i18n
|
8
|
+
|
9
|
+
PATH
|
10
|
+
remote: .
|
11
|
+
specs:
|
12
|
+
absa-esd (0.0.1)
|
13
|
+
activesupport
|
14
|
+
i18n
|
15
|
+
|
16
|
+
GEM
|
17
|
+
remote: http://rubygems.org/
|
18
|
+
specs:
|
19
|
+
activesupport (3.2.2)
|
20
|
+
i18n (~> 0.6)
|
21
|
+
multi_json (~> 1.0)
|
22
|
+
diff-lcs (1.1.3)
|
23
|
+
i18n (0.6.0)
|
24
|
+
multi_json (1.1.0)
|
25
|
+
rspec (2.8.0)
|
26
|
+
rspec-core (~> 2.8.0)
|
27
|
+
rspec-expectations (~> 2.8.0)
|
28
|
+
rspec-mocks (~> 2.8.0)
|
29
|
+
rspec-core (2.8.0)
|
30
|
+
rspec-expectations (2.8.0)
|
31
|
+
diff-lcs (~> 1.1.2)
|
32
|
+
rspec-mocks (2.8.0)
|
33
|
+
|
34
|
+
PLATFORMS
|
35
|
+
ruby
|
36
|
+
|
37
|
+
DEPENDENCIES
|
38
|
+
absa-esd!
|
39
|
+
rspec
|
40
|
+
strata (= 0.0.1)!
|
data/README
ADDED
File without changes
|
data/Rakefile
ADDED
data/absa-esd.gemspec
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "absa-esd/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "absa-esd"
|
7
|
+
s.version = Absa::Esd::VERSION
|
8
|
+
s.authors = ["Jeffrey van Aswegen, Douglas Anderson"]
|
9
|
+
s.email = ["jeffmess@gmail.com, i.am.douglas.anderson@gmail.com"]
|
10
|
+
s.homepage = ""
|
11
|
+
s.summary = %q{A ruby interface to commumicate with the ABSA Electronic Statement Delivery platform.}
|
12
|
+
s.description = %q{A ruby interface to commumicate with the ABSA Electronic Statement Delivery platform.}
|
13
|
+
|
14
|
+
s.rubyforge_project = "absa-esd"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
s.add_dependency "activesupport"
|
22
|
+
s.add_dependency "i18n"
|
23
|
+
s.add_dependency "strata", "~> 0.0.1"
|
24
|
+
end
|
data/lib/absa-esd.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
require "absa-esd/version"
|
2
|
+
require "active_support/core_ext/string"
|
3
|
+
require "yaml"
|
4
|
+
#require 'strata'
|
5
|
+
|
6
|
+
module Absa
|
7
|
+
module Esd
|
8
|
+
CONFIG_DIR = File.expand_path(File.dirname(__FILE__)) + "/config"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
require 'absa-esd/transmission/set'
|
13
|
+
require 'absa-esd/transmission/record'
|
14
|
+
require 'absa-esd/transmission/document'
|
15
|
+
require 'absa-esd/statement4_unpacked'
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Absa
|
2
|
+
module Esd
|
3
|
+
|
4
|
+
module Statement4Unpacked
|
5
|
+
|
6
|
+
class ReconTransmission < Transmission::Set
|
7
|
+
class Header < Transmission::Record; end
|
8
|
+
class Trailer < Transmission::Record; end
|
9
|
+
end
|
10
|
+
|
11
|
+
class ReconAccount < Transmission::Set
|
12
|
+
class Header < Transmission::Record; end
|
13
|
+
class Detail < Transmission::Record; end
|
14
|
+
class Trailer < Transmission::Record; end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Absa
|
2
|
+
module Esd
|
3
|
+
module Transmission
|
4
|
+
|
5
|
+
class Document < Set
|
6
|
+
|
7
|
+
def self.from_s(string)
|
8
|
+
options = self.hash_from_s(string)
|
9
|
+
self.build(options[:data])
|
10
|
+
end
|
11
|
+
|
12
|
+
def from_file!(filename)
|
13
|
+
self.from_s(File.open(filename, "rb").read)
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Absa
|
2
|
+
module Esd
|
3
|
+
module Transmission
|
4
|
+
|
5
|
+
class Record
|
6
|
+
include Strata::RecordWriter
|
7
|
+
extend Strata::RecordWriter::ClassMethods
|
8
|
+
|
9
|
+
set_record_length 550
|
10
|
+
set_delimiter "\r\n"
|
11
|
+
|
12
|
+
def initialize(options = {})
|
13
|
+
set_layout_variables(options)
|
14
|
+
validate! options
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.class_layout_rules
|
18
|
+
file_name = "#{Absa::Esd::CONFIG_DIR}/#{self.name.split("::")[-3].underscore}/#{self.name.split("::")[-2].underscore}.yml"
|
19
|
+
record_type = self.name.split("::")[-1].underscore
|
20
|
+
|
21
|
+
YAML.load(File.open(file_name))[record_type]
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,155 @@
|
|
1
|
+
module Absa
|
2
|
+
module Esd
|
3
|
+
module Transmission
|
4
|
+
|
5
|
+
class Set
|
6
|
+
|
7
|
+
attr_accessor :records
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
self.records = []
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.build(data)
|
14
|
+
set = self.new
|
15
|
+
|
16
|
+
data.each do |hash|
|
17
|
+
if hash[:data].is_a? Array
|
18
|
+
klass = "Absa::Esd::Statement4Unpacked::#{hash[:type].capitalize.camelize}".constantize
|
19
|
+
set.records << klass.build(hash[:data])
|
20
|
+
else
|
21
|
+
klass = "Absa::Esd::Statement4Unpacked::#{self.partial_class_name}::#{hash[:type].capitalize.camelize}".constantize
|
22
|
+
set.records << klass.new(hash[:data])
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
set.validate!
|
27
|
+
set
|
28
|
+
end
|
29
|
+
|
30
|
+
def header
|
31
|
+
records[0]
|
32
|
+
end
|
33
|
+
|
34
|
+
def trailer
|
35
|
+
records[-1]
|
36
|
+
end
|
37
|
+
|
38
|
+
def transactions
|
39
|
+
records[1..-2]
|
40
|
+
end
|
41
|
+
|
42
|
+
def validate!
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
def to_s
|
47
|
+
string = ""
|
48
|
+
records.each {|record| string += record.to_s }
|
49
|
+
string
|
50
|
+
end
|
51
|
+
|
52
|
+
def self.for_record(record) # move this logic to yml file
|
53
|
+
record_id = record[0]
|
54
|
+
|
55
|
+
case record_id
|
56
|
+
when '0','9'
|
57
|
+
return Absa::Esd::Statement4Unpacked::ReconTransmission
|
58
|
+
when '1','2','8'
|
59
|
+
return Absa::Esd::Statement4Unpacked::ReconAccount
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def self.trailer_id(klass)
|
64
|
+
case klass.name
|
65
|
+
when 'Absa::Esd::Statement4Unpacked::ReconTransmission'
|
66
|
+
return '9'
|
67
|
+
when 'Absa::Esd::Statement4Unpacked::ReconAccount'
|
68
|
+
return '8'
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
def self.is_trailer_record?(set, record)
|
73
|
+
record_id = record[0]
|
74
|
+
self.trailer_id(set) == record_id
|
75
|
+
end
|
76
|
+
|
77
|
+
def self.process_record(record)
|
78
|
+
record_info = {}
|
79
|
+
|
80
|
+
self.record_types.each do |record_type|
|
81
|
+
klass = "#{self.name}::#{record_type.camelize}".constantize
|
82
|
+
|
83
|
+
if klass.matches_definition?(record)
|
84
|
+
options = klass.string_to_hash(record)
|
85
|
+
record_info = {type: record_type, data: options}
|
86
|
+
break
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
record_info
|
91
|
+
end
|
92
|
+
|
93
|
+
def self.hash_from_s(string)
|
94
|
+
set_info = {type: self.partial_class_name.underscore, data: []}
|
95
|
+
lines = string.split(/^/)
|
96
|
+
|
97
|
+
# look for rec_ids, split into chunks, and pass each related class a piece of string
|
98
|
+
|
99
|
+
buffer = []
|
100
|
+
current_set = nil
|
101
|
+
subset = nil
|
102
|
+
|
103
|
+
lines.each do |line|
|
104
|
+
next if line.length < 10 # TODO: flaky - tighten it up
|
105
|
+
if Set.for_record(line) == self
|
106
|
+
if subset && (buffer.length > 0)
|
107
|
+
set_info[:data] << subset.hash_from_s(buffer.join)
|
108
|
+
buffer = []
|
109
|
+
subset = nil
|
110
|
+
end
|
111
|
+
|
112
|
+
record = line
|
113
|
+
set_info[:data] << self.process_record(record)
|
114
|
+
else
|
115
|
+
subset = Set.for_record(line) unless subset
|
116
|
+
buffer << line
|
117
|
+
|
118
|
+
if self.is_trailer_record?(subset, line)
|
119
|
+
set_info[:data] << subset.hash_from_s(buffer.join)
|
120
|
+
buffer = []
|
121
|
+
subset = nil
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
set_info
|
127
|
+
end
|
128
|
+
|
129
|
+
def self.record_types
|
130
|
+
self.layout_rules.map {|k,v| k}
|
131
|
+
end
|
132
|
+
|
133
|
+
def self.module_name
|
134
|
+
self.name.split("::")[0..-1].join("::")
|
135
|
+
end
|
136
|
+
|
137
|
+
def self.partial_class_name
|
138
|
+
self.name.split("::")[-1]
|
139
|
+
end
|
140
|
+
|
141
|
+
def self.layout_rules
|
142
|
+
file_name = "#{Absa::Esd::CONFIG_DIR}/#{self.name.split("::")[-2].underscore}/#{self.partial_class_name.underscore}.yml"
|
143
|
+
|
144
|
+
YAML.load(File.open(file_name))
|
145
|
+
end
|
146
|
+
|
147
|
+
def self.record_type(record_type)
|
148
|
+
"#{self.name}::#{record_type.camelize}".constantize
|
149
|
+
end
|
150
|
+
|
151
|
+
end
|
152
|
+
|
153
|
+
end
|
154
|
+
end
|
155
|
+
end
|
@@ -0,0 +1,309 @@
|
|
1
|
+
header:
|
2
|
+
rec_type:
|
3
|
+
data_type: A
|
4
|
+
offset: 1
|
5
|
+
length: 1
|
6
|
+
fixed_val: '1'
|
7
|
+
account_number:
|
8
|
+
data_type: N
|
9
|
+
offset: 2
|
10
|
+
length: 19
|
11
|
+
statement_number:
|
12
|
+
data_type: N
|
13
|
+
offset: 21
|
14
|
+
length: 5
|
15
|
+
filler_1:
|
16
|
+
data_type: A
|
17
|
+
offset: 26
|
18
|
+
length: 5
|
19
|
+
processing_date:
|
20
|
+
data_type: N
|
21
|
+
offset: 31
|
22
|
+
length: 8
|
23
|
+
no_strip: true
|
24
|
+
account_branch_code:
|
25
|
+
data_type: N
|
26
|
+
offset: 39
|
27
|
+
length: 8
|
28
|
+
filler_2:
|
29
|
+
data_type: A
|
30
|
+
offset: 47
|
31
|
+
length: 18
|
32
|
+
filler_3:
|
33
|
+
data_type: A
|
34
|
+
offset: 65
|
35
|
+
length: 16
|
36
|
+
hd_op_bals:
|
37
|
+
data_type: A
|
38
|
+
offset: 81
|
39
|
+
length: 1
|
40
|
+
hd_op_bal:
|
41
|
+
data_type: N
|
42
|
+
offset: 82
|
43
|
+
length: 17
|
44
|
+
filler_4:
|
45
|
+
data_type: A
|
46
|
+
offset: 99
|
47
|
+
length: 84
|
48
|
+
function_code:
|
49
|
+
data_type: A
|
50
|
+
offset: 183
|
51
|
+
length: 4
|
52
|
+
fixed_val: 'AA0A'
|
53
|
+
filler_5:
|
54
|
+
data_type: A
|
55
|
+
offset: 187
|
56
|
+
length: 329
|
57
|
+
generation_number:
|
58
|
+
data_type: A
|
59
|
+
offset: 516
|
60
|
+
length: 9
|
61
|
+
filler_6:
|
62
|
+
data_type: A
|
63
|
+
offset: 525
|
64
|
+
length: 25
|
65
|
+
detail:
|
66
|
+
rec_type:
|
67
|
+
data_type: A
|
68
|
+
offset: 1
|
69
|
+
length: 1
|
70
|
+
fixed_val: '2'
|
71
|
+
account_number:
|
72
|
+
data_type: N
|
73
|
+
offset: 2
|
74
|
+
length: 19
|
75
|
+
statement_number:
|
76
|
+
data_type: N
|
77
|
+
offset: 21
|
78
|
+
length: 5
|
79
|
+
page_number:
|
80
|
+
data_type: N
|
81
|
+
offset: 26
|
82
|
+
length: 5
|
83
|
+
transaction_processing_date:
|
84
|
+
data_type: N
|
85
|
+
offset: 31
|
86
|
+
length: 8
|
87
|
+
transaction_effective_date:
|
88
|
+
data_type: N
|
89
|
+
offset: 39
|
90
|
+
length: 8
|
91
|
+
cheque_number:
|
92
|
+
data_type: N
|
93
|
+
offset: 47
|
94
|
+
length: 9
|
95
|
+
transaction_reference_number:
|
96
|
+
data_type: N
|
97
|
+
offset: 56
|
98
|
+
length: 9
|
99
|
+
transaction_amount_sign:
|
100
|
+
data_type: A
|
101
|
+
offset: 65
|
102
|
+
length: 1
|
103
|
+
transaction_amount:
|
104
|
+
data_type: N
|
105
|
+
offset: 66
|
106
|
+
length: 15
|
107
|
+
account_balance_sign:
|
108
|
+
data_type: A
|
109
|
+
offset: 81
|
110
|
+
length: 1
|
111
|
+
account_balance_after_transaction:
|
112
|
+
data_type: N
|
113
|
+
offset: 82
|
114
|
+
length: 17
|
115
|
+
transaction_description:
|
116
|
+
data_type: A
|
117
|
+
offset: 99
|
118
|
+
length: 50
|
119
|
+
dep_id:
|
120
|
+
data_type: A
|
121
|
+
offset: 149
|
122
|
+
length: 30
|
123
|
+
transaction_code:
|
124
|
+
data_type: A
|
125
|
+
offset: 179
|
126
|
+
length: 4
|
127
|
+
cheques_function_code:
|
128
|
+
data_type: A
|
129
|
+
offset: 183
|
130
|
+
length: 4
|
131
|
+
charge_levied_amount_sign:
|
132
|
+
data_type: A
|
133
|
+
offset: 187
|
134
|
+
length: 1
|
135
|
+
charge_levied_amount:
|
136
|
+
data_type: N
|
137
|
+
offset: 188
|
138
|
+
length: 9
|
139
|
+
charge_type:
|
140
|
+
data_type: A
|
141
|
+
offset: 197
|
142
|
+
length: 1
|
143
|
+
stamp_duty_amount_sign:
|
144
|
+
data_type: A
|
145
|
+
offset: 198
|
146
|
+
length: 1
|
147
|
+
stamp_duty_levied_amount:
|
148
|
+
data_type: N
|
149
|
+
offset: 199
|
150
|
+
length: 9
|
151
|
+
cash_deposit_fee_sign:
|
152
|
+
data_type: A
|
153
|
+
offset: 208
|
154
|
+
length: 1
|
155
|
+
cash_deposit_fee:
|
156
|
+
data_type: N
|
157
|
+
offset: 209
|
158
|
+
length: 9
|
159
|
+
charges_accrued:
|
160
|
+
data_type: A
|
161
|
+
offset: 218
|
162
|
+
length: 1
|
163
|
+
event_number:
|
164
|
+
data_type: N
|
165
|
+
offset: 219
|
166
|
+
length: 9
|
167
|
+
statement_line_sequence_number:
|
168
|
+
data_type: N
|
169
|
+
offset: 228
|
170
|
+
length: 9
|
171
|
+
vat_amount:
|
172
|
+
data_type: N
|
173
|
+
offset: 237
|
174
|
+
length: 9
|
175
|
+
cash_portion:
|
176
|
+
data_type: N
|
177
|
+
offset: 246
|
178
|
+
length: 15
|
179
|
+
deposit_number:
|
180
|
+
data_type: N
|
181
|
+
offset: 261
|
182
|
+
length: 9
|
183
|
+
transaction_time:
|
184
|
+
data_type: N
|
185
|
+
offset: 270
|
186
|
+
length: 6
|
187
|
+
filler_1:
|
188
|
+
data_type: A
|
189
|
+
offset: 276
|
190
|
+
length: 10
|
191
|
+
filler_2:
|
192
|
+
data_type: A
|
193
|
+
offset: 286
|
194
|
+
length: 4
|
195
|
+
sitename:
|
196
|
+
data_type: A
|
197
|
+
offset: 290
|
198
|
+
length: 15
|
199
|
+
category:
|
200
|
+
data_type: A
|
201
|
+
offset: 305
|
202
|
+
length: 4
|
203
|
+
transaction_type:
|
204
|
+
data_type: A
|
205
|
+
offset: 309
|
206
|
+
length: 2
|
207
|
+
deposit_id_description:
|
208
|
+
data_type: A
|
209
|
+
offset: 311
|
210
|
+
length: 10
|
211
|
+
pod_adjustment_amount:
|
212
|
+
data_type: A
|
213
|
+
offset: 321
|
214
|
+
length: 15
|
215
|
+
pod_adjustment_reason:
|
216
|
+
data_type: A
|
217
|
+
offset: 336
|
218
|
+
length: 35
|
219
|
+
pod_returned_cheque_reason_code:
|
220
|
+
data_type: N
|
221
|
+
offset: 371
|
222
|
+
length: 4
|
223
|
+
pod_returned_cheque_drawee:
|
224
|
+
data_type: A
|
225
|
+
offset: 375
|
226
|
+
length: 30
|
227
|
+
fedi_payor:
|
228
|
+
data_type: A
|
229
|
+
offset: 405
|
230
|
+
length: 30
|
231
|
+
fedi_number:
|
232
|
+
data_type: N
|
233
|
+
offset: 435
|
234
|
+
length: 16
|
235
|
+
redirect_description:
|
236
|
+
data_type: A
|
237
|
+
offset: 451
|
238
|
+
length: 16
|
239
|
+
account_number_redirect:
|
240
|
+
data_type: N
|
241
|
+
offset: 467
|
242
|
+
length: 19
|
243
|
+
unpaid_cheque_reason_description:
|
244
|
+
data_type: A
|
245
|
+
offset: 486
|
246
|
+
length: 20
|
247
|
+
filler_3:
|
248
|
+
data_type: A
|
249
|
+
offset: 506
|
250
|
+
length: 10
|
251
|
+
generation_number:
|
252
|
+
data_type: A
|
253
|
+
offset: 516
|
254
|
+
length: 9
|
255
|
+
old_reconfocus_category1:
|
256
|
+
data_type: N
|
257
|
+
offset: 525
|
258
|
+
length: 2
|
259
|
+
old_reconfocus_category2:
|
260
|
+
data_type: N
|
261
|
+
offset: 527
|
262
|
+
length: 2
|
263
|
+
filler_4:
|
264
|
+
data_type: A
|
265
|
+
offset: 529
|
266
|
+
length: 21
|
267
|
+
trailer:
|
268
|
+
rec_type:
|
269
|
+
data_type: A
|
270
|
+
offset: 1
|
271
|
+
length: 1
|
272
|
+
fixed_val: '8'
|
273
|
+
account_number:
|
274
|
+
data_type: N
|
275
|
+
offset: 2
|
276
|
+
length: 19
|
277
|
+
fixed_val: '9999999999999999999'
|
278
|
+
filler_1:
|
279
|
+
data_type: A
|
280
|
+
offset: 21
|
281
|
+
length: 44
|
282
|
+
hash_amount_sign:
|
283
|
+
data_type: A
|
284
|
+
offset: 65
|
285
|
+
length: 1
|
286
|
+
hash_amount:
|
287
|
+
data_type: N
|
288
|
+
offset: 66
|
289
|
+
length: 17
|
290
|
+
filler_2:
|
291
|
+
data_type: A
|
292
|
+
offset: 83
|
293
|
+
length: 107
|
294
|
+
rec_count:
|
295
|
+
data_type: N
|
296
|
+
offset: 190
|
297
|
+
length: 10
|
298
|
+
filler_3:
|
299
|
+
data_type: A
|
300
|
+
offset: 200
|
301
|
+
length: 316
|
302
|
+
generation_number:
|
303
|
+
data_type: A
|
304
|
+
offset: 516
|
305
|
+
length: 9
|
306
|
+
filler_4:
|
307
|
+
data_type: A
|
308
|
+
offset: 525
|
309
|
+
length: 25
|
@@ -0,0 +1,84 @@
|
|
1
|
+
header:
|
2
|
+
rec_type:
|
3
|
+
data_type: A
|
4
|
+
offset: 1
|
5
|
+
length: 1
|
6
|
+
fixed_val: '0'
|
7
|
+
filler_1:
|
8
|
+
data_type: A
|
9
|
+
offset: 2
|
10
|
+
length: 19
|
11
|
+
status:
|
12
|
+
data_type: A
|
13
|
+
offset: 21
|
14
|
+
length: 1
|
15
|
+
regex: ^T|P$
|
16
|
+
date:
|
17
|
+
data_type: N
|
18
|
+
offset: 22
|
19
|
+
length: 8
|
20
|
+
regex: ^[0-9]{8}$
|
21
|
+
no_strip: true
|
22
|
+
client_code:
|
23
|
+
data_type: N
|
24
|
+
offset: 30
|
25
|
+
length: 5
|
26
|
+
client_name:
|
27
|
+
data_type: A
|
28
|
+
offset: 35
|
29
|
+
length: 30
|
30
|
+
destination_code:
|
31
|
+
data_type: N
|
32
|
+
offset: 65
|
33
|
+
length: 5
|
34
|
+
filler_2:
|
35
|
+
data_type: A
|
36
|
+
offset: 70
|
37
|
+
length: 446
|
38
|
+
gen_no:
|
39
|
+
data_type: N
|
40
|
+
offset: 516
|
41
|
+
length: 9
|
42
|
+
filler_3:
|
43
|
+
data_type: A
|
44
|
+
offset: 525
|
45
|
+
length: 25
|
46
|
+
trailer:
|
47
|
+
rec_type:
|
48
|
+
data_type: A
|
49
|
+
offset: 1
|
50
|
+
length: 1
|
51
|
+
fixed_val: '9'
|
52
|
+
account_number:
|
53
|
+
data_type: N
|
54
|
+
offset: 2
|
55
|
+
length: 19
|
56
|
+
status:
|
57
|
+
data_type: A
|
58
|
+
offset: 21
|
59
|
+
length: 1
|
60
|
+
date:
|
61
|
+
data_type: N
|
62
|
+
offset: 22
|
63
|
+
length: 8
|
64
|
+
no_strip: true
|
65
|
+
filler_1:
|
66
|
+
data_type: A
|
67
|
+
offset: 30
|
68
|
+
length: 160
|
69
|
+
rec_count:
|
70
|
+
data_type: N
|
71
|
+
offset: 190
|
72
|
+
length: 10
|
73
|
+
filler_2:
|
74
|
+
data_type: A
|
75
|
+
offset: 200
|
76
|
+
length: 316
|
77
|
+
generation_number:
|
78
|
+
data_type: N
|
79
|
+
offset: 516
|
80
|
+
length: 9
|
81
|
+
filler_3:
|
82
|
+
data_type: A
|
83
|
+
offset: 525
|
84
|
+
length: 25
|
@@ -0,0 +1,51 @@
|
|
1
|
+
00000000000000000000P2002111903174TEST 03174 000000295
|
2
|
+
1000000000401111180900264000012002111800000000 +000000000000000+00000000000000000 AA0A 000000295
|
3
|
+
2000000000401111180900264000012002111820021118000000000000103899+000000002630670+00000000002630670ACB CREDIT SETTLEMENT BASGHW GP HEALTH000212608 FN71ACC +000000000 +000000000+000000000 000012533000000004000000000000000000000000000000000000000 0012 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
4
|
+
2000000000401111180900264000012002111820021118000000000000056571+000000000649363+00000000003280033CREDIT TRANSFER CASHFOCUS 440151586 CF71CFAC+000000000 +000000000+000000000 000012537000000006000000000000000000000000000000000000000 0510 000000000000000 0000000000000000 0000000000000000000 0000002955158
|
5
|
+
2000000000401111180900264000012002111820021118000000000000056572+000000000305575+00000000003585608CREDIT TRANSFER CASHFOCUS 440151579 CF71CFAC+000000000 +000000000+000000000 000012538000000008000000000000000000000000000000000000000 0510 000000000000000 0000000000000000 0000000000000000000 0000002955158
|
6
|
+
2000000000401111180900264000012002111820021118000000000000000000+000000000057866+00000000003643474DEPOSIT STRYDOMPAR 440144444 FN71QD +000000000 +000000000+000000000 000012539000000010000000000000000000000000000000000000000 2740 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
7
|
+
2000000000401111180900264000012002111820021118000000000000000000+000000000031699+00000000003675173DEPOSIT STRYDOMPAR 440144437 FN71QD +000000000 +000000000+000000000 000012540000000012000000000000000000000000000000000000000 2740 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
8
|
+
2000000000401111180900264000012002111820021118000000000000000000+000000001141155+00000000004816328DEPOSIT KNYSNA 440102250 FN71QD +000000000 +000000000+000000000 000012542000000014000000000000000000000000000000000000000 2740 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
9
|
+
2000000000401111180900264000012002111820021118000000000000000000+000000001524408+00000000006340736DEPOSIT FOURWAYS 440066010 FN71QD +000000000 +000000000+000000000 000012544000000016000000000000000000000000000000000000000 2740 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
10
|
+
2000000000401111180900264000012002111820021118000000000000000000+000000000139741+00000000006480477DEPOSIT EASTGATE 440015738 FN71QD +000000000 +000000000+000000000 000012545000000018000000000000000000000000000000000000000 2740 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
11
|
+
2000000000401111180900264000012002111820021118000000000000000000+000000000183475+00000000006663952DEPOSIT EASTGATE 440015720 FN71QD +000000000 +000000000+000000000 000012546000000020000000000000000000000000000000000000000 2740 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
12
|
+
2000000000401111180900264000012002111820021118000000000000000000+000000003650595+00000000010314547DEPOSIT RSEBNK CEN 440072670 FN71QD +000000000 +000000000+000000000 000012548000000022000000000000000000000000000000000000000 2740 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
13
|
+
2000000000401111180900264000012002111820021118000000000000000000+000000000226313+00000000010540860DEPOSIT PROTEA PAR 440081667 FN71QD +000000000 +000000000+000000000 000012549000000024000000000000000000000000000000000000000 2740 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
14
|
+
2000000000401111180900264000012002111820021118000000000000000000+000000000172368+00000000010713228DEPOSIT PROTEA PAR 440086150 FN71QD +000000000 +000000000+000000000 000012550000000026000000000000000000000000000000000000000 2740 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
15
|
+
2000000000401111180900264000012002111820021118000000000000000000+000000000404852+00000000011118080DEPOSIT EST RAND M 440131727 FN71QD +000000000 +000000000+000000000 000012552000000028000000000000000000000000000000000000000 2740 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
16
|
+
2000000000401111180900264000012002111820021118000000000000000000+000000000246492+00000000011364572DEPOSIT EST RAND M 440131727 FN71QD +000000000 +000000000+000000000 000012553000000030000000000000000000000000000000000000000 2740 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
17
|
+
2000000000401111180900264000012002111820021118000000000000000000+000000000323331+00000000011687903DEPOSIT EASTGATE 440080127 FN71QD +000000000 +000000000+000000000 000012554000000032000000000000000000000000000000000000000 2740 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
18
|
+
2000000000401111180900264000012002111820021118000000000000000000+000000000128638+00000000011816541DEPOSIT HYDE PARK 440022703 FN71QD +000000000 +000000000+000000000 000012555000000034000000000000000000000000000000000000000 2740 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
19
|
+
2000000000401111180900264000022002111820021118000000000000000000+000000000190220+00000000012006761DEPOSIT HYDE PARK 440022728 FN71QD +000000000 +000000000+000000000 000012556000000002000000000000000000000000000000000000000 2740 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
20
|
+
2000000000401111180900264000022002111820021118000000000000000000+000000000054538+00000000012061299DEPOSIT HYDE PARK 440022710 FN71QD +000000000 +000000000+000000000 000012557000000004000000000000000000000000000000000000000 2740 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
21
|
+
2000000000401111180900264000022002111820021118000000000000000000+000000000016872+00000000012078171TRANSFER FROM PRIMROSE 440074532 FN71TXCR+000000000 +000000000+000000000 000012558000000006000000000000000000000000000000000000000 4240 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
22
|
+
2000000000401111180900264000022002111820021118000000000000000000+000000000300000+00000000012378171DEPOSIT LYTTELTON 440149650 FN71QD +000000000 +000000000+000000000 000012559000000008000000000000000000000000000000000000000 2740 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
23
|
+
2000000000401111180900264000022002111820021118000000000000000000+000000000340000+00000000012718171DEPOSIT LYTTELTON 440149643 FN71QD +000000000 +000000000+000000000 000012560000000010000000000000000000000000000000000000000 2740 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
24
|
+
2000000000401111180900264000022002111820021118000000000000056605+000000000150000+00000000012868171CREDIT TRANSFER CASHFOCUS 440012751 CF71CFAC+000000000 +000000000+000000000 000012561000000012000000000000000000000000000000000000000 0510 000000000000000 0000000000000000 0000000000000000000 0000002955158
|
25
|
+
2000000000401111180900264000022002111820021118000000000000000000+000000000123750+00000000012991921ACB CREDIT SETTLEMENT ABSA BANK 440077283 FN71ACC +000000000 +000000000+000000000 000012562000000014000000000000000000000000000000000000000 0012 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
26
|
+
2000000000401111180900264000022002111820021118000000000000000000+000000000033744+00000000013025665ACB CREDIT SETTLEMENT ABSA BANK 440077290 FN71ACC +000000000 +000000000+000000000 000012563000000016000000000000000000000000000000000000000 0012 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
27
|
+
2000000000401111180900264000022002111820021118000000000000000000+000000000107274+00000000013132939ACB CREDIT SETTLEMENT ABSA BANK 440077300 FN71ACC +000000000 +000000000+000000000 000012564000000018000000000000000000000000000000000000000 0012 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
28
|
+
2000000000401111180900264000022002111820021118000000000000000000+000000000025308+00000000013158247ACB CREDIT SETTLEMENT ABSA BANK 440077269 FN71ACC +000000000 +000000000+000000000 000012565000000020000000000000000000000000000000000000000 0012 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
29
|
+
2000000000401111180900264000022002111820021118000000000000000000+000000000130788+00000000013289035ACB CREDIT SETTLEMENT ABSA BANK 440077276 FN71ACC +000000000 +000000000+000000000 000012566000000022000000000000000000000000000000000000000 0012 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
30
|
+
2000000000401111180900264000022002111820021118000000000000016406+000000000017898+00000000013306933ACB CREDIT SETTLEMENT 440085319 * FN71ACC +000000000 +000000000+000000000 000012568000000024000000000000000000000000000000000000000 0012 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
31
|
+
2000000000401111180900264000022002111820021118000000000000019087+000000000118814+00000000013425747ACB CREDIT SETTLEMENT 440071299 STAND 146 KYA SAND FN71ACC +000000000 +000000000+000000000 000012569000000026000000000000000000000000000000000000000 0012 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
32
|
+
2000000000401111180900264000022002111820021118000000000000019088+000000000090493+00000000013516240ACB CREDIT SETTLEMENT 440071281 STAND 146 KYA SAND FN71ACC +000000000 +000000000+000000000 000012570000000028000000000000000000000000000000000000000 0012 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
33
|
+
2000000000401111180900264000022002111820021118000000000000016407+000000000064389+00000000013580629ACB CREDIT SETTLEMENT 440085326 * FN71ACC +000000000 +000000000+000000000 000012571000000030000000000000000000000000000000000000000 0012 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
34
|
+
2000000000401111180900264000022002111820021118000000000000019752+000000000391562+00000000013972191ACB CREDIT SETTLEMENT 440136637-FEDBOND FN71ACC +000000000 +000000000+000000000 000012572000000032000000000000000000000000000000000000000 0012 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
35
|
+
2000000000401111180900264000022002111820021118000000000000010211+000000001077862+00000000015050053ACB CREDIT SETTLEMENT 440141203 * FN71ACC +000000000 +000000000+000000000 000012573000000034000000000000000000000000000000000000000 0012 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
36
|
+
2000000000401111180900264000032002111820021118000000000000019158+000000002000000+00000000017050053ACB CREDIT SETTLEMENT 440062135 * FN71ACC +000000000 +000000000+000000000 000012574000000002000000000000000000000000000000000000000 0012 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
37
|
+
2000000000401111180900264000032002111820021118000000000000001492+000000001389660+00000000018439713ACB CREDIT SETTLEMENT FNBPAYMENT 440141556 FN71ACC +000000000 +000000000+000000000 000012575000000004000000000000000000000000000000000000000 0012 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
38
|
+
2000000000401111180900264000032002111820021118000000000000011274+000000000012426+00000000018452139ACB CREDIT SETTLEMENT 2073913575**440176534 PRIMEGROFN71ACC +000000000 +000000000+000000000 000012576000000006000000000000000000000000000000000000000 0012 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
39
|
+
2000000000401111180900264000032002111820021118000000000000006888+000000000149270+00000000018601409ACB CREDIT SETTLEMENT 2073888701COLLIERS RMS 000580FN71ACC +000000000 +000000000+000000000 000012577000000008000000000000000000000000000000000000000 0012 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
40
|
+
2000000000401111180900264000032002111820021118000000000000006889+000000000788054+00000000019389463ACB CREDIT SETTLEMENT 2073888702COLLIERS RMS 000581FN71ACC +000000000 +000000000+000000000 000012578000000010000000000000000000000000000000000000000 0012 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
41
|
+
2000000000401111180900264000032002111820021118000000000000011273+000000000498351+00000000019887814ACB CREDIT SETTLEMENT 2073913574**440131283 PRIMEGROFN71ACC +000000000 +000000000+000000000 000012579000000012000000000000000000000000000000000000000 0012 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
42
|
+
2000000000401111180900264000032002111820021118000000000000001108+000000000259414+00000000020147228ACB CREDIT SETTLEMENT 440064559 FN71ACC +000000000 +000000000+000000000 000012580000000014000000000000000000000000000000000000000 0012 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
43
|
+
2000000000401111180900264000032002111820021118000000000000004714+000000000017898+00000000020165126ACB CREDIT SETTLEMENT CRONJE 440107442 GS CRFN71ACC +000000000 +000000000+000000000 000012581000000016000000000000000000000000000000000000000 0012 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
44
|
+
2000000000401111180900264000032002111820021118000000000000004713+000000000303949+00000000020469075ACB CREDIT SETTLEMENT CRONJE 440107450 GS CRFN71ACC +000000000 +000000000+000000000 000012582000000018000000000000000000000000000000000000000 0012 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
45
|
+
2000000000401111180900264000032002111820021118000000000000002512+000000000085000+00000000020554075ACB CREDIT SETTLEMENT ROBINSON A/C440110004 FN71ACC +000000000 +000000000+000000000 000012583000000020000000000000000000000000000000000000000 0012 000000000000000 0000000000000000 0000000000000000000 0000002955151
|
46
|
+
2000000000401111180900264000032002111820021118081409096000000000-000000000001000+00000000020553075BANK DEBIT 81409096 HEADOFFICE FN71CHJ -000000175 -000000020+000000000 000012584000000022000000000000000000000000000000000000000 0790 000000000000000 0000000000000000 0000000000000000000 0000002950505
|
47
|
+
2000000000401111180900264000032002111820021118081409306000000000-000000000001000+00000000020552075BANK DEBIT 81409306 HEADOFFICE FN71CHJ -000000175 -000000020+000000000 000012585000000023000000000000000000000000000000000000000 0790 000000000000000 0000000000000000 0000000000000000000 0000002950505
|
48
|
+
2000000000401111180900264000032002111820021118000000000000000433-000000020552075+00000000000000000SWEEPING CASHFOCUS 4054394859 TR# 433 CF71FS4D+000000000 -000000020+000000000 000012586000000024000000000000000000000000000000000000000 1840 000000000000000 0000000000000000 0000000000000000000 0000002950521
|
49
|
+
89999999999999999999 +00000000000000000 0000000048 000000295
|
50
|
+
99999999999999999999P20021119 0000000050 000000295
|
51
|
+
|
@@ -0,0 +1,142 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Absa::Esd::Statement4Unpacked do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
@input_string = File.open("./spec/examples/statement4_unpacked.dat", "rb").read
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should be able to read the recon transmission header record" do
|
10
|
+
hash = Absa::Esd::Statement4Unpacked::ReconTransmission::Header.string_to_hash(@input_string.split(/^/)[0])
|
11
|
+
|
12
|
+
hash.should == {
|
13
|
+
rec_type: "0",
|
14
|
+
filler_1: "0000000000000000000",
|
15
|
+
status: "P",
|
16
|
+
date: "20021119",
|
17
|
+
client_code: "3174",
|
18
|
+
client_name: "TEST",
|
19
|
+
destination_code: "3174",
|
20
|
+
filler_2: "",
|
21
|
+
gen_no: "295",
|
22
|
+
filler_3: ""
|
23
|
+
}
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should be able to read the recon transmission trailer record" do
|
27
|
+
hash = Absa::Esd::Statement4Unpacked::ReconTransmission::Trailer.string_to_hash(@input_string.split(/^/)[-2])
|
28
|
+
|
29
|
+
hash.should == {
|
30
|
+
rec_type: "9",
|
31
|
+
account_number: "9999999999999999999",
|
32
|
+
status: "P",
|
33
|
+
date: "20021119",
|
34
|
+
filler_1: "",
|
35
|
+
rec_count: "50",
|
36
|
+
filler_2: "",
|
37
|
+
generation_number: "295",
|
38
|
+
filler_3: ""
|
39
|
+
}
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should be able to read the recon account header record" do
|
43
|
+
hash = Absa::Esd::Statement4Unpacked::ReconAccount::Header.string_to_hash(@input_string.split(/^/)[1])
|
44
|
+
|
45
|
+
hash.should == {
|
46
|
+
rec_type: "1",
|
47
|
+
account_number: "4011111809",
|
48
|
+
statement_number: "264",
|
49
|
+
filler_1: "00001",
|
50
|
+
processing_date: "20021118",
|
51
|
+
account_branch_code: "0",
|
52
|
+
filler_2: "",
|
53
|
+
filler_3: "+000000000000000",
|
54
|
+
hd_op_bals: "+",
|
55
|
+
hd_op_bal: "0",
|
56
|
+
filler_4: "",
|
57
|
+
function_code: "AA0A",
|
58
|
+
filler_5: "",
|
59
|
+
generation_number: "000000295",
|
60
|
+
filler_6: ""
|
61
|
+
}
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should be able to read the recon account detail record" do
|
65
|
+
hash = Absa::Esd::Statement4Unpacked::ReconAccount::Detail.string_to_hash(@input_string.split(/^/)[3])
|
66
|
+
|
67
|
+
hash.should == {
|
68
|
+
rec_type: "2",
|
69
|
+
account_number: "4011111809",
|
70
|
+
statement_number: "264",
|
71
|
+
page_number: "1",
|
72
|
+
transaction_processing_date: "20021118",
|
73
|
+
transaction_effective_date: "20021118",
|
74
|
+
cheque_number: "0",
|
75
|
+
transaction_reference_number: "56571",
|
76
|
+
transaction_amount_sign: "+",
|
77
|
+
transaction_amount: "649363",
|
78
|
+
account_balance_sign: "+",
|
79
|
+
account_balance_after_transaction: "3280033",
|
80
|
+
transaction_description: "CREDIT TRANSFER CASHFOCUS",
|
81
|
+
dep_id: "440151586",
|
82
|
+
transaction_code: "CF71",
|
83
|
+
cheques_function_code: "CFAC",
|
84
|
+
charge_levied_amount_sign: "+",
|
85
|
+
charge_levied_amount: "0",
|
86
|
+
charge_type: "",
|
87
|
+
stamp_duty_amount_sign: "+",
|
88
|
+
stamp_duty_levied_amount: "0",
|
89
|
+
cash_deposit_fee_sign: "+",
|
90
|
+
cash_deposit_fee: "0",
|
91
|
+
charges_accrued: "",
|
92
|
+
event_number: "12537",
|
93
|
+
statement_line_sequence_number: "6",
|
94
|
+
vat_amount: "0",
|
95
|
+
cash_portion: "0",
|
96
|
+
deposit_number: "0",
|
97
|
+
transaction_time: "0",
|
98
|
+
filler_1: "",
|
99
|
+
filler_2: "",
|
100
|
+
sitename: "",
|
101
|
+
category: "0510",
|
102
|
+
transaction_type: "",
|
103
|
+
deposit_id_description: "",
|
104
|
+
pod_adjustment_amount: "000000000000000",
|
105
|
+
pod_adjustment_reason: "",
|
106
|
+
pod_returned_cheque_reason_code: "0",
|
107
|
+
pod_returned_cheque_drawee: "",
|
108
|
+
fedi_payor: "",
|
109
|
+
fedi_number: "0",
|
110
|
+
redirect_description: "",
|
111
|
+
account_number_redirect: "0",
|
112
|
+
unpaid_cheque_reason_description: "",
|
113
|
+
filler_3: "",
|
114
|
+
generation_number: "000000295",
|
115
|
+
old_reconfocus_category1: "51",
|
116
|
+
old_reconfocus_category2: "58",
|
117
|
+
filler_4: ""
|
118
|
+
}
|
119
|
+
end
|
120
|
+
|
121
|
+
it "should be able to read the recon account trailer record" do
|
122
|
+
hash = Absa::Esd::Statement4Unpacked::ReconAccount::Trailer.string_to_hash(@input_string.split(/^/)[-3])
|
123
|
+
|
124
|
+
hash.should == {
|
125
|
+
rec_type: "8",
|
126
|
+
account_number: "9999999999999999999",
|
127
|
+
filler_1: "",
|
128
|
+
hash_amount_sign: "+",
|
129
|
+
hash_amount: "0",
|
130
|
+
filler_2: "",
|
131
|
+
rec_count: "48",
|
132
|
+
filler_3: "",
|
133
|
+
generation_number: "000000295",
|
134
|
+
filler_4: ""
|
135
|
+
}
|
136
|
+
end
|
137
|
+
|
138
|
+
it "should be able to parse an entire 'statement 4 unpacked' file format" do
|
139
|
+
pending
|
140
|
+
end
|
141
|
+
|
142
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,99 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: absa-esd
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Jeffrey van Aswegen, Douglas Anderson
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-04-04 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: activesupport
|
16
|
+
requirement: &70145554214580 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70145554214580
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: i18n
|
27
|
+
requirement: &70145554214160 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70145554214160
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: strata
|
38
|
+
requirement: &70145554213660 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 0.0.1
|
44
|
+
type: :runtime
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70145554213660
|
47
|
+
description: A ruby interface to commumicate with the ABSA Electronic Statement Delivery
|
48
|
+
platform.
|
49
|
+
email:
|
50
|
+
- jeffmess@gmail.com, i.am.douglas.anderson@gmail.com
|
51
|
+
executables: []
|
52
|
+
extensions: []
|
53
|
+
extra_rdoc_files: []
|
54
|
+
files:
|
55
|
+
- Gemfile
|
56
|
+
- Gemfile.lock
|
57
|
+
- README
|
58
|
+
- Rakefile
|
59
|
+
- absa-esd.gemspec
|
60
|
+
- lib/absa-esd.rb
|
61
|
+
- lib/absa-esd/statement4_unpacked.rb
|
62
|
+
- lib/absa-esd/transmission/document.rb
|
63
|
+
- lib/absa-esd/transmission/record.rb
|
64
|
+
- lib/absa-esd/transmission/set.rb
|
65
|
+
- lib/absa-esd/version.rb
|
66
|
+
- lib/config/statement4_unpacked/recon_account.yml
|
67
|
+
- lib/config/statement4_unpacked/recon_transmission.yml
|
68
|
+
- spec/examples/statement4_unpacked.dat
|
69
|
+
- spec/lib/statement4_unpacked_spec.rb
|
70
|
+
- spec/spec_helper.rb
|
71
|
+
homepage: ''
|
72
|
+
licenses: []
|
73
|
+
post_install_message:
|
74
|
+
rdoc_options: []
|
75
|
+
require_paths:
|
76
|
+
- lib
|
77
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
78
|
+
none: false
|
79
|
+
requirements:
|
80
|
+
- - ! '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
84
|
+
none: false
|
85
|
+
requirements:
|
86
|
+
- - ! '>='
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
requirements: []
|
90
|
+
rubyforge_project: absa-esd
|
91
|
+
rubygems_version: 1.8.6
|
92
|
+
signing_key:
|
93
|
+
specification_version: 3
|
94
|
+
summary: A ruby interface to commumicate with the ABSA Electronic Statement Delivery
|
95
|
+
platform.
|
96
|
+
test_files:
|
97
|
+
- spec/examples/statement4_unpacked.dat
|
98
|
+
- spec/lib/statement4_unpacked_spec.rb
|
99
|
+
- spec/spec_helper.rb
|