dockcheck 1.0.0 → 1.3.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.
- checksums.yaml +4 -4
- data/lib/dockcheck.rb +9 -5
- data/lib/dockcheck/bik.rb +23 -0
- data/lib/dockcheck/inn.rb +6 -2
- data/lib/dockcheck/kpp.rb +23 -0
- data/lib/dockcheck/snils.rb +6 -2
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3d171f2c4d241e2c32f77cdcff6c0d81d9db7db81467610873126be57fe36649
|
|
4
|
+
data.tar.gz: a99ba98ec717d4ee3178cef11bff8f323146f7a5ea237aa62ac9888bfb8a9214
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 824018480964b8acafb978f634dede9df9e1367936e2d6a992bf2e63e1933d114625346514c2c5e19faafb771d9f72bd512fe84b0fdf63a4efd69974802b9880
|
|
7
|
+
data.tar.gz: 24bfc2ca9e4a2f5ddfbe50f511148c0cecbd933b4c809b61b633df29e83d5269e34d437afaee0b9df2cd7850efd1d7dc02d2d8dde0c5578c3385768363682ce9
|
data/lib/dockcheck.rb
CHANGED
|
@@ -8,8 +8,8 @@ class DockCheck
|
|
|
8
8
|
self
|
|
9
9
|
end
|
|
10
10
|
|
|
11
|
-
def check(numbers)
|
|
12
|
-
@current_checker.check(numbers)
|
|
11
|
+
def check(numbers, *other_data)
|
|
12
|
+
@current_checker.check(numbers, *other_data)
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
def change_checker(checker)
|
|
@@ -17,9 +17,13 @@ class DockCheck
|
|
|
17
17
|
self
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
+
def current_checker
|
|
21
|
+
@current_checker.name()
|
|
22
|
+
end
|
|
23
|
+
|
|
20
24
|
private
|
|
21
25
|
def dispatch(checker)
|
|
22
|
-
checkers_map = {inn: Inn, snils: Snils}
|
|
26
|
+
checkers_map = {inn: Inn, snils: Snils, bik: Bik, kpp: Kpp}
|
|
23
27
|
|
|
24
28
|
if checkers_map.key?(checker.to_sym)
|
|
25
29
|
@current_checker = checkers_map[checker].new
|
|
@@ -29,5 +33,5 @@ class DockCheck
|
|
|
29
33
|
end
|
|
30
34
|
end
|
|
31
35
|
|
|
32
|
-
|
|
33
|
-
|
|
36
|
+
Dir[File.join(__dir__, 'dockcheck', '*.rb')].each { |file| require file }
|
|
37
|
+
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class DockCheck::Bik
|
|
4
|
+
|
|
5
|
+
def check(bik, _)
|
|
6
|
+
case bik.length
|
|
7
|
+
when 9
|
|
8
|
+
bik_valid?(bik)
|
|
9
|
+
else
|
|
10
|
+
raise StandardError.new 'Incorrect bik numbers count!'
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def name
|
|
15
|
+
:bik
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
private
|
|
19
|
+
|
|
20
|
+
def bik_valid?(bik)
|
|
21
|
+
bik.scan(/\D/).empty?
|
|
22
|
+
end
|
|
23
|
+
end
|
data/lib/dockcheck/inn.rb
CHANGED
|
@@ -5,7 +5,7 @@ class DockCheck::Inn
|
|
|
5
5
|
@@twelve_digits_first_map = [7, 2, 4, 10, 3, 5, 9, 4, 6, 8]
|
|
6
6
|
@@twelve_digits_second_map = [3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8]
|
|
7
7
|
|
|
8
|
-
def check(numbers)
|
|
8
|
+
def check(numbers, _)
|
|
9
9
|
inn = prepare_inn(numbers)
|
|
10
10
|
case inn.count
|
|
11
11
|
when 10
|
|
@@ -17,9 +17,13 @@ class DockCheck::Inn
|
|
|
17
17
|
end
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
+
def name
|
|
21
|
+
:inn
|
|
22
|
+
end
|
|
23
|
+
|
|
20
24
|
private
|
|
21
25
|
def prepare_inn(numbers)
|
|
22
|
-
numbers.split('').map
|
|
26
|
+
numbers.split('').map(&:to_i)
|
|
23
27
|
end
|
|
24
28
|
|
|
25
29
|
def control_sum_calc(inn, coefficients)
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class DockCheck::Kpp
|
|
4
|
+
|
|
5
|
+
def check(kpp, _)
|
|
6
|
+
case kpp.length
|
|
7
|
+
when 9
|
|
8
|
+
kpp_valid?(kpp)
|
|
9
|
+
else
|
|
10
|
+
raise StandardError.new 'Incorrect kpp numbers count!'
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def name
|
|
15
|
+
:kpp
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
private
|
|
19
|
+
|
|
20
|
+
def kpp_valid?(kpp)
|
|
21
|
+
!!(kpp =~ /^[0-9]{4}[0-9A-Z]{2}[0-9]{3}$/)
|
|
22
|
+
end
|
|
23
|
+
end
|
data/lib/dockcheck/snils.rb
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
class DockCheck::Snils
|
|
4
4
|
@@coefficients_map = [9, 8, 7, 6, 5, 4, 3, 2, 1]
|
|
5
5
|
|
|
6
|
-
def check(numbers)
|
|
6
|
+
def check(numbers, _)
|
|
7
7
|
snils = prepare_snils(numbers)
|
|
8
8
|
case snils.count
|
|
9
9
|
when 11
|
|
@@ -14,9 +14,13 @@ class DockCheck::Snils
|
|
|
14
14
|
end
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
+
def name
|
|
18
|
+
:snils
|
|
19
|
+
end
|
|
20
|
+
|
|
17
21
|
private
|
|
18
22
|
def prepare_snils(numbers)
|
|
19
|
-
numbers.split('').map
|
|
23
|
+
numbers.split('').map(&:to_i)
|
|
20
24
|
end
|
|
21
25
|
|
|
22
26
|
def control_sum_calc(inn, coefficients)
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dockcheck
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.3.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Artem Solomatin
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-06-
|
|
11
|
+
date: 2021-06-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rspec
|
|
@@ -31,7 +31,9 @@ extensions: []
|
|
|
31
31
|
extra_rdoc_files: []
|
|
32
32
|
files:
|
|
33
33
|
- lib/dockcheck.rb
|
|
34
|
+
- lib/dockcheck/bik.rb
|
|
34
35
|
- lib/dockcheck/inn.rb
|
|
36
|
+
- lib/dockcheck/kpp.rb
|
|
35
37
|
- lib/dockcheck/snils.rb
|
|
36
38
|
homepage: https://rubygems.org/gems/dockcheck
|
|
37
39
|
licenses:
|