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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f87a0179e7d9a30eca6a5b2e58a928869bc8fd25b388ee00af1fb50b2dbc3cc7
4
- data.tar.gz: 8f0258a734b2918ec9acaf50faf371c2c6b79911d46718619e0b00c504a390a0
3
+ metadata.gz: 3d171f2c4d241e2c32f77cdcff6c0d81d9db7db81467610873126be57fe36649
4
+ data.tar.gz: a99ba98ec717d4ee3178cef11bff8f323146f7a5ea237aa62ac9888bfb8a9214
5
5
  SHA512:
6
- metadata.gz: a66a392e3167a048915e43b0acae510495029a4b544cdb7435b626ff46d16c8e2fc128616fc8730244ad8e3121659e252771252fea7ea8d93ecab1001714f61c
7
- data.tar.gz: 7e85b1bb7a6e38fbd461be294ce9e2a5daa1d35c9d50efd05d3d43fab036f0d087eb6426af97cb6d352d43b4ec62a153914f9a60086e2c41f160ab7312545b62
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
- require 'dockcheck/inn'
33
- require 'dockcheck/snils'
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 { |n| n.to_i }
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
@@ -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 { |n| n.to_i }
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.0.0
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-14 00:00:00.000000000 Z
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: