dockcheck 1.5.0 → 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 +4 -4
- data/lib/dockcheck.rb +13 -5
- data/lib/dockcheck/bik.rb +3 -6
- data/lib/dockcheck/dockhelper.rb +13 -0
- data/lib/dockcheck/inn.rb +3 -4
- data/lib/dockcheck/ogrn.rb +3 -5
- data/lib/dockcheck/ogrnip.rb +3 -5
- data/lib/dockcheck/snils.rb +3 -4
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4db77327141c60927c497dac9420f9f054810d1812cee41565a7a0bb5ce1524a
|
|
4
|
+
data.tar.gz: cb28c66b5914807ae53ed9509068a7d269285ff76c9350d0852b6021e194befc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 94e25d852a60b6dc4518fb98aa07da7ef09f1ab636204d79d1397df48cf69f2d516ec74e200eef076e8d5843533cdf3b46e4324cca8271519e4fda28b2e93964
|
|
7
|
+
data.tar.gz: b5ce4d3d479da2c0fbcdea780686dc67fbb40f8b40473669142c5809e0ddf885f2718b80a878c936e2702dadc1224249c15942946a7b9bdc35c50518728e9c97
|
data/lib/dockcheck.rb
CHANGED
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
class DockCheck
|
|
4
4
|
@current_checker
|
|
5
|
+
@checkers_map
|
|
5
6
|
|
|
6
7
|
def initialize(checker = :inn)
|
|
8
|
+
@checkers_map = {inn: Inn, snils: Snils, bik: Bik, kpp: Kpp, ogrnip: Ogrnip, ogrn: Ogrn}
|
|
7
9
|
dispatch(checker)
|
|
8
10
|
self
|
|
9
11
|
end
|
|
@@ -12,6 +14,15 @@ class DockCheck
|
|
|
12
14
|
@current_checker.check(numbers, *other_data)
|
|
13
15
|
end
|
|
14
16
|
|
|
17
|
+
def check_many(documents)
|
|
18
|
+
documents.each do |document|
|
|
19
|
+
checker = document[:type]
|
|
20
|
+
doc = document[:content]
|
|
21
|
+
extra = document[:extra]
|
|
22
|
+
document[:correct] = @checkers_map[checker].new.check(doc, extra)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
15
26
|
def change_checker(checker)
|
|
16
27
|
dispatch(checker)
|
|
17
28
|
self
|
|
@@ -23,10 +34,8 @@ class DockCheck
|
|
|
23
34
|
|
|
24
35
|
private
|
|
25
36
|
def dispatch(checker)
|
|
26
|
-
checkers_map
|
|
27
|
-
|
|
28
|
-
if checkers_map.key?(checker.to_sym)
|
|
29
|
-
@current_checker = checkers_map[checker].new
|
|
37
|
+
if @checkers_map.key?(checker.to_sym)
|
|
38
|
+
@current_checker = @checkers_map[checker].new
|
|
30
39
|
else
|
|
31
40
|
raise 'Incorrect checker!'
|
|
32
41
|
end
|
|
@@ -34,4 +43,3 @@ class DockCheck
|
|
|
34
43
|
end
|
|
35
44
|
|
|
36
45
|
Dir[File.join(__dir__, 'dockcheck', '*.rb')].each { |file| require file }
|
|
37
|
-
|
data/lib/dockcheck/bik.rb
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require "#{__dir__}/dockhelper.rb"
|
|
4
|
+
|
|
3
5
|
class DockCheck::Bik
|
|
4
6
|
|
|
5
7
|
def check(bik, _)
|
|
6
8
|
case bik.length
|
|
7
9
|
when 9
|
|
8
|
-
|
|
10
|
+
DockHelper.only_digits?(bik)
|
|
9
11
|
else
|
|
10
12
|
raise StandardError.new 'Incorrect bik numbers count!'
|
|
11
13
|
end
|
|
@@ -15,9 +17,4 @@ class DockCheck::Bik
|
|
|
15
17
|
:bik
|
|
16
18
|
end
|
|
17
19
|
|
|
18
|
-
private
|
|
19
|
-
|
|
20
|
-
def bik_valid?(bik)
|
|
21
|
-
bik.scan(/\D/).empty?
|
|
22
|
-
end
|
|
23
20
|
end
|
data/lib/dockcheck/inn.rb
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require "#{__dir__}/dockhelper.rb"
|
|
4
|
+
|
|
3
5
|
class DockCheck::Inn
|
|
4
6
|
@@ten_digits_map = [2, 4, 10, 3, 5, 9, 4, 6, 8]
|
|
5
7
|
@@twelve_digits_first_map = [7, 2, 4, 10, 3, 5, 9, 4, 6, 8]
|
|
6
8
|
@@twelve_digits_second_map = [3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8]
|
|
7
9
|
|
|
8
10
|
def check(numbers, _)
|
|
9
|
-
inn =
|
|
11
|
+
inn = DockHelper.numberize_document(numbers)
|
|
10
12
|
case inn.count
|
|
11
13
|
when 10
|
|
12
14
|
ten_digit_inn_valid?(inn)
|
|
@@ -22,9 +24,6 @@ class DockCheck::Inn
|
|
|
22
24
|
end
|
|
23
25
|
|
|
24
26
|
private
|
|
25
|
-
def prepare_inn(numbers)
|
|
26
|
-
numbers.split('').map(&:to_i)
|
|
27
|
-
end
|
|
28
27
|
|
|
29
28
|
def control_sum_calc(inn, coefficients)
|
|
30
29
|
inn
|
data/lib/dockcheck/ogrn.rb
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require "#{__dir__}/dockhelper.rb"
|
|
4
|
+
|
|
3
5
|
class DockCheck::Ogrn
|
|
4
6
|
|
|
5
7
|
def check(ogrn, _)
|
|
6
8
|
case ogrn.length
|
|
7
9
|
when 13
|
|
8
|
-
if only_digits?(ogrn)
|
|
10
|
+
if DockHelper.only_digits?(ogrn)
|
|
9
11
|
ogrn_valid?(ogrn)
|
|
10
12
|
else
|
|
11
13
|
false
|
|
@@ -21,10 +23,6 @@ class DockCheck::Ogrn
|
|
|
21
23
|
|
|
22
24
|
private
|
|
23
25
|
|
|
24
|
-
def only_digits?(ogrn)
|
|
25
|
-
ogrn.scan(/\D/).empty?
|
|
26
|
-
end
|
|
27
|
-
|
|
28
26
|
def ogrn_valid?(ogrn)
|
|
29
27
|
first_code = ogrn[0..12].to_i
|
|
30
28
|
second_code = (first_code / 11).floor * 11
|
data/lib/dockcheck/ogrnip.rb
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require "#{__dir__}/dockhelper.rb"
|
|
4
|
+
|
|
3
5
|
class DockCheck::Ogrnip
|
|
4
6
|
|
|
5
7
|
def check(ogrnip, _)
|
|
6
8
|
case ogrnip.length
|
|
7
9
|
when 15
|
|
8
|
-
if only_digits?(ogrnip)
|
|
10
|
+
if DockHelper.only_digits?(ogrnip)
|
|
9
11
|
ogrnip_valid?(ogrnip)
|
|
10
12
|
else
|
|
11
13
|
false
|
|
@@ -21,10 +23,6 @@ class DockCheck::Ogrnip
|
|
|
21
23
|
|
|
22
24
|
private
|
|
23
25
|
|
|
24
|
-
def only_digits?(ogrnip)
|
|
25
|
-
ogrnip.scan(/\D/).empty?
|
|
26
|
-
end
|
|
27
|
-
|
|
28
26
|
def ogrnip_valid?(ogrnip)
|
|
29
27
|
first_code = ogrnip[0..13].to_i
|
|
30
28
|
second_code = (first_code / 13).floor * 13
|
data/lib/dockcheck/snils.rb
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require "#{__dir__}/dockhelper.rb"
|
|
4
|
+
|
|
3
5
|
class DockCheck::Snils
|
|
4
6
|
@@coefficients_map = [9, 8, 7, 6, 5, 4, 3, 2, 1]
|
|
5
7
|
|
|
6
8
|
def check(numbers, _)
|
|
7
|
-
snils =
|
|
9
|
+
snils = DockHelper.numberize_document(numbers)
|
|
8
10
|
case snils.count
|
|
9
11
|
when 11
|
|
10
12
|
last_digits = numbers.slice(9, 10).to_i
|
|
@@ -19,9 +21,6 @@ class DockCheck::Snils
|
|
|
19
21
|
end
|
|
20
22
|
|
|
21
23
|
private
|
|
22
|
-
def prepare_snils(numbers)
|
|
23
|
-
numbers.split('').map(&:to_i)
|
|
24
|
-
end
|
|
25
24
|
|
|
26
25
|
def control_sum_calc(inn, coefficients)
|
|
27
26
|
inn
|
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.5.
|
|
4
|
+
version: 1.5.2
|
|
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-
|
|
11
|
+
date: 2021-07-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rspec
|
|
@@ -32,6 +32,7 @@ extra_rdoc_files: []
|
|
|
32
32
|
files:
|
|
33
33
|
- lib/dockcheck.rb
|
|
34
34
|
- lib/dockcheck/bik.rb
|
|
35
|
+
- lib/dockcheck/dockhelper.rb
|
|
35
36
|
- lib/dockcheck/inn.rb
|
|
36
37
|
- lib/dockcheck/kpp.rb
|
|
37
38
|
- lib/dockcheck/ogrn.rb
|