mt940_parser 1.5.1 → 1.5.2
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 +5 -5
- data/.document +1 -1
- data/.specification +25 -26
- data/.travis.yml +9 -5
- data/Gemfile +0 -4
- data/{README.rdoc → README.md} +7 -5
- data/Rakefile +1 -2
- data/VERSION +1 -1
- data/lib/mt940.rb +6 -4
- data/lib/mt940/version.rb +1 -1
- data/mt940_parser.gemspec +21 -26
- data/test/test_helper.rb +0 -10
- metadata +8 -32
- data/VERSION.yml +0 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 20aafd1ed39f9e4f6abcc05cae6851fe4e8b0856655024b8ddd31f19293fb25a
|
|
4
|
+
data.tar.gz: 3446218563d87db818ba2e69a47a66bd7387d22b795c06259e65023b9d4ec97b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7793777eb87381acdf9c3e9a6390c99adbf0f0c86c6bf099253ac33b0caf5452d6ff100546dff3202b1b26f86cd46ad2eae33e1f4873793fb113d7bf848e5355
|
|
7
|
+
data.tar.gz: 0c025aa6b52f8a9fad9b5acd0690aa6a1498a47a928129e88044ec7802b5c2787570220ae21c9b7e7e21eba5956eb9b5e6cb18a99e1c2dc5e9947a4d8f56a5ee
|
data/.document
CHANGED
data/.specification
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mt940
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
4
|
hash: 23
|
|
5
|
-
segments:
|
|
5
|
+
segments:
|
|
6
6
|
- 1
|
|
7
7
|
- 0
|
|
8
8
|
- 0
|
|
@@ -10,58 +10,57 @@ version: !ruby/object:Gem::Version
|
|
|
10
10
|
platform: ruby
|
|
11
11
|
authors: []
|
|
12
12
|
|
|
13
|
-
autorequire:
|
|
13
|
+
autorequire:
|
|
14
14
|
bindir: bin
|
|
15
15
|
cert_chain: []
|
|
16
16
|
|
|
17
17
|
date: 2010-03-24 00:00:00 +01:00
|
|
18
|
-
default_executable:
|
|
18
|
+
default_executable:
|
|
19
19
|
dependencies: []
|
|
20
20
|
|
|
21
|
-
description:
|
|
22
|
-
email:
|
|
21
|
+
description:
|
|
22
|
+
email:
|
|
23
23
|
executables: []
|
|
24
24
|
|
|
25
25
|
extensions: []
|
|
26
26
|
|
|
27
27
|
extra_rdoc_files: []
|
|
28
28
|
|
|
29
|
-
files:
|
|
29
|
+
files:
|
|
30
30
|
- lib
|
|
31
31
|
- lib/mt940.rb
|
|
32
|
-
has_rdoc:
|
|
33
|
-
homepage:
|
|
32
|
+
has_rdoc: false
|
|
33
|
+
homepage:
|
|
34
34
|
licenses: []
|
|
35
35
|
|
|
36
|
-
post_install_message:
|
|
36
|
+
post_install_message:
|
|
37
37
|
rdoc_options: []
|
|
38
38
|
|
|
39
|
-
require_paths:
|
|
39
|
+
require_paths:
|
|
40
40
|
- lib
|
|
41
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
42
|
-
requirements:
|
|
41
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
42
|
+
requirements:
|
|
43
43
|
- - ">="
|
|
44
|
-
- !ruby/object:Gem::Version
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
45
|
hash: 3
|
|
46
|
-
segments:
|
|
46
|
+
segments:
|
|
47
47
|
- 0
|
|
48
48
|
version: "0"
|
|
49
|
-
version:
|
|
50
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
49
|
+
version:
|
|
50
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
52
|
- - ">="
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
54
|
hash: 3
|
|
55
|
-
segments:
|
|
55
|
+
segments:
|
|
56
56
|
- 0
|
|
57
57
|
version: "0"
|
|
58
|
-
version:
|
|
58
|
+
version:
|
|
59
59
|
requirements: []
|
|
60
60
|
|
|
61
|
-
rubyforge_project:
|
|
61
|
+
rubyforge_project:
|
|
62
62
|
rubygems_version: 1.3.7
|
|
63
|
-
signing_key:
|
|
63
|
+
signing_key:
|
|
64
64
|
specification_version: 3
|
|
65
|
-
summary:
|
|
65
|
+
summary:
|
|
66
66
|
test_files: []
|
|
67
|
-
|
data/.travis.yml
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
before_install:
|
|
2
|
+
- gem update --system
|
|
3
|
+
- gem update bundler
|
|
4
|
+
|
|
2
5
|
rvm:
|
|
3
|
-
- 2.0
|
|
4
6
|
- 2.1
|
|
5
7
|
- 2.2
|
|
6
|
-
- 2.3
|
|
8
|
+
- 2.3
|
|
9
|
+
- 2.4
|
|
10
|
+
- 2.5
|
|
7
11
|
- ruby-head
|
|
8
12
|
- jruby-head
|
|
9
13
|
matrix:
|
|
10
14
|
allow_failures:
|
|
11
15
|
- rvm: ruby-head
|
|
12
16
|
- rvm: jruby-head
|
|
13
|
-
|
|
14
|
-
|
|
17
|
+
|
|
18
|
+
sudo: false
|
data/Gemfile
CHANGED
data/{README.rdoc → README.md}
RENAMED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
=
|
|
1
|
+
[](http://badge.fury.io/rb/mt940_parser) [](http://travis-ci.org/betterplace/mt940_parser)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
# mt940_parser
|
|
4
|
+
|
|
5
|
+
This is a library to parse account statements which are formatted as SWIFT mt940.
|
|
4
6
|
|
|
5
7
|
See the following link for documentation of the format.
|
|
6
8
|
http://www.google.de/url?sa=t&source=web&cd=1&ved=0CBwQFjAA&url=http%3A%2F%2Fmartin.hinner.info%2Fbankconvert%2Fswift_mt940_942.pdf&ei=alO_TObpPNGRswbD15WqDQ&usg=AFQjCNHkVGOfzofgKkk6dEkynAho02S2cg
|
|
7
9
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
+
## Note on Patches/Pull Requests
|
|
11
|
+
|
|
10
12
|
* Fork the project.
|
|
11
13
|
* Make your feature addition or bug fix.
|
|
12
14
|
* Add tests for it. This is important so I don't break it in a
|
|
@@ -15,6 +17,6 @@ http://www.google.de/url?sa=t&source=web&cd=1&ved=0CBwQFjAA&url=http%3A%2F%2Fmar
|
|
|
15
17
|
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
|
16
18
|
* Send me a pull request. Bonus points for topic branches.
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
## Copyright
|
|
19
21
|
|
|
20
22
|
Copyright (c) 2010 Thies C. Arntzen. See LICENSE for details.
|
data/Rakefile
CHANGED
|
@@ -18,11 +18,10 @@ GemHadar do
|
|
|
18
18
|
ignore '.*.sw[pon]', 'pkg', 'Gemfile.lock', '.rvmrc', 'coverage',
|
|
19
19
|
'.DS_Store', '.ruby-gemset', '.ruby-version', '.bundle', '.AppleDouble'
|
|
20
20
|
|
|
21
|
-
readme 'README.
|
|
21
|
+
readme 'README.md'
|
|
22
22
|
licenses 'MIT'
|
|
23
23
|
|
|
24
24
|
development_dependency 'test-unit'
|
|
25
|
-
development_dependency 'simplecov'
|
|
26
25
|
end
|
|
27
26
|
|
|
28
27
|
task :default => :test
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.5.
|
|
1
|
+
1.5.2
|
data/lib/mt940.rb
CHANGED
|
@@ -2,6 +2,8 @@ require 'mt940/version'
|
|
|
2
2
|
require 'mt940/errors'
|
|
3
3
|
require 'mt940/customer_statement_message'
|
|
4
4
|
require 'bigdecimal'
|
|
5
|
+
require 'bigdecimal/util'
|
|
6
|
+
require 'date'
|
|
5
7
|
|
|
6
8
|
class MT940
|
|
7
9
|
class Field
|
|
@@ -48,17 +50,17 @@ class MT940
|
|
|
48
50
|
def parse_amount_in_cents(amount)
|
|
49
51
|
amount =~ /\A(\d+)(,\d*)?\z/ or
|
|
50
52
|
raise Errors::InvalidAmountFormatError, "invalid amount #{amount.inspect}"
|
|
51
|
-
(100 *
|
|
53
|
+
(100 * amount.sub(',', '.').sub(/\.\z/, '').to_d).floor
|
|
52
54
|
end
|
|
53
55
|
|
|
54
56
|
def parse_date(date)
|
|
55
57
|
date.match(DATE)
|
|
56
|
-
Date.new("20#{$1}".to_i, $2.to_i, $3.to_i)
|
|
58
|
+
::Date.new("20#{$1}".to_i, $2.to_i, $3.to_i)
|
|
57
59
|
end
|
|
58
60
|
|
|
59
61
|
def parse_entry_date(raw_entry_date, value_date)
|
|
60
62
|
raw_entry_date.match(SHORT_DATE)
|
|
61
|
-
entry_date = Date.new(value_date.year, $1.to_i, $2.to_i)
|
|
63
|
+
entry_date = ::Date.new(value_date.year, $1.to_i, $2.to_i)
|
|
62
64
|
unless entry_date.year == value_date.year
|
|
63
65
|
raise "Unhandled case: value date and entry date are in different years"
|
|
64
66
|
end
|
|
@@ -165,7 +167,7 @@ class MT940
|
|
|
165
167
|
when 'ALT', '0'
|
|
166
168
|
nil
|
|
167
169
|
when DATE
|
|
168
|
-
Date.new("20#{$1}".to_i, $2.to_i, $3.to_i)
|
|
170
|
+
::Date.new("20#{$1}".to_i, $2.to_i, $3.to_i)
|
|
169
171
|
end
|
|
170
172
|
end
|
|
171
173
|
end
|
data/lib/mt940/version.rb
CHANGED
data/mt940_parser.gemspec
CHANGED
|
@@ -1,40 +1,35 @@
|
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
|
2
|
-
# stub: mt940_parser 1.5.
|
|
2
|
+
# stub: mt940_parser 1.5.2 ruby lib
|
|
3
3
|
|
|
4
4
|
Gem::Specification.new do |s|
|
|
5
|
-
s.name = "mt940_parser"
|
|
6
|
-
s.version = "1.5.
|
|
5
|
+
s.name = "mt940_parser".freeze
|
|
6
|
+
s.version = "1.5.2"
|
|
7
7
|
|
|
8
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
9
|
-
s.require_paths = ["lib"]
|
|
10
|
-
s.authors = ["Thies C. Arntzen", "Phillip Oertel"]
|
|
11
|
-
s.date = "
|
|
12
|
-
s.description = "Ruby library that parses account statements in the SWIFT MT940 format."
|
|
13
|
-
s.email = "developers@betterplace.org"
|
|
14
|
-
s.
|
|
15
|
-
s.
|
|
16
|
-
s.
|
|
17
|
-
s.
|
|
18
|
-
s.
|
|
19
|
-
s.
|
|
20
|
-
s.summary = "MT940 parses account statements in the SWIFT MT940 format."
|
|
21
|
-
s.test_files = ["test/test_account_identifier.rb", "test/test_customer_statement_message.rb", "test/test_helper.rb", "test/test_mt940.rb"]
|
|
8
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
|
9
|
+
s.require_paths = ["lib".freeze]
|
|
10
|
+
s.authors = ["Thies C. Arntzen".freeze, "Phillip Oertel".freeze]
|
|
11
|
+
s.date = "2018-01-02"
|
|
12
|
+
s.description = "Ruby library that parses account statements in the SWIFT MT940 format.".freeze
|
|
13
|
+
s.email = "developers@betterplace.org".freeze
|
|
14
|
+
s.files = [".document".freeze, ".gitignore".freeze, ".specification".freeze, ".travis.yml".freeze, "Gemfile".freeze, "LICENSE".freeze, "README.md".freeze, "Rakefile".freeze, "VERSION".freeze, "docs/0E0Y00DNY.pdf".freeze, "docs/FinTS_4.0_Formals.pdf".freeze, "docs/FinTS_4.0_Messages_Finanzdatenformate.pdf".freeze, "docs/MT940_Deutschland_Structure2002.pdf".freeze, "docs/SEPA_20MT940__Schnittstellenbeschreibung.pdf".freeze, "docs/mt940.pdf".freeze, "docs/swift_mt940_942.pdf".freeze, "docs/uebersicht_der_geschaeftsvorfallcodes_und_buchungs_textschluessel.pdf".freeze, "lib/mt940.rb".freeze, "lib/mt940/customer_statement_message.rb".freeze, "lib/mt940/errors.rb".freeze, "lib/mt940/version.rb".freeze, "mt940_parser.gemspec".freeze, "test/fixtures/amount_formats.txt".freeze, "test/fixtures/amount_formats.yml".freeze, "test/fixtures/currency_in_25.txt".freeze, "test/fixtures/currency_in_25.yml".freeze, "test/fixtures/empty_86.txt".freeze, "test/fixtures/empty_86.yml".freeze, "test/fixtures/empty_entry_date.txt".freeze, "test/fixtures/empty_entry_date.yml".freeze, "test/fixtures/empty_line.txt".freeze, "test/fixtures/empty_line.yml".freeze, "test/fixtures/missing_crlf_at_end.txt".freeze, "test/fixtures/missing_crlf_at_end.yml".freeze, "test/fixtures/sepa_mt9401.txt".freeze, "test/fixtures/sepa_mt9401.yml".freeze, "test/fixtures/sepa_snippet.txt".freeze, "test/fixtures/sepa_snippet_broken.txt".freeze, "test/fixtures/with_binary_character.txt".freeze, "test/fixtures/with_binary_character.yml".freeze, "test/test_account_identifier.rb".freeze, "test/test_customer_statement_message.rb".freeze, "test/test_helper.rb".freeze, "test/test_mt940.rb".freeze]
|
|
15
|
+
s.homepage = "http://github.com/betterplace/mt940_parser".freeze
|
|
16
|
+
s.licenses = ["MIT".freeze]
|
|
17
|
+
s.rubygems_version = "2.7.3".freeze
|
|
18
|
+
s.summary = "MT940 parses account statements in the SWIFT MT940 format.".freeze
|
|
19
|
+
s.test_files = ["test/test_helper.rb".freeze, "test/test_account_identifier.rb".freeze, "test/test_mt940.rb".freeze, "test/test_customer_statement_message.rb".freeze]
|
|
22
20
|
|
|
23
21
|
if s.respond_to? :specification_version then
|
|
24
22
|
s.specification_version = 4
|
|
25
23
|
|
|
26
24
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
27
|
-
s.add_development_dependency(%q<gem_hadar
|
|
28
|
-
s.add_development_dependency(%q<test-unit
|
|
29
|
-
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
|
25
|
+
s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 1.3.1"])
|
|
26
|
+
s.add_development_dependency(%q<test-unit>.freeze, [">= 0"])
|
|
30
27
|
else
|
|
31
|
-
s.add_dependency(%q<gem_hadar
|
|
32
|
-
s.add_dependency(%q<test-unit
|
|
33
|
-
s.add_dependency(%q<simplecov>, [">= 0"])
|
|
28
|
+
s.add_dependency(%q<gem_hadar>.freeze, ["~> 1.3.1"])
|
|
29
|
+
s.add_dependency(%q<test-unit>.freeze, [">= 0"])
|
|
34
30
|
end
|
|
35
31
|
else
|
|
36
|
-
s.add_dependency(%q<gem_hadar
|
|
37
|
-
s.add_dependency(%q<test-unit
|
|
38
|
-
s.add_dependency(%q<simplecov>, [">= 0"])
|
|
32
|
+
s.add_dependency(%q<gem_hadar>.freeze, ["~> 1.3.1"])
|
|
33
|
+
s.add_dependency(%q<test-unit>.freeze, [">= 0"])
|
|
39
34
|
end
|
|
40
35
|
end
|
data/test/test_helper.rb
CHANGED
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
if ENV['START_SIMPLECOV'].to_i == 1
|
|
2
|
-
require 'simplecov'
|
|
3
|
-
SimpleCov.start do
|
|
4
|
-
add_filter "#{File.basename(File.dirname(__FILE__))}/"
|
|
5
|
-
end
|
|
6
|
-
end
|
|
7
|
-
if ENV['CODECLIMATE_REPO_TOKEN']
|
|
8
|
-
require "codeclimate-test-reporter"
|
|
9
|
-
CodeClimate::TestReporter.start
|
|
10
|
-
end
|
|
11
1
|
require 'test/unit'
|
|
12
2
|
begin
|
|
13
3
|
require 'byebug'
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mt940_parser
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.5.
|
|
4
|
+
version: 1.5.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Thies C. Arntzen
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2018-01-02 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: gem_hadar
|
|
@@ -39,30 +39,11 @@ dependencies:
|
|
|
39
39
|
- - ">="
|
|
40
40
|
- !ruby/object:Gem::Version
|
|
41
41
|
version: '0'
|
|
42
|
-
- !ruby/object:Gem::Dependency
|
|
43
|
-
name: simplecov
|
|
44
|
-
requirement: !ruby/object:Gem::Requirement
|
|
45
|
-
requirements:
|
|
46
|
-
- - ">="
|
|
47
|
-
- !ruby/object:Gem::Version
|
|
48
|
-
version: '0'
|
|
49
|
-
type: :development
|
|
50
|
-
prerelease: false
|
|
51
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
52
|
-
requirements:
|
|
53
|
-
- - ">="
|
|
54
|
-
- !ruby/object:Gem::Version
|
|
55
|
-
version: '0'
|
|
56
42
|
description: Ruby library that parses account statements in the SWIFT MT940 format.
|
|
57
43
|
email: developers@betterplace.org
|
|
58
44
|
executables: []
|
|
59
45
|
extensions: []
|
|
60
|
-
extra_rdoc_files:
|
|
61
|
-
- README.rdoc
|
|
62
|
-
- lib/mt940.rb
|
|
63
|
-
- lib/mt940/customer_statement_message.rb
|
|
64
|
-
- lib/mt940/errors.rb
|
|
65
|
-
- lib/mt940/version.rb
|
|
46
|
+
extra_rdoc_files: []
|
|
66
47
|
files:
|
|
67
48
|
- ".document"
|
|
68
49
|
- ".gitignore"
|
|
@@ -70,10 +51,9 @@ files:
|
|
|
70
51
|
- ".travis.yml"
|
|
71
52
|
- Gemfile
|
|
72
53
|
- LICENSE
|
|
73
|
-
- README.
|
|
54
|
+
- README.md
|
|
74
55
|
- Rakefile
|
|
75
56
|
- VERSION
|
|
76
|
-
- VERSION.yml
|
|
77
57
|
- docs/0E0Y00DNY.pdf
|
|
78
58
|
- docs/FinTS_4.0_Formals.pdf
|
|
79
59
|
- docs/FinTS_4.0_Messages_Finanzdatenformate.pdf
|
|
@@ -114,11 +94,7 @@ licenses:
|
|
|
114
94
|
- MIT
|
|
115
95
|
metadata: {}
|
|
116
96
|
post_install_message:
|
|
117
|
-
rdoc_options:
|
|
118
|
-
- "--title"
|
|
119
|
-
- Mt940Parser - MT940 parses account statements in the SWIFT MT940 format.
|
|
120
|
-
- "--main"
|
|
121
|
-
- README.rdoc
|
|
97
|
+
rdoc_options: []
|
|
122
98
|
require_paths:
|
|
123
99
|
- lib
|
|
124
100
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
@@ -133,12 +109,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
133
109
|
version: '0'
|
|
134
110
|
requirements: []
|
|
135
111
|
rubyforge_project:
|
|
136
|
-
rubygems_version: 2.
|
|
112
|
+
rubygems_version: 2.7.3
|
|
137
113
|
signing_key:
|
|
138
114
|
specification_version: 4
|
|
139
115
|
summary: MT940 parses account statements in the SWIFT MT940 format.
|
|
140
116
|
test_files:
|
|
141
|
-
- test/test_account_identifier.rb
|
|
142
|
-
- test/test_customer_statement_message.rb
|
|
143
117
|
- test/test_helper.rb
|
|
118
|
+
- test/test_account_identifier.rb
|
|
144
119
|
- test/test_mt940.rb
|
|
120
|
+
- test/test_customer_statement_message.rb
|