cz_faker 0.0.5 → 0.0.6

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
  SHA1:
3
- metadata.gz: bb54e3a921c2956d24b2f7a2af444216bdd3897c
4
- data.tar.gz: fa90d227156d22500d557cb32ebb3fb88d51ca46
3
+ metadata.gz: abc5bfb80d38eb5d23d5d924f9969070af3921fe
4
+ data.tar.gz: 7e21c76fcc5db2ae9a2aa5f4c03be17026d03ae8
5
5
  SHA512:
6
- metadata.gz: 25b538da3a77b1199856f3d4ce8206cd9815b7a0df4f23408aac7e689165031655fd7bb0edfce44f0727c51e537a1afcf3344c5b598ba06f33d1c578cb84aa88
7
- data.tar.gz: 56f40ed5c48b600a3c9a0720f9527a620f447212347ded650332c9a7e5b7c770e65a26f04ff643f2d38e411d69f032b36dcb60684b55e98eb3c7d3a8d92d25c5
6
+ metadata.gz: 1e66154181d299f25a0d8f684f5dbc979f29ccc9a27eedcad7f66e8ee10623d8ac9866770be4949f4792f70fcdb49aabf85b452f5818852a5a17379eaa1add9b
7
+ data.tar.gz: 5b98a68023fa97f5007c96ae384dcbf0a08688ffe4700c4289e8a30219ed906f5525cbce3976ee7450452dc0a2876f2e7fb590d68b367e5badb2e2e943efc44f
@@ -49,6 +49,17 @@ module CzFaker
49
49
  credit_card(type).chars.each_slice(4).map(&:join).join(" ")
50
50
  end
51
51
 
52
+ def sipo
53
+ base = []
54
+ sum = 0
55
+ CzFaker::Data::SIPO_NUMBER_WEIGHTS.each do |weight|
56
+ base << Number.integer(1).to_i
57
+ sum += (weight * base.last)
58
+ end
59
+ base << (10 - (sum % 10)) % 10
60
+ base.join.to_i.to_s
61
+ end
62
+
52
63
  private
53
64
 
54
65
  def load_codes
@@ -5,15 +5,15 @@ module CzFaker
5
5
  EAN_LENGTH = 18
6
6
  EIC_LENGTH = 16
7
7
  GAS_DISTRIBUTORS = [
8
- { name: "RWE GasNet", code: "RWE", prefixes: %w[ 27ZG2 27ZG3 27ZG4 27ZG5 27ZG6 27ZG7 27ZG8]},
9
- { name: "E.ON Distribuce", code: "EON", prefixes: %w[ 27ZG9 ] },
10
- { name: "Pražská Plynárenská", code: "PP", prefixes: %w[ 27ZG1 ]}
8
+ { name: "RWE GasNet", code: :RWE, prefixes: %w[ 27ZG2 27ZG3 27ZG4 27ZG5 27ZG6 27ZG7 27ZG8]},
9
+ { name: "E.ON Distribuce", code: :EON, prefixes: %w[ 27ZG9 ] },
10
+ { name: "Pražská Plynárenská", code: :PP, prefixes: %w[ 27ZG1 ]}
11
11
  ].freeze
12
12
  GAS_TYPES = %w[ N Z V ].freeze
13
13
  ELECTRICITY_DISTRIBUTORS = [
14
- { name: "ČEZ Distribuce", code: "CEZ", prefixes: %w[ 8591824004 8591824005 8591824006 8591824007 8591824008 ] },
15
- { name: "E.ON Distribuce", code: "EON", prefixes: %w[ 8591824001 8591824002 ] },
16
- { name: "PREdistribuce", code: "PRE", prefixes: %w[ 8591824003 ] }
14
+ { name: "ČEZ Distribuce", code: :CEZ, prefixes: %w[ 8591824004 8591824005 8591824006 8591824007 8591824008 ] },
15
+ { name: "E.ON Distribuce", code: :EON, prefixes: %w[ 8591824001 8591824002 ] },
16
+ { name: "PREdistribuce", code: :PRE, prefixes: %w[ 8591824003 ] }
17
17
  ].freeze
18
18
  COMODITIES = %w[ plyn elektřina ].freeze
19
19
 
@@ -38,6 +38,7 @@ module CzFaker
38
38
  }.freeze
39
39
  CARD_TYPES = %i[ visa maestro master_card ].freeze
40
40
  ACCOUNT_NUMBER_WEIGHTS = [ 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ].freeze
41
+ SIPO_NUMBER_WEIGHTS = [3, 7, 3, 1, 7, 3, 1, 7, 3].freeze
41
42
 
42
43
  # PHONE NUMBER
43
44
  CELL_PREFIXES = ((601..608).to_a + (702..799).to_a).map(&:to_s).freeze
@@ -19,7 +19,7 @@ module CzFaker
19
19
 
20
20
  def unix_timestamp(now = true)
21
21
  if now
22
- Time.now().to_i
22
+ Time.now.to_i
23
23
  else
24
24
  Time.parse(random_date).to_i
25
25
  end
@@ -49,7 +49,7 @@ module CzFaker
49
49
  return CzFaker::Data::ELECTRICITY_DISTRIBUTORS.sample unless code
50
50
 
51
51
  CzFaker::Data::ELECTRICITY_DISTRIBUTORS.each do |dist|
52
- return dist if dist[:code] == code
52
+ return dist if dist[:code] == code.to_sym
53
53
  end
54
54
  end
55
55
 
@@ -57,7 +57,7 @@ module CzFaker
57
57
  return CzFaker::Data::GAS_DISTRIBUTORS.sample unless code
58
58
 
59
59
  CzFaker::Data::GAS_DISTRIBUTORS.each do |dist|
60
- return dist if dist[:code] == code
60
+ return dist if dist[:code] == code.to_sym
61
61
  end
62
62
  end
63
63
 
@@ -74,9 +74,9 @@ module CzFaker
74
74
  def eic_char_to_int(char)
75
75
  if char == '-'
76
76
  36
77
- elsif char.match(/\A\d+\z/)
77
+ elsif char.match?(/\A\d+\z/)
78
78
  char.to_i
79
- elsif char.match(/\A[A-Za-z]\z/)
79
+ elsif char.match?(/\A[A-Za-z]\z/)
80
80
  char.upcase.ord - 'A'.ord + 10
81
81
  else
82
82
  -1
@@ -1,3 +1,5 @@
1
+ require 'date'
2
+
1
3
  module CzFaker
2
4
  class Person < CzFaker::Base
3
5
  class << self
@@ -32,6 +32,14 @@ module CzFaker
32
32
  code.size == 4
33
33
  end
34
34
 
35
+ def sipo?(sipo_number)
36
+ sum = 0
37
+ CzFaker::Data::SIPO_NUMBER_WEIGHTS.each_with_index do |weight, index|
38
+ sum += sipo_number[index].to_i * weight
39
+ end
40
+ (10 - (sum % 10)) % 10 == sipo_number[-1].to_i
41
+ end
42
+
35
43
  private
36
44
 
37
45
  def credit_card_issuer(card_number)
@@ -58,9 +58,9 @@ module CzFaker
58
58
  def eic_char_to_int(char)
59
59
  if char == '-'
60
60
  36
61
- elsif char.match(/\A\d+\z/)
61
+ elsif char.match?(/\A\d+\z/)
62
62
  char.to_i
63
- elsif char.match(/\A[A-Za-z]\z/)
63
+ elsif char.match?(/\A[A-Za-z]\z/)
64
64
  char.upcase.ord - 'A'.ord + 10
65
65
  else
66
66
  -1
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cz_faker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jindrich Skupa (@eMan)