ffaker 2.6.0 → 2.7.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/Changelog.md +5 -0
- data/README.md +8 -0
- data/REFERENCE.md +21 -1
- data/Rakefile +1 -1
- data/ffaker.gemspec +6 -6
- data/lib/ffaker.rb +2 -2
- data/lib/ffaker/address.rb +9 -9
- data/lib/ffaker/address_au.rb +2 -2
- data/lib/ffaker/address_br.rb +2 -2
- data/lib/ffaker/address_ca.rb +2 -2
- data/lib/ffaker/address_da.rb +2 -2
- data/lib/ffaker/address_de.rb +2 -2
- data/lib/ffaker/address_fi.rb +1 -2
- data/lib/ffaker/address_fr.rb +1 -1
- data/lib/ffaker/address_gr.rb +2 -2
- data/lib/ffaker/address_id.rb +1 -1
- data/lib/ffaker/address_in.rb +3 -5
- data/lib/ffaker/address_kr.rb +9 -8
- data/lib/ffaker/address_mx.rb +2 -2
- data/lib/ffaker/address_nl.rb +1 -1
- data/lib/ffaker/address_pl.rb +5 -5
- data/lib/ffaker/address_ru.rb +1 -1
- data/lib/ffaker/address_ua.rb +3 -3
- data/lib/ffaker/address_us.rb +2 -2
- data/lib/ffaker/avatar.rb +1 -1
- data/lib/ffaker/book.rb +2 -2
- data/lib/ffaker/boolean.rb +1 -1
- data/lib/ffaker/cheesy_lingo.rb +2 -2
- data/lib/ffaker/color.rb +2 -2
- data/lib/ffaker/company.rb +6 -6
- data/lib/ffaker/company_cn.rb +2 -2
- data/lib/ffaker/company_it.rb +18 -2
- data/lib/ffaker/company_se.rb +4 -4
- data/lib/ffaker/data/company_it/piva_office_codes +99 -0
- data/lib/ffaker/education.rb +8 -8
- data/lib/ffaker/filesystem.rb +3 -3
- data/lib/ffaker/food.rb +1 -1
- data/lib/ffaker/gender.rb +1 -1
- data/lib/ffaker/gender_br.rb +1 -1
- data/lib/ffaker/gender_cn.rb +1 -1
- data/lib/ffaker/gender_id.rb +1 -1
- data/lib/ffaker/gender_kr.rb +1 -1
- data/lib/ffaker/html_ipsum.rb +4 -4
- data/lib/ffaker/identification.rb +1 -1
- data/lib/ffaker/identification_br.rb +1 -1
- data/lib/ffaker/identification_es.rb +1 -1
- data/lib/ffaker/identification_es_cl.rb +2 -2
- data/lib/ffaker/identification_es_co.rb +5 -5
- data/lib/ffaker/identification_mx.rb +4 -4
- data/lib/ffaker/internet.rb +9 -9
- data/lib/ffaker/internet_se.rb +6 -8
- data/lib/ffaker/job_fr.rb +2 -2
- data/lib/ffaker/lorem.rb +2 -2
- data/lib/ffaker/lorem_ar.rb +2 -2
- data/lib/ffaker/lorem_cn.rb +2 -2
- data/lib/ffaker/lorem_fr.rb +2 -2
- data/lib/ffaker/lorem_kr.rb +2 -2
- data/lib/ffaker/lorem_ru.rb +2 -2
- data/lib/ffaker/lorem_ua.rb +3 -3
- data/lib/ffaker/movie.rb +7 -7
- data/lib/ffaker/name.rb +4 -11
- data/lib/ffaker/name_br.rb +2 -2
- data/lib/ffaker/name_cs.rb +13 -11
- data/lib/ffaker/name_da.rb +3 -3
- data/lib/ffaker/name_de.rb +2 -2
- data/lib/ffaker/name_fr.rb +2 -4
- data/lib/ffaker/name_ga.rb +3 -10
- data/lib/ffaker/name_gr.rb +3 -3
- data/lib/ffaker/name_id.rb +2 -2
- data/lib/ffaker/name_it.rb +3 -6
- data/lib/ffaker/name_mx.rb +8 -8
- data/lib/ffaker/name_nb.rb +3 -4
- data/lib/ffaker/name_nl.rb +5 -5
- data/lib/ffaker/name_ph.rb +4 -6
- data/lib/ffaker/name_pl.rb +4 -4
- data/lib/ffaker/name_ru.rb +14 -12
- data/lib/ffaker/name_se.rb +3 -4
- data/lib/ffaker/name_sn.rb +13 -19
- data/lib/ffaker/name_ua.rb +1 -1
- data/lib/ffaker/nato_alphabet.rb +2 -2
- data/lib/ffaker/phone_number.rb +16 -16
- data/lib/ffaker/phone_number_au.rb +7 -7
- data/lib/ffaker/phone_number_br.rb +7 -7
- data/lib/ffaker/phone_number_ch.rb +7 -7
- data/lib/ffaker/phone_number_cu.rb +10 -10
- data/lib/ffaker/phone_number_de.rb +2 -2
- data/lib/ffaker/phone_number_fr.rb +4 -4
- data/lib/ffaker/phone_number_id.rb +1 -1
- data/lib/ffaker/phone_number_kr.rb +4 -4
- data/lib/ffaker/phone_number_mx.rb +2 -2
- data/lib/ffaker/phone_number_nl.rb +3 -3
- data/lib/ffaker/phone_number_se.rb +3 -3
- data/lib/ffaker/phone_number_sg.rb +1 -1
- data/lib/ffaker/phone_number_sn.rb +5 -5
- data/lib/ffaker/product.rb +9 -9
- data/lib/ffaker/ssn_se.rb +4 -4
- data/lib/ffaker/string.rb +3 -3
- data/lib/ffaker/time.rb +6 -1
- data/lib/ffaker/utils/module_utils.rb +5 -0
- data/lib/ffaker/utils/unique_utils.rb +45 -0
- data/lib/ffaker/vehicle.rb +5 -5
- data/scripts/reference.rb +1 -1
- data/test/test_address_gr.rb +5 -5
- data/test/test_address_ja.rb +2 -1
- data/test/test_address_kr.rb +1 -0
- data/test/test_array_utils.rb +3 -3
- data/test/test_color.rb +1 -1
- data/test/test_company_it.rb +5 -1
- data/test/test_identification_es_mx.rb +1 -1
- data/test/test_module_utils.rb +1 -1
- data/test/test_name_ar.rb +4 -6
- data/test/test_name_cs.rb +2 -2
- data/test/test_name_ja.rb +2 -2
- data/test/test_name_ru.rb +2 -2
- data/test/test_phone_number.rb +2 -2
- data/test/test_string.rb +1 -1
- data/test/test_time.rb +9 -1
- data/test/test_unique_utils.rb +54 -0
- metadata +6 -2
data/lib/ffaker/address_us.rb
CHANGED
@@ -10,8 +10,8 @@ module FFaker
|
|
10
10
|
extend self
|
11
11
|
|
12
12
|
ZIP_FORMATS = ['#####', '#####-####'].freeze
|
13
|
-
CONTINENTAL_STATE = (STATE - %w
|
14
|
-
CONTINENTAL_STATE_ABBR = (STATE_ABBR - %w
|
13
|
+
CONTINENTAL_STATE = (STATE - %w[Hawaii Alaska])
|
14
|
+
CONTINENTAL_STATE_ABBR = (STATE_ABBR - %w[HI AK])
|
15
15
|
|
16
16
|
def zip_code
|
17
17
|
FFaker.numerify(fetch_sample(ZIP_FORMATS))
|
data/lib/ffaker/avatar.rb
CHANGED
@@ -5,7 +5,7 @@ module FFaker
|
|
5
5
|
extend ModuleUtils
|
6
6
|
extend self
|
7
7
|
|
8
|
-
SUPPORTED_FORMATS = %w
|
8
|
+
SUPPORTED_FORMATS = %w[png jpg bmp].freeze
|
9
9
|
|
10
10
|
def image(slug = nil, size = '300x300', format = 'png', bgset = nil)
|
11
11
|
raise ArgumentError, 'Size should be specified in format 300x300' unless size =~ /^[0-9]+x[0-9]+$/
|
data/lib/ffaker/book.rb
CHANGED
@@ -6,7 +6,7 @@ module FFaker
|
|
6
6
|
extend self
|
7
7
|
|
8
8
|
def title
|
9
|
-
case rand(
|
9
|
+
case rand(0..1)
|
10
10
|
when 0 then simple_title
|
11
11
|
when 1 then title_with_prefix
|
12
12
|
end
|
@@ -21,7 +21,7 @@ module FFaker
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def isbn
|
24
|
-
|
24
|
+
rand(1_000_000_000...25_000_000_000).to_s
|
25
25
|
end
|
26
26
|
|
27
27
|
def description(sentence_count = 3)
|
data/lib/ffaker/boolean.rb
CHANGED
data/lib/ffaker/cheesy_lingo.rb
CHANGED
@@ -7,8 +7,8 @@ module FFaker
|
|
7
7
|
extend ModuleUtils
|
8
8
|
extend self
|
9
9
|
|
10
|
-
TITLE_1 = %w
|
11
|
-
TITLE_2 = %w
|
10
|
+
TITLE_1 = %w[Sharp Soft Nutty Smokey Melting Cheeky Fat Dutch Grated Cheesed Milky].freeze
|
11
|
+
TITLE_2 = %w[Gouda Affineurs Alpine Sheep Cows Brie Goats Coulommiers Dairy].freeze
|
12
12
|
|
13
13
|
def title
|
14
14
|
"#{fetch_sample(TITLE_1)} #{fetch_sample(TITLE_2)}"
|
data/lib/ffaker/color.rb
CHANGED
data/lib/ffaker/company.rb
CHANGED
@@ -5,15 +5,15 @@ module FFaker
|
|
5
5
|
extend ModuleUtils
|
6
6
|
extend self
|
7
7
|
|
8
|
-
SUFFIXES = %w
|
9
|
-
POSITION_PREFIXES = %w
|
10
|
-
POSITIONS = %w
|
8
|
+
SUFFIXES = %w[Inc and\ Sons LLC Group].freeze
|
9
|
+
POSITION_PREFIXES = %w[Executive Assistant General Associate].freeze
|
10
|
+
POSITIONS = %w[President Manager Director Secretary Consultant].freeze
|
11
11
|
|
12
12
|
def name
|
13
|
-
case rand(
|
13
|
+
case rand(0..2)
|
14
14
|
when 0 then "#{Name.last_name} #{suffix}"
|
15
15
|
when 1 then "#{Name.last_name}-#{Name.last_name}"
|
16
|
-
when 2 then '%s, %s and %s'
|
16
|
+
when 2 then format('%s, %s and %s', Name.last_name, Name.last_name, Name.last_name)
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
@@ -34,7 +34,7 @@ module FFaker
|
|
34
34
|
end
|
35
35
|
|
36
36
|
def position
|
37
|
-
case rand(
|
37
|
+
case rand(0..2)
|
38
38
|
when 0 then
|
39
39
|
[fetch_sample(POSITION_PREFIXES), fetch_sample(POSITIONS)]
|
40
40
|
when 1 then
|
data/lib/ffaker/company_cn.rb
CHANGED
data/lib/ffaker/company_it.rb
CHANGED
@@ -6,10 +6,10 @@ module FFaker
|
|
6
6
|
extend self
|
7
7
|
|
8
8
|
PREFIXES = ['Studio Legale', 'Studio Tecnico', 'Laboratorio'].freeze
|
9
|
-
SUFFIXES = %w
|
9
|
+
SUFFIXES = %w[S.p.a. s.r.l. s.n.c. Avvocati Architetti Ingegneri].freeze
|
10
10
|
|
11
11
|
def name
|
12
|
-
case rand(2)
|
12
|
+
case rand(0..2)
|
13
13
|
when 0 then "#{NameIT.last_name} #{suffix}"
|
14
14
|
when 1 then "#{NameIT.last_name} e #{NameIT.last_name} #{suffix}"
|
15
15
|
when 2 then "#{prefix} #{NameIT.last_name}"
|
@@ -23,5 +23,21 @@ module FFaker
|
|
23
23
|
def prefix
|
24
24
|
fetch_sample(PREFIXES)
|
25
25
|
end
|
26
|
+
|
27
|
+
# Calculated using the algorithm at https://it.wikipedia.org/wiki/Partita_IVA
|
28
|
+
# to return a valid Partita IVA (Italian VAT number)
|
29
|
+
# @return a valid Italian VAT number (Partita IVA)
|
30
|
+
def partita_iva
|
31
|
+
matricola = Array.new(7) { rand(0..9) }
|
32
|
+
office_code = fetch_sample(PIVA_OFFICE_CODES)
|
33
|
+
base = matricola + office_code.chars.map(&:to_i)
|
34
|
+
|
35
|
+
# Thanks https://stackoverflow.com/a/9189731/1627766
|
36
|
+
sum = base.reverse.each_slice(2).flat_map { |x, y| [(x * 2).divmod(10), y || 0] }.flatten.reduce(:+)
|
37
|
+
|
38
|
+
control_digit = (10 - (sum % 10)) % 10
|
39
|
+
|
40
|
+
(base << control_digit).join
|
41
|
+
end
|
26
42
|
end
|
27
43
|
end
|
data/lib/ffaker/company_se.rb
CHANGED
@@ -5,14 +5,14 @@ module FFaker
|
|
5
5
|
extend ModuleUtils
|
6
6
|
extend self
|
7
7
|
|
8
|
-
SUFFIXES = %w
|
8
|
+
SUFFIXES = %w[AB Aktiebolag Ab].freeze
|
9
9
|
|
10
10
|
def name
|
11
|
-
case rand(3)
|
11
|
+
case rand(0..3)
|
12
12
|
when 0 then "#{NameSE.last_name} #{suffix}"
|
13
13
|
when 1 then "#{NameSE.last_name}-#{NameSE.last_name}"
|
14
|
-
when
|
15
|
-
when
|
14
|
+
when 2 then "#{NameSE.last_name}-#{NameSE.last_name} #{suffix}"
|
15
|
+
when 3 then "#{NameSE.last_name}, #{NameSE.last_name} och #{NameSE.last_name}"
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
@@ -0,0 +1,99 @@
|
|
1
|
+
084
|
2
|
+
006
|
3
|
+
042
|
4
|
+
007
|
5
|
+
051
|
6
|
+
044
|
7
|
+
005
|
8
|
+
064
|
9
|
+
072
|
10
|
+
025
|
11
|
+
062
|
12
|
+
016
|
13
|
+
021
|
14
|
+
017
|
15
|
+
098
|
16
|
+
074
|
17
|
+
092
|
18
|
+
085
|
19
|
+
070
|
20
|
+
061
|
21
|
+
087
|
22
|
+
079
|
23
|
+
069
|
24
|
+
013
|
25
|
+
078
|
26
|
+
019
|
27
|
+
004
|
28
|
+
086
|
29
|
+
038
|
30
|
+
048
|
31
|
+
097
|
32
|
+
071
|
33
|
+
040
|
34
|
+
060
|
35
|
+
010
|
36
|
+
099
|
37
|
+
031
|
38
|
+
053
|
39
|
+
008
|
40
|
+
094
|
41
|
+
011
|
42
|
+
059
|
43
|
+
075
|
44
|
+
049
|
45
|
+
046
|
46
|
+
043
|
47
|
+
020
|
48
|
+
045
|
49
|
+
077
|
50
|
+
083
|
51
|
+
015
|
52
|
+
096
|
53
|
+
036
|
54
|
+
063
|
55
|
+
121
|
56
|
+
003
|
57
|
+
091
|
58
|
+
028
|
59
|
+
082
|
60
|
+
034
|
61
|
+
018
|
62
|
+
054
|
63
|
+
041
|
64
|
+
068
|
65
|
+
033
|
66
|
+
050
|
67
|
+
047
|
68
|
+
093
|
69
|
+
076
|
70
|
+
088
|
71
|
+
039
|
72
|
+
080
|
73
|
+
035
|
74
|
+
058
|
75
|
+
100
|
76
|
+
029
|
77
|
+
065
|
78
|
+
090
|
79
|
+
009
|
80
|
+
052
|
81
|
+
089
|
82
|
+
014
|
83
|
+
073
|
84
|
+
067
|
85
|
+
055
|
86
|
+
001
|
87
|
+
081
|
88
|
+
022
|
89
|
+
026
|
90
|
+
032
|
91
|
+
030
|
92
|
+
012
|
93
|
+
027
|
94
|
+
002
|
95
|
+
023
|
96
|
+
024
|
97
|
+
056
|
98
|
+
888
|
99
|
+
999
|
data/lib/ffaker/education.rb
CHANGED
@@ -5,11 +5,11 @@ module FFaker
|
|
5
5
|
extend ModuleUtils
|
6
6
|
extend self
|
7
7
|
|
8
|
-
MAJOR_ADJ = %w
|
9
|
-
SCHOOL_PREFIX = %w
|
10
|
-
SCHOOL_ADJ = %w
|
11
|
-
SCHOOL_TYPE = %w
|
12
|
-
SCHOOL_UNI = %w
|
8
|
+
MAJOR_ADJ = %w[Business Systems Industrial Medical Financial Marketing Political Social] + ['Human Resource']
|
9
|
+
SCHOOL_PREFIX = %w[Green South North Wind Lake Hill Lark River Red White].freeze
|
10
|
+
SCHOOL_ADJ = %w[International Global Polytechnic National].freeze
|
11
|
+
SCHOOL_TYPE = %w[School University College Institution Academy].freeze
|
12
|
+
SCHOOL_UNI = %w[University College].freeze
|
13
13
|
|
14
14
|
def degree_short
|
15
15
|
"#{fetch_sample(DEGREE_SHORT_PREFIX)} in #{major}"
|
@@ -28,15 +28,15 @@ module FFaker
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def school_generic_name
|
31
|
-
case rand(
|
31
|
+
case rand(0..1)
|
32
32
|
when 0 then fetch_sample(AddressUS::STATE)
|
33
33
|
when 1 then school_name
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
37
|
def school
|
38
|
-
case rand(
|
39
|
-
when
|
38
|
+
case rand(0..4)
|
39
|
+
when 0, 1 then
|
40
40
|
"#{school_name} #{fetch_sample(SCHOOL_TYPE)}"
|
41
41
|
when 2 then
|
42
42
|
"#{school_generic_name} #{fetch_sample(SCHOOL_ADJ)} #{fetch_sample(SCHOOL_TYPE)}"
|
data/lib/ffaker/filesystem.rb
CHANGED
@@ -5,7 +5,7 @@ module FFaker
|
|
5
5
|
extend ModuleUtils
|
6
6
|
extend self
|
7
7
|
|
8
|
-
SLUG_DELIMITERS = %w
|
8
|
+
SLUG_DELIMITERS = %w[- _ .].freeze
|
9
9
|
|
10
10
|
def extension
|
11
11
|
fetch_sample(EXTENSION)
|
@@ -16,8 +16,8 @@ module FFaker
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def file_name(dir = nil, name = nil, ext = nil, directory_separator = '/')
|
19
|
-
dir
|
20
|
-
name
|
19
|
+
dir ||= Internet.slug
|
20
|
+
name ||= Lorem.word.downcase
|
21
21
|
ext ||= extension
|
22
22
|
[dir, name].join(directory_separator) + ".#{ext}"
|
23
23
|
end
|
data/lib/ffaker/food.rb
CHANGED
data/lib/ffaker/gender.rb
CHANGED
data/lib/ffaker/gender_br.rb
CHANGED
data/lib/ffaker/gender_cn.rb
CHANGED
data/lib/ffaker/gender_id.rb
CHANGED
data/lib/ffaker/gender_kr.rb
CHANGED
data/lib/ffaker/html_ipsum.rb
CHANGED
@@ -96,13 +96,13 @@ module FFaker
|
|
96
96
|
|
97
97
|
def body
|
98
98
|
body = content_tag_for(:h1, words(2).capitalize)
|
99
|
-
rand(
|
99
|
+
rand(0..3).times do
|
100
100
|
body << content_tag_for(:p, fancy_string)
|
101
101
|
end
|
102
|
-
body << table(rand(
|
102
|
+
body << table(rand(0..3))
|
103
103
|
body << content_tag_for(:h2, words(2).capitalize)
|
104
104
|
body << content_tag_for(:ol) do |ol|
|
105
|
-
rand(
|
105
|
+
rand(0..3).times do
|
106
106
|
ol << content_tag_for(:li, paragraph(1))
|
107
107
|
end
|
108
108
|
end
|
@@ -111,7 +111,7 @@ module FFaker
|
|
111
111
|
end
|
112
112
|
body << content_tag_for(:h3, words(2).capitalize!)
|
113
113
|
body << content_tag_for(:ul) do |ul|
|
114
|
-
rand(
|
114
|
+
rand(0..3).times do
|
115
115
|
ul << content_tag_for(:li, paragraph(1))
|
116
116
|
end
|
117
117
|
end
|
@@ -6,7 +6,7 @@ module FFaker
|
|
6
6
|
extend self
|
7
7
|
|
8
8
|
ETHNICITIES = ['African American', 'Asian/Pacific Islander', 'Caucasian', 'Hispanic', 'Native American', 'Multiracial', 'Other', 'Prefer not to respond'].freeze
|
9
|
-
GENDERS = %w
|
9
|
+
GENDERS = %w[Male Female].freeze
|
10
10
|
|
11
11
|
def drivers_license
|
12
12
|
FFaker.bothify('?###-###-##-###-#').upcase
|
@@ -5,7 +5,7 @@ module FFaker
|
|
5
5
|
extend ModuleUtils
|
6
6
|
extend self
|
7
7
|
|
8
|
-
GENDERS = %w
|
8
|
+
GENDERS = %w[Feminino Masculino].freeze
|
9
9
|
CPF_VERIFICATION_MULTIPLIERS = [11, 10, 9, 8, 7, 6, 5, 4, 3, 2].freeze
|
10
10
|
CNPJ_VERIFICATION_MULTIPLIERS = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2].freeze
|
11
11
|
|
@@ -14,14 +14,14 @@ module FFaker
|
|
14
14
|
# The last Y is a modulo 11 validation code. In the case the result is 10, it will be replaced by a 'K' character
|
15
15
|
def rut
|
16
16
|
# Rut is gonna be between 1.000.000 and 24.999.999
|
17
|
-
n = rand(
|
17
|
+
n = rand(1_000_000...25_000_000)
|
18
18
|
"#{n}-#{dv(n)}"
|
19
19
|
end
|
20
20
|
|
21
21
|
private
|
22
22
|
|
23
23
|
def dv(rut)
|
24
|
-
total = rut.to_s.rjust(8, '0').split(//).zip(%w
|
24
|
+
total = rut.to_s.rjust(8, '0').split(//).zip(%w[3 2 7 6 5 4 3 2]).collect { |a, b| a.to_i * b.to_i }.inject(:+)
|
25
25
|
(11 - total % 11).to_s.gsub(/10/, 'k').gsub(/11/, '0')
|
26
26
|
end
|
27
27
|
end
|