banktools-se 3.0.1 → 3.1.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 50ee9c6000dbe6c9ca07162a24081e77b2ff7dff1f289353aea9c535b358bc7c
4
- data.tar.gz: 4959d76eade8411d9f4f37f746e8a21beb9748fbb444239826a94f2c1c2dda18
3
+ metadata.gz: 7f07fdb509f30138a506f6f6417ff304ed85500d08898e96c16d431b4f8c3ec3
4
+ data.tar.gz: 4582e2ed894b372b164d0634663a454aa36a7fc12fddaa65c3a322658daeca40
5
5
  SHA512:
6
- metadata.gz: 55841103bbffaf6a43b43d3164ef9287e61c32a40081c65ec66627c853caf09c325126327256bbca6013c01878f731f0dc123547f8eda30c58c99f6c25146d17
7
- data.tar.gz: 5ce55c6d94671c6dea2b0eece4014e441cc903dc3941cd57fdb3758ec2e68f443120dc3473265209b58f4cec50adccd00241086e006bb454ffced93dfb5d440d
6
+ metadata.gz: 85df98a4cf73147671d52a66af1eb8af728e9610857b9a58a1f078642d33fe0386c973e375d964b47022aae44683f4e62b0313d4352a77434c827007bd83ff23
7
+ data.tar.gz: 46620b5b9b5f9f4af077bb93862669acbb4ae026ebccfd9cc462caf0711f4b67e14f01ce8ef4a36587c6964c3935530af637a851c7011f20c166300451861d2a
@@ -0,0 +1,28 @@
1
+ name: Ruby CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+ pull_request:
7
+ branches: [ master ]
8
+
9
+ jobs:
10
+ test:
11
+
12
+ runs-on: ubuntu-latest
13
+
14
+ strategy:
15
+ matrix:
16
+ ruby-version: ["3.0", "2.7", "2.6", "2.5"]
17
+
18
+ steps:
19
+ - uses: actions/checkout@v2
20
+ - name: Set up Ruby ${{ matrix.ruby-version }}
21
+ uses: ruby/setup-ruby@477b21f02be01bcb8030d50f37cfec92bfa615b6
22
+ with:
23
+ ruby-version: ${{ matrix.ruby-version }}
24
+ - name: Install dependencies
25
+ run: bundle install
26
+ - name: Run tests
27
+ run: bundle exec rake
28
+
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.1.0
4
+
5
+ - Add more banks to the range in `BankTools::SE::Account::ClearingNumber`. See [#7]. Thanks, Milen Dimitrov!
6
+
3
7
  ## 3.0.1
4
8
 
5
9
  - Fix deprecation error: "NOTE: Gem::Specification#rubyforge_project= is deprecated with no replacement. It will be removed on or after 2019-12-01."
@@ -11,3 +15,5 @@
11
15
  ## 2.6.3 and earlier
12
16
 
13
17
  - Please see commit history.
18
+
19
+ [#7]: https://github.com/barsoom/banktools-se/pull/7
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source "http://rubygems.org"
1
+ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in bank-tools-se.gemspec
4
4
  gemspec
data/README.markdown CHANGED
@@ -1,6 +1,6 @@
1
1
  # Swedish bank tools
2
2
 
3
- [![Build Status](https://secure.travis-ci.org/barsoom/banktools-se.png)](http://travis-ci.org/barsoom/banktools-se)
3
+ [![Ruby CI](https://github.com/barsoom/banktools-se/actions/workflows/ci.yml/badge.svg)](https://github.com/barsoom/banktools-se/actions/workflows/ci.yml)
4
4
 
5
5
  Ruby gem to validate, normalize/prettify and to some extent interpret
6
6
 
@@ -17,87 +17,90 @@ Inspired by [iulianu/iban-tools](https://github.com/iulianu/iban-tools). Please
17
17
 
18
18
  ## Usage
19
19
 
20
- # Bankgiro
20
+ ```ruby
21
+ # Bankgiro
21
22
 
22
- valid_account = BankTools::SE::Bankgiro.new(" 5402968 1 ")
23
- valid_account.valid? # => true
24
- valid_account.errors # => []
25
- valid_account.normalize # => "5402-9681"
23
+ valid_account = BankTools::SE::Bankgiro.new(" 5402968 1 ")
24
+ valid_account.valid? # => true
25
+ valid_account.errors # => []
26
+ valid_account.normalize # => "5402-9681"
26
27
 
27
- bad_account = BankTools::SE::Bankgiro.new(" 1X ")
28
- bad_account.valid? # => false
29
- bad_account.errors # => [ :too_short, :invalid_characters, :bad_checksum ]
30
- bad_account.normalize # => " 1 "
28
+ bad_account = BankTools::SE::Bankgiro.new(" 1X ")
29
+ bad_account.valid? # => false
30
+ bad_account.errors # => [ :too_short, :invalid_characters, :bad_checksum ]
31
+ bad_account.normalize # => " 1 "
31
32
 
32
- # 90-konto
33
- fundraising_account = BankTools::SE::Bankgiro.new("902-0033")
34
- fundraising_account.fundraising? # => true
33
+ # 90-konto
34
+ fundraising_account = BankTools::SE::Bankgiro.new("902-0033")
35
+ fundraising_account.fundraising? # => true
35
36
 
36
- # OCR
37
+ # OCR
37
38
 
38
- BankTools::SE::OCR.from_number("123") # => "1230"
39
- BankTools::SE::OCR.from_number("123", length_digit: true) # => "12351"
40
- BankTools::SE::OCR.from_number("123", length_digit: true, pad: "0") # => "123067"
39
+ BankTools::SE::OCR.from_number("123") # => "1230"
40
+ BankTools::SE::OCR.from_number("123", length_digit: true) # => "12351"
41
+ BankTools::SE::OCR.from_number("123", length_digit: true, pad: "0") # => "123067"
41
42
 
42
- BankTools::SE::OCR.to_number("1230") # => "123"
43
- BankTools::SE::OCR.to_number("123067", length_digit: true, pad: "0") # => "123"
44
- BankTools::SE::OCR.to_number("1230", length_digit: true, pad: "0") # Raises exception because there's no length digit or padding.
43
+ BankTools::SE::OCR.to_number("1230") # => "123"
44
+ BankTools::SE::OCR.to_number("123067", length_digit: true, pad: "0") # => "123"
45
+ BankTools::SE::OCR.to_number("1230", length_digit: true, pad: "0") # Raises exception because there's no length digit or padding.
45
46
 
46
- # This feature is intended to try to find all OCR numbers in a noisy bank statement string.
47
- # By design it may find too many numbers (e.g. valid substrings of other numbers), so you should check results against actual outstanding invoices.
48
- # By default, it excludes OCRs shorter than 4 digits and longer than 18 digits, but this limit can be specified per below.
49
- BankTools::SE::OCR.find_all_in_string("OCR1230 and ref4564 and 7890") # => [ "1230", "4564", … ]
50
- BankTools::SE::OCR.find_all_in_string("1230 and 123067", length_digit: true, pad: "0") # => [ "123067" ]
51
- BankTools::SE::OCR.find_all_in_string("00 and 18 and 1230", min_length: 2, max_length: 3) # => [ "00", "018", "18" ]
47
+ # This feature is intended to try to find all OCR numbers in a noisy bank statement string.
48
+ # By design it may find too many numbers (e.g. valid substrings of other numbers), so you should check results against actual outstanding invoices.
49
+ # By default, it excludes OCRs shorter than 4 digits and longer than 18 digits, but this limit can be specified per below.
50
+ BankTools::SE::OCR.find_all_in_string("OCR1230 and ref4564 and 7890") # => [ "1230", "4564", … ]
51
+ BankTools::SE::OCR.find_all_in_string("1230 and 123067", length_digit: true, pad: "0") # => [ "123067" ]
52
+ BankTools::SE::OCR.find_all_in_string("00 and 18 and 1230", min_length: 2, max_length: 3) # => [ "00", "018", "18" ]
52
53
 
53
- # Plusgiro
54
+ # Plusgiro
54
55
 
55
- valid_account = BankTools::SE::Plusgiro.new("2865434")
56
- valid_account.valid? # => true
57
- valid_account.errors # => []
58
- valid_account.normalize # => "28 65 53-4"
56
+ valid_account = BankTools::SE::Plusgiro.new("2865434")
57
+ valid_account.valid? # => true
58
+ valid_account.errors # => []
59
+ valid_account.normalize # => "28 65 53-4"
59
60
 
60
- bad_account = BankTools::SE::Plusgiro.new(" 1X ")
61
- bad_account.valid? # => false
62
- bad_account.errors # => [ :too_short, :invalid_characters, :bad_checksum ]
63
- bad_account.normalize # => " 1 "
61
+ bad_account = BankTools::SE::Plusgiro.new(" 1X ")
62
+ bad_account.valid? # => false
63
+ bad_account.errors # => [ :too_short, :invalid_characters, :bad_checksum ]
64
+ bad_account.normalize # => " 1 "
64
65
 
65
- # 90-konto
66
- fundraising_account = BankTools::SE::Plusgiro.new("90 20 03-3")
67
- fundraising_account.fundraising? # => true
66
+ # 90-konto
67
+ fundraising_account = BankTools::SE::Plusgiro.new("90 20 03-3")
68
+ fundraising_account.fundraising? # => true
68
69
 
69
70
 
70
- # Bank account
71
+ # Bank account
71
72
 
72
- valid_account = BankTools::SE::Account.new("11000000000")
73
- valid_account.valid? # => true
74
- valid_account.errors # => []
75
- valid_account.normalize # => "1100-0000000"
76
- valid_account.bank # => "Nordea"
77
- valid_account.clearing_number # => "1100"
78
- valid_account.serial_number # => "0000000"
73
+ valid_account = BankTools::SE::Account.new("11000000000")
74
+ valid_account.valid? # => true
75
+ valid_account.errors # => []
76
+ valid_account.normalize # => "1100-0000000"
77
+ valid_account.bank # => "Nordea"
78
+ valid_account.clearing_number # => "1100"
79
+ valid_account.serial_number # => "0000000"
79
80
 
80
- bad_account = BankTools::SE::Account.new(" 0000-0000000X ")
81
- bad_account.valid? # => false
82
- bad_account.errors # => [ :invalid_characters, :unknown_clearing_number ]
83
- bad_account.bank # => nil
84
- bad_account.normalize # => " 0000-0000000X "
81
+ bad_account = BankTools::SE::Account.new(" 0000-0000000X ")
82
+ bad_account.valid? # => false
83
+ bad_account.errors # => [ :invalid_characters, :unknown_clearing_number ]
84
+ bad_account.bank # => nil
85
+ bad_account.normalize # => " 0000-0000000X "
85
86
 
86
87
 
87
- # Error codes
88
-
89
- BankTools::SE::Errors::TOO_SHORT # => :too_short
90
- BankTools::SE::Errors::TOO_LONG # => :too_long
91
- BankTools::SE::Errors::INVALID_CHARACTERS # => :invalid_characters
92
- BankTools::SE::Errors::BAD_CHECKSUM # => :bad_checksum
93
- BankTools::SE::Errors::UNKNOWN_CLEARING_NUMBER # => :unknown_clearing_number
88
+ # Error codes
94
89
 
90
+ BankTools::SE::Errors::TOO_SHORT # => :too_short
91
+ BankTools::SE::Errors::TOO_LONG # => :too_long
92
+ BankTools::SE::Errors::INVALID_CHARACTERS # => :invalid_characters
93
+ BankTools::SE::Errors::BAD_CHECKSUM # => :bad_checksum
94
+ BankTools::SE::Errors::UNKNOWN_CLEARING_NUMBER # => :unknown_clearing_number
95
+ ```
95
96
 
96
97
  ## Installation
97
98
 
98
99
  Add this line to your application's Gemfile:
99
100
 
100
- gem 'banktools-se'
101
+ ```ruby
102
+ gem 'banktools-se'
103
+ ```
101
104
 
102
105
  And then execute:
103
106
 
data/banktools-se.gemspec CHANGED
@@ -12,7 +12,6 @@ Gem::Specification.new do |s|
12
12
 
13
13
  s.files = `git ls-files`.split("\n")
14
14
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
15
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
16
15
  s.require_paths = ["lib"]
17
16
 
18
17
  s.add_development_dependency "rake"
@@ -11,11 +11,11 @@ module BankTools
11
11
  2300..2399 => { name: "Ålandsbanken" },
12
12
  2400..2499 => { name: "Danske Bank" },
13
13
  3000..3299 => { name: "Nordea" },
14
- 3300..3300 => { name: "Nordea", serial_number_length: 10, luhn_for_serial: true }, # Personkonto.
14
+ 3300..3300 => { name: "Nordea", serial_number_length: 10, luhn_for_serial: true }, # Personkonto.
15
15
  3301..3399 => { name: "Nordea" },
16
16
  3400..3409 => { name: "Länsförsäkringar Bank" },
17
17
  3410..3781 => { name: "Nordea" },
18
- 3782..3782 => { name: "Nordea", serial_number_length: 10, luhn_for_serial: true }, # Personkonto.
18
+ 3782..3782 => { name: "Nordea", serial_number_length: 10, luhn_for_serial: true }, # Personkonto.
19
19
  3783..4999 => { name: "Nordea" },
20
20
  5000..5999 => { name: "SEB" },
21
21
  6000..6999 => { name: "Handelsbanken", serial_number_length: 8..9 },
@@ -45,6 +45,19 @@ module BankTools
45
45
  9500..9549 => { name: "Nordea/Plusgirot", serial_number_length: 1..10 },
46
46
  9550..9569 => { name: "Avanza Bank" },
47
47
  9570..9579 => { name: "Sparbanken Syd", serial_number_length: 10, zerofill: true },
48
+ 9630..9639 => { name: "Lån og Spar Bank Sverige" },
49
+ 9640..9649 => { name: "Nordax Bank AB" },
50
+ 9650..9659 => { name: "MedMera Bank" },
51
+ 9660..9669 => { name: "Svea Bank" },
52
+ 9670..9679 => { name: "JAK Medlemsbank" },
53
+ 9680..9689 => { name: "Bluestep Finance" },
54
+ 9690..9699 => { name: "Folkia" },
55
+ 9700..9709 => { name: "Ekobanken" },
56
+ 9720..9729 => { name: "Netfonds Bank (ub)" },
57
+ 9750..9759 => { name: "Northmill Bank" },
58
+ 9770..9779 => { name: "FTCS" },
59
+ 9780..9789 => { name: "Klarna Bank" },
60
+ 9955..9955 => { name: "Kommuninvest" },
48
61
  9960..9969 => { name: "Nordea/Plusgirot", serial_number_length: 1..10 },
49
62
  }
50
63
  end
@@ -1,5 +1,5 @@
1
1
  module BankTools
2
2
  module SE
3
- VERSION = "3.0.1"
3
+ VERSION = "3.1.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: banktools-se
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.1
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henrik Nyh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-20 00:00:00.000000000 Z
11
+ date: 2021-08-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -73,8 +73,8 @@ executables: []
73
73
  extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
+ - ".github/workflows/ci.yml"
76
77
  - ".gitignore"
77
- - ".travis.yml"
78
78
  - CHANGELOG.md
79
79
  - Gemfile
80
80
  - README.markdown
@@ -113,7 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
113
  - !ruby/object:Gem::Version
114
114
  version: '0'
115
115
  requirements: []
116
- rubygems_version: 3.0.3
116
+ rubygems_version: 3.2.25
117
117
  signing_key:
118
118
  specification_version: 4
119
119
  summary: Validate and normalize Swedish bank account numbers, plusgiro and bankgiro.
data/.travis.yml DELETED
@@ -1,4 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.3.0
4
- - 2.2.5