mt940_parser 1.0.3 → 1.0.4
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 +2 -3
- data/Gemfile.lock +8 -6
- data/VERSION.yml +1 -1
- data/lib/mt940.rb +8 -13
- data/mt940_parser.gemspec +9 -17
- data/test/test_customer_statement_message.rb +3 -1
- data/test/test_mt940.rb +4 -2
- metadata +60 -90
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -3,12 +3,15 @@ GEM
|
|
3
3
|
specs:
|
4
4
|
diff-lcs (1.1.3)
|
5
5
|
git (1.2.5)
|
6
|
-
jeweler (1.
|
7
|
-
bundler (~> 1.0
|
6
|
+
jeweler (1.8.4)
|
7
|
+
bundler (~> 1.0)
|
8
8
|
git (>= 1.2.5)
|
9
9
|
rake
|
10
|
+
rdoc
|
11
|
+
json (1.7.3)
|
10
12
|
rake (0.9.2.2)
|
11
|
-
|
13
|
+
rdoc (3.12)
|
14
|
+
json (~> 1.4)
|
12
15
|
rspec (2.3.0)
|
13
16
|
rspec-core (~> 2.3.0)
|
14
17
|
rspec-expectations (~> 2.3.0)
|
@@ -22,7 +25,6 @@ PLATFORMS
|
|
22
25
|
ruby
|
23
26
|
|
24
27
|
DEPENDENCIES
|
25
|
-
bundler
|
26
|
-
jeweler
|
27
|
-
rcov
|
28
|
+
bundler
|
29
|
+
jeweler
|
28
30
|
rspec (~> 2.3.0)
|
data/VERSION.yml
CHANGED
data/lib/mt940.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# encoding: utf-8
|
2
1
|
require 'mt940/customer_statement_message'
|
3
2
|
|
4
3
|
class MT940
|
@@ -222,6 +221,7 @@ class MT940
|
|
222
221
|
@not_implemented_fields ||= []
|
223
222
|
@not_implemented_fields << [code, content]
|
224
223
|
$stderr << "code not implemented: code:#{code} content: \"#{content}\"\n" if $DEBUG
|
224
|
+
|
225
225
|
end
|
226
226
|
end
|
227
227
|
end
|
@@ -231,22 +231,17 @@ class MT940
|
|
231
231
|
end
|
232
232
|
end
|
233
233
|
|
234
|
+
|
234
235
|
class << self
|
235
236
|
def parse(text)
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
if !new_text.valid_encoding?
|
241
|
-
puts "WOOOOT WHAT IS THE RIGHT ENCODING?"
|
242
|
-
end
|
243
|
-
end
|
244
|
-
text = new_text # WOOOT refactor?
|
245
|
-
text << "\r\n" if text[-1,1] == '-'
|
246
|
-
raw_sheets = text.split(/^-\r\n/).map { |sheet| sheet.gsub(/\r\n(?!:)/, '') }
|
237
|
+
raise "Invalid encoding!" unless text.valid_encoding?
|
238
|
+
new_text = text.encode('utf-8')
|
239
|
+
new_text << "\r\n" if new_text[-1,1] == '-'
|
240
|
+
raw_sheets = new_text.split(/^-\r\n/).map { |sheet| sheet.gsub(/\r\n(?!:)/, '') }
|
247
241
|
sheets = raw_sheets.map { |raw_sheet| parse_sheet(raw_sheet) }
|
248
242
|
end
|
249
|
-
|
243
|
+
|
244
|
+
|
250
245
|
private
|
251
246
|
def parse_sheet(sheet)
|
252
247
|
lines = sheet.split("\r\n")
|
data/mt940_parser.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "mt940_parser"
|
8
|
-
s.version = "1.0.
|
8
|
+
s.version = "1.0.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Thies C. Arntzen", "Phillip Oertel"]
|
12
|
-
s.date = "2012-
|
12
|
+
s.date = "2012-06-26"
|
13
13
|
s.email = "developers@betterplace.org"
|
14
14
|
s.extra_rdoc_files = [
|
15
15
|
"LICENSE",
|
@@ -58,33 +58,25 @@ Gem::Specification.new do |s|
|
|
58
58
|
s.homepage = "http://github.com/betterplace/mt940_parser"
|
59
59
|
s.licenses = ["MIT"]
|
60
60
|
s.require_paths = ["lib"]
|
61
|
-
s.rubygems_version = "1.8.
|
61
|
+
s.rubygems_version = "1.8.24"
|
62
62
|
s.summary = "MT940 parses account statements in the SWIFT MT940 format."
|
63
|
-
s.test_files = [
|
64
|
-
"test/helper.rb",
|
65
|
-
"test/test_customer_statement_message.rb",
|
66
|
-
"test/test_mt940.rb"
|
67
|
-
]
|
68
63
|
|
69
64
|
if s.respond_to? :specification_version then
|
70
65
|
s.specification_version = 3
|
71
66
|
|
72
67
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
73
68
|
s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
|
74
|
-
s.add_development_dependency(%q<bundler>, ["
|
75
|
-
s.add_development_dependency(%q<jeweler>, ["
|
76
|
-
s.add_development_dependency(%q<rcov>, [">= 0"])
|
69
|
+
s.add_development_dependency(%q<bundler>, [">= 0"])
|
70
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
77
71
|
else
|
78
72
|
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
79
|
-
s.add_dependency(%q<bundler>, ["
|
80
|
-
s.add_dependency(%q<jeweler>, ["
|
81
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
73
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
74
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
82
75
|
end
|
83
76
|
else
|
84
77
|
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
85
|
-
s.add_dependency(%q<bundler>, ["
|
86
|
-
s.add_dependency(%q<jeweler>, ["
|
87
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
78
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
79
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
88
80
|
end
|
89
81
|
end
|
90
82
|
|
data/test/test_mt940.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
|
-
|
1
|
+
require_relative 'helper'
|
2
2
|
require 'yaml'
|
3
|
+
YAML::ENGINE.yamler = 'psych'
|
4
|
+
|
3
5
|
|
4
6
|
# $DEBUG = true
|
5
7
|
class TestMt940 < Test::Unit::TestCase
|
@@ -27,7 +29,7 @@ class TestMt940 < Test::Unit::TestCase
|
|
27
29
|
binary_file = MT940.parse(IO.read(file).force_encoding("ISO-8859-15"))
|
28
30
|
utf8_file = MT940.parse(IO.read(file).force_encoding("UTF-8"))
|
29
31
|
[binary_file, utf8_file].each do |file|
|
30
|
-
assert_equal file.last.last.reference.encoding.name, "
|
32
|
+
assert_equal file.last.last.reference.encoding.name, "UTF-8"
|
31
33
|
end
|
32
34
|
end
|
33
35
|
|
metadata
CHANGED
@@ -1,95 +1,73 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: mt940_parser
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.4
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 0
|
9
|
-
- 3
|
10
|
-
version: 1.0.3
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Thies C. Arntzen
|
14
9
|
- Phillip Oertel
|
15
10
|
autorequire:
|
16
11
|
bindir: bin
|
17
12
|
cert_chain: []
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
requirement:
|
13
|
+
date: 2012-06-26 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rspec
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
23
18
|
none: false
|
24
|
-
requirements:
|
19
|
+
requirements:
|
25
20
|
- - ~>
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
hash: 3
|
28
|
-
segments:
|
29
|
-
- 2
|
30
|
-
- 3
|
31
|
-
- 0
|
21
|
+
- !ruby/object:Gem::Version
|
32
22
|
version: 2.3.0
|
33
|
-
version_requirements: *id001
|
34
|
-
name: rspec
|
35
|
-
prerelease: false
|
36
23
|
type: :development
|
37
|
-
|
38
|
-
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
26
|
none: false
|
40
|
-
requirements:
|
27
|
+
requirements:
|
41
28
|
- - ~>
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
|
45
|
-
- 1
|
46
|
-
- 0
|
47
|
-
- 0
|
48
|
-
version: 1.0.0
|
49
|
-
version_requirements: *id002
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: 2.3.0
|
31
|
+
- !ruby/object:Gem::Dependency
|
50
32
|
name: bundler
|
51
|
-
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
35
|
+
requirements:
|
36
|
+
- - ! '>='
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
52
39
|
type: :development
|
53
|
-
|
54
|
-
|
40
|
+
prerelease: false
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
55
42
|
none: false
|
56
|
-
requirements:
|
57
|
-
- -
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
|
60
|
-
|
61
|
-
- 1
|
62
|
-
- 5
|
63
|
-
- 2
|
64
|
-
version: 1.5.2
|
65
|
-
version_requirements: *id003
|
43
|
+
requirements:
|
44
|
+
- - ! '>='
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
- !ruby/object:Gem::Dependency
|
66
48
|
name: jeweler
|
67
|
-
|
68
|
-
type: :development
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
71
50
|
none: false
|
72
|
-
requirements:
|
73
|
-
- -
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
|
76
|
-
segments:
|
77
|
-
- 0
|
78
|
-
version: "0"
|
79
|
-
version_requirements: *id004
|
80
|
-
name: rcov
|
81
|
-
prerelease: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
82
55
|
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
83
63
|
description:
|
84
64
|
email: developers@betterplace.org
|
85
65
|
executables: []
|
86
|
-
|
87
66
|
extensions: []
|
88
|
-
|
89
|
-
extra_rdoc_files:
|
67
|
+
extra_rdoc_files:
|
90
68
|
- LICENSE
|
91
69
|
- README.rdoc
|
92
|
-
files:
|
70
|
+
files:
|
93
71
|
- .document
|
94
72
|
- .specification
|
95
73
|
- Gemfile
|
@@ -129,39 +107,31 @@ files:
|
|
129
107
|
- test/test_customer_statement_message.rb
|
130
108
|
- test/test_mt940.rb
|
131
109
|
homepage: http://github.com/betterplace/mt940_parser
|
132
|
-
licenses:
|
110
|
+
licenses:
|
133
111
|
- MIT
|
134
112
|
post_install_message:
|
135
113
|
rdoc_options: []
|
136
|
-
|
137
|
-
require_paths:
|
114
|
+
require_paths:
|
138
115
|
- lib
|
139
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
116
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
140
117
|
none: false
|
141
|
-
requirements:
|
142
|
-
- -
|
143
|
-
- !ruby/object:Gem::Version
|
144
|
-
|
145
|
-
segments:
|
118
|
+
requirements:
|
119
|
+
- - ! '>='
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: '0'
|
122
|
+
segments:
|
146
123
|
- 0
|
147
|
-
|
148
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
124
|
+
hash: -4336727774988318552
|
125
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
149
126
|
none: false
|
150
|
-
requirements:
|
151
|
-
- -
|
152
|
-
- !ruby/object:Gem::Version
|
153
|
-
|
154
|
-
segments:
|
155
|
-
- 0
|
156
|
-
version: "0"
|
127
|
+
requirements:
|
128
|
+
- - ! '>='
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '0'
|
157
131
|
requirements: []
|
158
|
-
|
159
132
|
rubyforge_project:
|
160
|
-
rubygems_version: 1.8.
|
133
|
+
rubygems_version: 1.8.24
|
161
134
|
signing_key:
|
162
135
|
specification_version: 3
|
163
136
|
summary: MT940 parses account statements in the SWIFT MT940 format.
|
164
|
-
test_files:
|
165
|
-
- test/helper.rb
|
166
|
-
- test/test_customer_statement_message.rb
|
167
|
-
- test/test_mt940.rb
|
137
|
+
test_files: []
|