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