dockcheck 1.1.0 → 1.5.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 +4 -4
- data/lib/dockcheck.rb +3 -3
- data/lib/dockcheck/bik.rb +23 -0
- data/lib/dockcheck/inn.rb +1 -1
- data/lib/dockcheck/kpp.rb +23 -0
- data/lib/dockcheck/ogrn.rb +34 -0
- data/lib/dockcheck/ogrnip.rb +34 -0
- data/lib/dockcheck/snils.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ae7aaa0ca2abb56b55e0ff11c0b816ec17e4e7626ed22bdea52700d971383686
|
|
4
|
+
data.tar.gz: b5574801c3f3dc57dfa68d709c498eb0c1de1c8875bc8f501832f9d04dc1064f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 365180ad497aaf40d805dfc377516e474cce8c0e041ef756372f3e929a3409bb0e6fa0c6d7ac705c0374f42c620c3c080108d433de0ee1cfd36020bed0117d09
|
|
7
|
+
data.tar.gz: b66ae04b7c81c9ddfd1a00359a3e3b861f5c2118b4a80dcf223b294617242a2997fd73fe91256bd39cff0ea85a4ff0fff8381d7afb1fc312d5df412c1cb05fcb
|
data/lib/dockcheck.rb
CHANGED
|
@@ -23,7 +23,7 @@ class DockCheck
|
|
|
23
23
|
|
|
24
24
|
private
|
|
25
25
|
def dispatch(checker)
|
|
26
|
-
checkers_map = {inn: Inn, snils: Snils}
|
|
26
|
+
checkers_map = {inn: Inn, snils: Snils, bik: Bik, kpp: Kpp, ogrnip: Ogrnip, ogrn: Ogrn}
|
|
27
27
|
|
|
28
28
|
if checkers_map.key?(checker.to_sym)
|
|
29
29
|
@current_checker = checkers_map[checker].new
|
|
@@ -33,5 +33,5 @@ class DockCheck
|
|
|
33
33
|
end
|
|
34
34
|
end
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|
|
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
|
@@ -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
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class DockCheck::Ogrn
|
|
4
|
+
|
|
5
|
+
def check(ogrn, _)
|
|
6
|
+
case ogrn.length
|
|
7
|
+
when 13
|
|
8
|
+
if only_digits?(ogrn)
|
|
9
|
+
ogrn_valid?(ogrn)
|
|
10
|
+
else
|
|
11
|
+
false
|
|
12
|
+
end
|
|
13
|
+
else
|
|
14
|
+
raise StandardError.new 'Incorrect ogrn numbers count!'
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def name
|
|
19
|
+
:ogrn
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
private
|
|
23
|
+
|
|
24
|
+
def only_digits?(ogrn)
|
|
25
|
+
ogrn.scan(/\D/).empty?
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def ogrn_valid?(ogrn)
|
|
29
|
+
first_code = ogrn[0..12].to_i
|
|
30
|
+
second_code = (first_code / 11).floor * 11
|
|
31
|
+
result_sum = (first_code - second_code) % 10
|
|
32
|
+
result_sum == ogrn[13].to_i
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class DockCheck::Ogrnip
|
|
4
|
+
|
|
5
|
+
def check(ogrnip, _)
|
|
6
|
+
case ogrnip.length
|
|
7
|
+
when 15
|
|
8
|
+
if only_digits?(ogrnip)
|
|
9
|
+
ogrnip_valid?(ogrnip)
|
|
10
|
+
else
|
|
11
|
+
false
|
|
12
|
+
end
|
|
13
|
+
else
|
|
14
|
+
raise StandardError.new 'Incorrect ogrnip numbers count!'
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def name
|
|
19
|
+
:ogrnip
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
private
|
|
23
|
+
|
|
24
|
+
def only_digits?(ogrnip)
|
|
25
|
+
ogrnip.scan(/\D/).empty?
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def ogrnip_valid?(ogrnip)
|
|
29
|
+
first_code = ogrnip[0..13].to_i
|
|
30
|
+
second_code = (first_code / 13).floor * 13
|
|
31
|
+
result_sum = (first_code - second_code) % 10
|
|
32
|
+
result_sum == ogrnip[14].to_i
|
|
33
|
+
end
|
|
34
|
+
end
|
data/lib/dockcheck/snils.rb
CHANGED
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.5.0
|
|
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,11 @@ 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
|
|
37
|
+
- lib/dockcheck/ogrn.rb
|
|
38
|
+
- lib/dockcheck/ogrnip.rb
|
|
35
39
|
- lib/dockcheck/snils.rb
|
|
36
40
|
homepage: https://rubygems.org/gems/dockcheck
|
|
37
41
|
licenses:
|