cz_faker 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
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)