kontocheck 0.0.6
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/.document +5 -0
- data/CHANGES +16 -0
- data/LICENSE +21 -0
- data/README.textile +61 -0
- data/Rakefile +72 -0
- data/VERSION.yml +5 -0
- data/ext/konto_check_raw/extconf.rb +32 -0
- data/ext/konto_check_raw/konto_check.c +18306 -0
- data/ext/konto_check_raw/konto_check.h +831 -0
- data/ext/konto_check_raw/konto_check_raw_ruby.c +1577 -0
- data/init.rb +1 -0
- data/lib/konto_check.rb +152 -0
- data/test/helper.rb +10 -0
- data/test/test_konto_check.rb +7 -0
- metadata +95 -0
data/.document
ADDED
data/CHANGES
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
important changes in version 0.0.3:
|
2
|
+
|
3
|
+
- Function konto_check: the order of parameters changed:
|
4
|
+
konto_check(blz,kto) instead of konto_check(kto,blz)
|
5
|
+
|
6
|
+
- The function load_bank_data will go away; instead a new function
|
7
|
+
konto_check::init() is provided which reads directly a lut file.
|
8
|
+
This function is much faster (about 7..25 times, depending on the
|
9
|
+
blocks to load) and has some more advantages.
|
10
|
+
|
11
|
+
- This version can be compiled for Ruby 1.8 and 1.9
|
12
|
+
|
13
|
+
- some new functions give access to all fields of the bank file:
|
14
|
+
bank_{name|name_kurz|plz|ort|pan|bic|nr|pz|aenderung|loeschung|nachfolge_blz}()
|
15
|
+
|
16
|
+
- for documentation, RTFS. Later some more documentation will be added ;-)
|
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
Copyright (c) 2010 Provideal Systems GmbH
|
2
|
+
|
3
|
+
This program is free software: you can redistribute it and/or modify
|
4
|
+
it under the terms of the GNU General Public License as published by
|
5
|
+
the Free Software Foundation, either version 3 of the License, or
|
6
|
+
(at your option) any later version.
|
7
|
+
|
8
|
+
This program is distributed in the hope that it will be useful,
|
9
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
11
|
+
GNU General Public License for more details.
|
12
|
+
|
13
|
+
You should have received a copy of the GNU General Public License
|
14
|
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
15
|
+
|
16
|
+
ACKNOWLEDGEMENT
|
17
|
+
|
18
|
+
This software is entirely based on the C library konto_check
|
19
|
+
http://www.informatik.hs-mannheim.de/konto_check/
|
20
|
+
http://sourceforge.net/projects/kontocheck/
|
21
|
+
by Michael Plugge.
|
data/README.textile
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
h1. KontoCheck
|
2
|
+
|
3
|
+
Check whether a certain bic/account-no-combination can possibly be valid for a German bank.
|
4
|
+
|
5
|
+
It uses the C library konto_check (see http://sourceforge.net/projects/kontocheck/) by
|
6
|
+
Michael Plugge.
|
7
|
+
|
8
|
+
h2. Example
|
9
|
+
|
10
|
+
An example tends to tell more than a 1000 words:
|
11
|
+
|
12
|
+
<pre>
|
13
|
+
>> require "konto_check"
|
14
|
+
true
|
15
|
+
|
16
|
+
>> KontoCheck::init("./blz.lut")
|
17
|
+
true
|
18
|
+
|
19
|
+
# konto_check?(blz, ktno) => true/false (valid/invalid)
|
20
|
+
>> KontoCheck::konto_check?("52250030", "52001")
|
21
|
+
true
|
22
|
+
|
23
|
+
>> KontoCheck::konto_check?("52250030", "52002")
|
24
|
+
false
|
25
|
+
|
26
|
+
# ISO-8859-1 encoded name of bank
|
27
|
+
>> KontoCheck::bank_name("10010010")
|
28
|
+
"Postbank"
|
29
|
+
|
30
|
+
# there is more, RTFS or wait for/help creating more examples...
|
31
|
+
</pre>
|
32
|
+
|
33
|
+
h2. Short 'Documentation'
|
34
|
+
|
35
|
+
h3. <tt>KontoCheck::konto_check?(<blz>, <kto>)</tt>
|
36
|
+
|
37
|
+
check whether the given account number <tt>kto</tt> can possibly be
|
38
|
+
a valid number of the bank with the bic <tt>blz</tt>.
|
39
|
+
|
40
|
+
h3. <tt>KontoCheck::init(<lut_file>)</tt>
|
41
|
+
|
42
|
+
initialize the underlying C library konto_check with bank
|
43
|
+
information from the LUT file <tt>lut_file</tt>.
|
44
|
+
The LUT file can be created from the plain text file
|
45
|
+
found at: http://www.bundesbank.de/zahlungsverkehr/zahlungsverkehr_bankleitzahlen_download.php
|
46
|
+
This file is updated every three months, so be sure to
|
47
|
+
replace (and regenerate) it regularly.
|
48
|
+
|
49
|
+
There will be a rake task to update the LUT file soon.
|
50
|
+
|
51
|
+
h3. <tt>KontoCheck::bank_name(<blz>)</tt>
|
52
|
+
|
53
|
+
returns the name of the bank as a (ISO-8859-1 encoded)
|
54
|
+
string or raises a runtime error with a short error message
|
55
|
+
if an error occurred (invalid blz, blz too short, etc.).
|
56
|
+
This may be changed in the future to simply return nil (should be discussed).
|
57
|
+
|
58
|
+
h2. License
|
59
|
+
|
60
|
+
Since the original http://www.informatik.hs-mannheim.de/konto_check/ is
|
61
|
+
licensed under LGPL, so is this module.
|
data/Rakefile
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
# Copyright (c) 2010 Provideal Systems GmbH
|
2
|
+
#
|
3
|
+
# This program is free software: you can redistribute it and/or modify
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
5
|
+
# the Free Software Foundation, either version 3 of the License, or
|
6
|
+
# (at your option) any later version.
|
7
|
+
#
|
8
|
+
# This program is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
11
|
+
# GNU General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU General Public License
|
14
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
15
|
+
|
16
|
+
require 'rubygems'
|
17
|
+
require 'rake'
|
18
|
+
require 'rake/extensiontask'
|
19
|
+
|
20
|
+
Rake::ExtensionTask.new('kontocheck')
|
21
|
+
|
22
|
+
begin
|
23
|
+
require 'jeweler'
|
24
|
+
Jeweler::Tasks.new do |gem|
|
25
|
+
gem.name = "kontocheck"
|
26
|
+
gem.summary = %Q{Checking german BICs/Bank account numbers}
|
27
|
+
gem.description = %Q{Check whether a certain bic/account-no-combination can possibly be valid. It uses the C library konto_check (see http://sourceforge.net/projects/kontocheck/) by Michael Plugge.}
|
28
|
+
gem.email = "jan@general-scripting.com"
|
29
|
+
gem.homepage = "http://github.com/jeanmartin/konto_check"
|
30
|
+
gem.authors = ["Provideal Systems GmbH","Michael Plugge","Jan Schwenzien"]
|
31
|
+
gem.add_development_dependency "thoughtbot-shoulda", ">= 0"
|
32
|
+
#gem.files.exclude "ext"
|
33
|
+
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
34
|
+
end
|
35
|
+
Jeweler::GemcutterTasks.new
|
36
|
+
rescue LoadError
|
37
|
+
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
38
|
+
end
|
39
|
+
|
40
|
+
require 'rake/testtask'
|
41
|
+
Rake::TestTask.new(:test) do |test|
|
42
|
+
test.libs << 'lib' << 'test'
|
43
|
+
test.pattern = 'test/**/test_*.rb'
|
44
|
+
test.verbose = true
|
45
|
+
end
|
46
|
+
|
47
|
+
begin
|
48
|
+
require 'rcov/rcovtask'
|
49
|
+
Rcov::RcovTask.new do |test|
|
50
|
+
test.libs << 'test'
|
51
|
+
test.pattern = 'test/**/test_*.rb'
|
52
|
+
test.verbose = true
|
53
|
+
end
|
54
|
+
rescue LoadError
|
55
|
+
task :rcov do
|
56
|
+
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
task :test => :check_dependencies
|
61
|
+
|
62
|
+
task :default => :test
|
63
|
+
|
64
|
+
require 'rake/rdoctask'
|
65
|
+
Rake::RDocTask.new do |rdoc|
|
66
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
67
|
+
|
68
|
+
rdoc.rdoc_dir = 'rdoc'
|
69
|
+
rdoc.title = "konto_check #{version}"
|
70
|
+
rdoc.rdoc_files.include('README*')
|
71
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
72
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# Copyright (c) 2010 Provideal Systems GmbH
|
2
|
+
#
|
3
|
+
# This program is free software: you can redistribute it and/or modify
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
5
|
+
# the Free Software Foundation, either version 3 of the License, or
|
6
|
+
# (at your option) any later version.
|
7
|
+
#
|
8
|
+
# This program is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
11
|
+
# GNU General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU General Public License
|
14
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
15
|
+
|
16
|
+
|
17
|
+
# Loads mkmf which is used to make makefiles for Ruby extensions
|
18
|
+
require 'mkmf'
|
19
|
+
|
20
|
+
# Give it a name
|
21
|
+
extension_name = 'konto_check_raw'
|
22
|
+
|
23
|
+
if have_library("z", "uncompress")
|
24
|
+
# The destination
|
25
|
+
dir_config(extension_name)
|
26
|
+
|
27
|
+
# Do the work
|
28
|
+
create_makefile(extension_name)
|
29
|
+
else
|
30
|
+
puts("Sadly, I can't find zlib. But I need it to compile. :(")
|
31
|
+
end
|
32
|
+
|