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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ae7aaa0ca2abb56b55e0ff11c0b816ec17e4e7626ed22bdea52700d971383686
4
- data.tar.gz: b5574801c3f3dc57dfa68d709c498eb0c1de1c8875bc8f501832f9d04dc1064f
3
+ metadata.gz: 4db77327141c60927c497dac9420f9f054810d1812cee41565a7a0bb5ce1524a
4
+ data.tar.gz: cb28c66b5914807ae53ed9509068a7d269285ff76c9350d0852b6021e194befc
5
5
  SHA512:
6
- metadata.gz: 365180ad497aaf40d805dfc377516e474cce8c0e041ef756372f3e929a3409bb0e6fa0c6d7ac705c0374f42c620c3c080108d433de0ee1cfd36020bed0117d09
7
- data.tar.gz: b66ae04b7c81c9ddfd1a00359a3e3b861f5c2118b4a80dcf223b294617242a2997fd73fe91256bd39cff0ea85a4ff0fff8381d7afb1fc312d5df412c1cb05fcb
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 = {inn: Inn, snils: Snils, bik: Bik, kpp: Kpp, ogrnip: Ogrnip, ogrn: Ogrn}
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
- bik_valid?(bik)
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
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ class DockHelper
4
+
5
+ def self.numberize_document(numbers)
6
+ numbers.split('').map(&:to_i)
7
+ end
8
+
9
+ def self.only_digits?(document)
10
+ document.scan(/\D/).empty?
11
+ end
12
+
13
+ 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 = prepare_inn(numbers)
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
@@ -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
@@ -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
@@ -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 = prepare_snils(numbers)
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.0
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-06-27 00:00:00.000000000 Z
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