ffaker 2.21.0 → 2.23.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 +131 -17
- data/Gemfile +15 -0
- data/README.md +18 -6
- data/REFERENCE.md +1012 -969
- data/Rakefile +16 -47
- data/bin/console +9 -0
- data/ffaker.gemspec +9 -23
- data/lib/ffaker/address.rb +4 -4
- data/lib/ffaker/address_fr.rb +3 -5
- data/lib/ffaker/address_it.rb +1 -4
- data/lib/ffaker/address_ua.rb +1 -1
- data/lib/ffaker/avatar.rb +11 -3
- data/lib/ffaker/bank.rb +1 -1
- data/lib/ffaker/bank_us.rb +33 -0
- data/lib/ffaker/book.rb +15 -7
- data/lib/ffaker/cheesy_lingo.rb +2 -2
- data/lib/ffaker/code.rb +1 -1
- data/lib/ffaker/company.rb +2 -2
- data/lib/ffaker/company_fr.rb +2 -2
- data/lib/ffaker/crypto.rb +14 -0
- data/lib/ffaker/data/address_de/state +1 -0
- data/lib/ffaker/data/jo_jo/first_names +356 -0
- data/lib/ffaker/data/jo_jo/full_names +225 -0
- data/lib/ffaker/data/jo_jo/last_names +153 -0
- data/lib/ffaker/data/jo_jo/stands +149 -0
- data/lib/ffaker/date.rb +40 -0
- data/lib/ffaker/filesystem.rb +12 -2
- data/lib/ffaker/geolocation.rb +2 -2
- data/lib/ffaker/identification_br.rb +3 -12
- data/lib/ffaker/identification_ec.rb +39 -0
- data/lib/ffaker/identification_es_cl.rb +2 -2
- data/lib/ffaker/identification_es_co.rb +1 -1
- data/lib/ffaker/identification_kr.rb +11 -4
- data/lib/ffaker/identification_pl.rb +6 -6
- data/lib/ffaker/identification_tw.rb +1 -1
- data/lib/ffaker/image.rb +28 -4
- data/lib/ffaker/jo_jo.rb +24 -0
- data/lib/ffaker/lorem_ja.rb +1 -1
- data/lib/ffaker/lorem_ru.rb +1 -1
- data/lib/ffaker/movie.rb +1 -1
- data/lib/ffaker/name_fr.rb +4 -3
- data/lib/ffaker/name_pl.rb +1 -1
- data/lib/ffaker/number.rb +6 -2
- data/lib/ffaker/phone_number_de.rb +3 -3
- data/lib/ffaker/skill.rb +1 -1
- data/lib/ffaker/ssn.rb +4 -2
- data/lib/ffaker/ssn_se.rb +2 -2
- data/lib/ffaker/string.rb +1 -1
- data/lib/ffaker/time.rb +3 -3
- data/lib/ffaker/utils/module_utils.rb +5 -6
- data/lib/ffaker/utils/unique_utils.rb +33 -21
- data/lib/ffaker/vehicle.rb +2 -2
- data/lib/{version.rb → ffaker/version.rb} +1 -1
- data/lib/ffaker.rb +63 -191
- data/scripts/reference.rb +8 -10
- data/test/helper.rb +3 -5
- data/test/test_address_da.rb +3 -3
- data/test/test_address_fi.rb +2 -2
- data/test/test_address_se.rb +2 -2
- data/test/test_avatar.rb +30 -7
- data/test/test_bank_us.rb +35 -0
- data/test/test_book.rb +29 -0
- data/test/test_cheesy_lingo.rb +1 -1
- data/test/test_color.rb +3 -3
- data/test/test_crypto.rb +15 -0
- data/test/test_date.rb +47 -0
- data/test/test_filesystem.rb +30 -4
- data/test/test_freedom_ipsum.rb +1 -1
- data/test/test_gender_it.rb +1 -1
- data/test/test_gender_ja.rb +1 -1
- data/test/test_gender_jp.rb +1 -1
- data/test/test_gender_pl.rb +1 -1
- data/test/test_healthcare_ru.rb +1 -1
- data/test/test_hipster_ipsum.rb +1 -1
- data/test/test_html_ipsum.rb +2 -2
- data/test/test_identification.rb +12 -2
- data/test/test_identification_ec.rb +33 -0
- data/test/test_identification_es_mx.rb +3 -1
- data/test/test_identification_it.rb +12 -1
- data/test/test_identification_kr.rb +3 -3
- data/test/test_image.rb +51 -5
- data/test/test_internet.rb +3 -1
- data/test/test_internet_se.rb +5 -2
- data/test/test_jo_jo.rb +29 -0
- data/test/test_lorem_br.rb +2 -2
- data/test/test_lorem_cn.rb +3 -3
- data/test/test_lorem_fr.rb +3 -3
- data/test/test_lorem_ie.rb +2 -2
- data/test/test_lorem_kr.rb +3 -3
- data/test/test_lorem_pl.rb +2 -2
- data/test/test_lorem_ru.rb +3 -3
- data/test/test_lorem_ua.rb +3 -3
- data/test/test_module_utils.rb +33 -0
- data/test/test_name_da.rb +1 -1
- data/test/test_name_ph.rb +1 -1
- data/test/test_name_ru.rb +2 -2
- data/test/test_name_ua.rb +2 -2
- data/test/test_number.rb +13 -1
- data/test/test_phone_number_nl.rb +1 -1
- data/test/test_phone_number_se.rb +1 -1
- data/test/test_phone_number_sg.rb +8 -8
- data/test/test_unique_utils.rb +29 -5
- data/test/test_units.rb +6 -6
- data/test/test_units_english.rb +15 -15
- data/test/test_units_metric.rb +15 -15
- data/test/test_vehicle.rb +22 -0
- metadata +24 -241
@@ -0,0 +1,149 @@
|
|
1
|
+
Anubis
|
2
|
+
Atum
|
3
|
+
Bastet
|
4
|
+
Cream
|
5
|
+
Death Thirteen
|
6
|
+
Geb
|
7
|
+
High Priestess
|
8
|
+
Horus
|
9
|
+
Judgement
|
10
|
+
Khnum
|
11
|
+
Osiris
|
12
|
+
Sethan
|
13
|
+
Tenore Sax
|
14
|
+
Tohth
|
15
|
+
Dark Blue Moon
|
16
|
+
Emperor
|
17
|
+
Ebony Devil
|
18
|
+
Empress
|
19
|
+
Hanged Man
|
20
|
+
Hermit Purple
|
21
|
+
Hierophant Green
|
22
|
+
Justice
|
23
|
+
Lovers
|
24
|
+
Magician's Red
|
25
|
+
Silver Chariot
|
26
|
+
Star Platinum
|
27
|
+
Strength
|
28
|
+
Sun
|
29
|
+
The Fool
|
30
|
+
The World
|
31
|
+
Tower of Gray
|
32
|
+
Wheel of Fortune
|
33
|
+
Yellow Temperance
|
34
|
+
Achtung Baby
|
35
|
+
Aqua Necklace
|
36
|
+
Atom Heart Father
|
37
|
+
Bad Company
|
38
|
+
Boy II Man
|
39
|
+
Cheap Trick
|
40
|
+
Cinderella
|
41
|
+
Crazy Diamond
|
42
|
+
Enigma
|
43
|
+
Earth Wind and Fire
|
44
|
+
Harvest
|
45
|
+
Heaven's Door
|
46
|
+
Highway Star
|
47
|
+
Killer Queen
|
48
|
+
Sheer Heart Attack
|
49
|
+
Bites the Dust
|
50
|
+
Love Deluxe
|
51
|
+
Pearl Jam
|
52
|
+
Ratt
|
53
|
+
Red Hot Chili Pepper
|
54
|
+
Super Fly
|
55
|
+
Surface
|
56
|
+
The Lock
|
57
|
+
The Hand
|
58
|
+
Stray Cat
|
59
|
+
Black Sabbath
|
60
|
+
Baby Face
|
61
|
+
Gold Experience
|
62
|
+
Sticky Fingers
|
63
|
+
Metallica
|
64
|
+
Purple Haze
|
65
|
+
Moody Blues
|
66
|
+
Sex Pistols
|
67
|
+
The Grateful Dead
|
68
|
+
Aerosmith
|
69
|
+
Beach Boy
|
70
|
+
Man in the Mirror
|
71
|
+
Baby Face (GoGo)
|
72
|
+
Chariot Requiem
|
73
|
+
Clash
|
74
|
+
Echoes
|
75
|
+
Gold Experience Requiem
|
76
|
+
Green Day
|
77
|
+
King Crimson
|
78
|
+
Kraft Work
|
79
|
+
Little Feet
|
80
|
+
Mr.President
|
81
|
+
Notorious B.I.G
|
82
|
+
Oasis
|
83
|
+
Rolling Stones
|
84
|
+
Soft Machine
|
85
|
+
Spice Girl
|
86
|
+
Talking Head
|
87
|
+
White Album
|
88
|
+
Whitesnake
|
89
|
+
C-Moon
|
90
|
+
Jail House Lock
|
91
|
+
Stone Free
|
92
|
+
Goo Goo Dolls
|
93
|
+
Under World
|
94
|
+
Sky High
|
95
|
+
Star Platinum
|
96
|
+
Bohemian Rhapsody
|
97
|
+
Burning Down the House
|
98
|
+
Diver Down
|
99
|
+
Dragon's Dream
|
100
|
+
Foo Fighters
|
101
|
+
Green
|
102
|
+
Highway to Hell
|
103
|
+
Kiss
|
104
|
+
Jumpin' Jack Flash
|
105
|
+
Limp Bizkit
|
106
|
+
Made in Heaven
|
107
|
+
Manhattan Transfer
|
108
|
+
Marilyn Manson
|
109
|
+
Planet Waves
|
110
|
+
Survivor
|
111
|
+
Weather Report
|
112
|
+
Yo-Yo Ma
|
113
|
+
20th Century Boy
|
114
|
+
Ball Breaker
|
115
|
+
Boku no Rhythm wo Kiitekure
|
116
|
+
Catch the Rainbow
|
117
|
+
Chocolate Disco
|
118
|
+
Civil War
|
119
|
+
Cream Starter
|
120
|
+
Dirty Deeds Done Dirt Cheap
|
121
|
+
D4C Love Train
|
122
|
+
Hey Ya!
|
123
|
+
In a Silent Way
|
124
|
+
Mandom
|
125
|
+
Oh! Lonesome Me
|
126
|
+
Scary Monsters
|
127
|
+
Sugar Mountain
|
128
|
+
Tatoo You!
|
129
|
+
Ticket to Ride
|
130
|
+
Tomb of the Boom
|
131
|
+
Tubular Bells
|
132
|
+
Tusk
|
133
|
+
Wired
|
134
|
+
Born This Way
|
135
|
+
California King Bed
|
136
|
+
Fun Fun Fun
|
137
|
+
Nut King Call
|
138
|
+
Paisley Park
|
139
|
+
Paper Moon King
|
140
|
+
Soft & Wet
|
141
|
+
Manic Depression
|
142
|
+
Voodoo Child
|
143
|
+
All Along Watchtower
|
144
|
+
Dolly Dagger
|
145
|
+
Nightbird Flying
|
146
|
+
Purple Haze Distortion
|
147
|
+
Rainy Day Dream Away
|
148
|
+
Remote Romance
|
149
|
+
House of Holy
|
data/lib/ffaker/date.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'date'
|
4
|
+
|
5
|
+
module FFaker
|
6
|
+
module Date
|
7
|
+
extend FFaker::ModuleUtils
|
8
|
+
extend self
|
9
|
+
|
10
|
+
# Generates a random date between 2 dates
|
11
|
+
def between(from, to)
|
12
|
+
FFaker::Time.between(from, to).to_date
|
13
|
+
end
|
14
|
+
|
15
|
+
# Generates a random date up to `days` days in the past
|
16
|
+
def backward(days = 365)
|
17
|
+
from = ::Date.today - days
|
18
|
+
to = ::Date.today - 1
|
19
|
+
|
20
|
+
between(from, to)
|
21
|
+
end
|
22
|
+
|
23
|
+
# Generates a random date up to `days` days in the future
|
24
|
+
def forward(days = 365)
|
25
|
+
from = ::Date.today + 1
|
26
|
+
to = ::Date.today + days
|
27
|
+
|
28
|
+
between(from, to)
|
29
|
+
end
|
30
|
+
|
31
|
+
# Random birthday date (maximum age between 18 and 65)
|
32
|
+
# Keyword arguments: min_age, max_age
|
33
|
+
def birthday(min_age: 18, max_age: 65)
|
34
|
+
from = ::Date.today.prev_year(max_age + 1).next_day
|
35
|
+
to = ::Date.today.prev_year(min_age)
|
36
|
+
|
37
|
+
between(from, to)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/lib/ffaker/filesystem.rb
CHANGED
@@ -17,8 +17,18 @@ module FFaker
|
|
17
17
|
Lorem.words.join(directory_separator)
|
18
18
|
end
|
19
19
|
|
20
|
-
def file_name(
|
21
|
-
|
20
|
+
def file_name(
|
21
|
+
*args,
|
22
|
+
dir: directory, name: Lorem.word.downcase, ext: extension, directory_separator: File::SEPARATOR
|
23
|
+
)
|
24
|
+
if args.any?
|
25
|
+
warn "Positional arguments for Filesystem##{__method__} are deprecated. Please use keyword arguments."
|
26
|
+
dir = args[0]
|
27
|
+
name = args[1] if args.size > 1
|
28
|
+
ext = args[2] if args.size > 2
|
29
|
+
directory_separator = args[3] if args.size > 3
|
30
|
+
end
|
31
|
+
|
22
32
|
"#{dir}#{directory_separator}#{name}.#{ext}"
|
23
33
|
end
|
24
34
|
end
|
data/lib/ffaker/geolocation.rb
CHANGED
@@ -51,8 +51,8 @@ module FFaker
|
|
51
51
|
latitude_range = [upper_left[0], lower_right[0]].sort
|
52
52
|
longitude_range = [upper_left[1], lower_right[1]].sort
|
53
53
|
|
54
|
-
latitude = latitude_range[0] + rand * (latitude_range[1] - latitude_range[0])
|
55
|
-
longitude = longitude_range[0] + rand * (longitude_range[1] - longitude_range[0])
|
54
|
+
latitude = latitude_range[0] + (rand * (latitude_range[1] - latitude_range[0]))
|
55
|
+
longitude = longitude_range[0] + (rand * (longitude_range[1] - longitude_range[0]))
|
56
56
|
|
57
57
|
[latitude, longitude]
|
58
58
|
end
|
@@ -17,11 +17,7 @@ module FFaker
|
|
17
17
|
|
18
18
|
def pretty_cpf
|
19
19
|
cpf_numbers = cpf
|
20
|
-
|
21
|
-
cpf_numbers[0..2],
|
22
|
-
cpf_numbers[3..5],
|
23
|
-
cpf_numbers[6..8],
|
24
|
-
cpf_numbers[9..10])
|
20
|
+
"#{cpf_numbers[0..2]}.#{cpf_numbers[3..5]}.#{cpf_numbers[6..8]}-#{cpf_numbers[9..10]}"
|
25
21
|
end
|
26
22
|
|
27
23
|
def cnpj
|
@@ -32,12 +28,7 @@ module FFaker
|
|
32
28
|
|
33
29
|
def pretty_cnpj
|
34
30
|
cnpj_numbers = cnpj.to_s.rjust(14, '0')
|
35
|
-
|
36
|
-
cnpj_numbers[0..1],
|
37
|
-
cnpj_numbers[2..4],
|
38
|
-
cnpj_numbers[5..7],
|
39
|
-
cnpj_numbers[8..11],
|
40
|
-
cnpj_numbers[12..14])
|
31
|
+
"#{cnpj_numbers[0..1]}.#{cnpj_numbers[2..4]}.#{cnpj_numbers[5..7]}/#{cnpj_numbers[8..11]}-#{cnpj_numbers[12..14]}"
|
41
32
|
end
|
42
33
|
|
43
34
|
def rg
|
@@ -71,7 +62,7 @@ module FFaker
|
|
71
62
|
if document_digits.size + 1 == verification_multipliers.size && document_digits.uniq.size > 1
|
72
63
|
0.upto(1) do |i|
|
73
64
|
sum = verification_multipliers.drop(1 - i).each_with_index.inject(0) do |val, (value, j)|
|
74
|
-
val + document_digits[j] * value
|
65
|
+
val + (document_digits[j] * value)
|
75
66
|
end
|
76
67
|
validation_digits[i] = (sum %= 11) < 2 ? 0 : 11 - sum
|
77
68
|
document_digits.push(validation_digits[i])
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module FFaker
|
4
|
+
module IdentificationEC
|
5
|
+
extend ModuleUtils
|
6
|
+
extend self
|
7
|
+
|
8
|
+
# https://medium.com/@bryansuarez/c%C3%B3mo-validar-c%C3%A9dula-y-ruc-en-ecuador-b62c5666186f
|
9
|
+
# Cedula de Identificacion
|
10
|
+
def ci
|
11
|
+
first_digits = ci_digits
|
12
|
+
"#{first_digits}#{last_digit(first_digits)}"
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def ci_digits
|
18
|
+
"#{FFaker.numerify('##')}#{rand(0..5)}#{FFaker.numerify('######')}"
|
19
|
+
end
|
20
|
+
|
21
|
+
def last_digit(digits)
|
22
|
+
mod = digits_sum(digits) % 10
|
23
|
+
10 - mod if mod.positive?
|
24
|
+
end
|
25
|
+
|
26
|
+
def digits_sum(digits)
|
27
|
+
sum = 0
|
28
|
+
digits.chars.each_with_index do |char, index|
|
29
|
+
if index.even?
|
30
|
+
multiple = char.to_i * 2
|
31
|
+
sum += multiple > 9 ? multiple - 9 : multiple
|
32
|
+
else
|
33
|
+
sum += char.to_i
|
34
|
+
end
|
35
|
+
end
|
36
|
+
sum
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -20,10 +20,10 @@ module FFaker
|
|
20
20
|
private
|
21
21
|
|
22
22
|
def dv(rut)
|
23
|
-
total = rut.to_s.rjust(8, '0').
|
23
|
+
total = rut.to_s.rjust(8, '0').chars.zip(%w[3 2 7 6 5 4 3 2]).sum do |a, b|
|
24
24
|
a.to_i * b.to_i
|
25
25
|
end
|
26
|
-
(11 - total % 11).to_s.gsub(
|
26
|
+
(11 - (total % 11)).to_s.gsub('10', 'k').gsub('11', '0')
|
27
27
|
end
|
28
28
|
end
|
29
29
|
end
|
@@ -1,18 +1,25 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module FFaker
|
4
|
-
module
|
4
|
+
module IdentificationKR
|
5
5
|
extend ModuleUtils
|
6
6
|
extend self
|
7
7
|
|
8
8
|
# Resident Registration Number
|
9
9
|
# http://ko.wikipedia.org/wiki/%EC%A3%BC%EB%AF%BC%EB%93%B1%EB%A1%9D%EB%B2%88%ED%98%B8
|
10
10
|
def rrn
|
11
|
-
birth = fetch_sample(Date.new(1970, 1, 1)
|
11
|
+
birth = fetch_sample(::Date.new(1970, 1, 1)..::Date.new(1999, 12, 31)).strftime('%y%d%m')
|
12
12
|
sex = fetch_sample([1, 2])
|
13
13
|
loc = FFaker.numerify("#{fetch_sample(Array('00'..'95'))}###")
|
14
|
-
a, b, c, d, e, f, g, h, i, j, k, l = "#{birth}#{sex}#{loc}".
|
15
|
-
checksum = (
|
14
|
+
a, b, c, d, e, f, g, h, i, j, k, l = "#{birth}#{sex}#{loc}".chars.map(&:to_i)
|
15
|
+
checksum = (
|
16
|
+
11 - (
|
17
|
+
(
|
18
|
+
(2 * a) + (3 * b) + (4 * c) + (5 * d) + (6 * e) + (7 * f) + (8 * g) + (9 * h) +
|
19
|
+
(2 * i) + (3 * j) + (4 * k) + (5 * l)
|
20
|
+
) % 11
|
21
|
+
)
|
22
|
+
) % 10
|
16
23
|
"#{birth}-#{sex}#{loc}#{checksum}"
|
17
24
|
end
|
18
25
|
end
|
@@ -37,8 +37,8 @@ module FFaker
|
|
37
37
|
private
|
38
38
|
|
39
39
|
def generate_valid_pesel_date
|
40
|
-
from = Date.new(1800, 1, 1)
|
41
|
-
to = [Date.today, Date.new(2299, 12, 31)].min
|
40
|
+
from = ::Date.new(1800, 1, 1)
|
41
|
+
to = [::Date.today, ::Date.new(2299, 12, 31)].min
|
42
42
|
fetch_sample(from..to)
|
43
43
|
end
|
44
44
|
|
@@ -63,15 +63,15 @@ module FFaker
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def pesel_checksum(date, serial_number)
|
66
|
-
pesel_digits = "#{date}#{serial_number}".
|
66
|
+
pesel_digits = "#{date}#{serial_number}".chars.map(&:to_i)
|
67
67
|
a, b, c, d, e, f, g, h, i, j = pesel_digits
|
68
|
-
(a * 9 + b * 7 + c * 3 + d + e * 9 + f * 7 + g * 3 + h + i * 9 + j * 7) % 10
|
68
|
+
((a * 9) + (b * 7) + (c * 3) + d + (e * 9) + (f * 7) + (g * 3) + h + (i * 9) + (j * 7)) % 10
|
69
69
|
end
|
70
70
|
|
71
71
|
def identity_card_checksum(letter_part, number_part)
|
72
72
|
a, b, c = letter_part.codepoints.map { |codepoints| codepoints - 55 }
|
73
|
-
d, e, f, g, h = number_part.
|
74
|
-
(a * 7 + b * 3 + c + 7 * d + 3 * e + f + 7 * g + 3 * h) % 10
|
73
|
+
d, e, f, g, h = number_part.chars.map(&:to_i)
|
74
|
+
((a * 7) + (b * 3) + c + (7 * d) + (3 * e) + f + (7 * g) + (3 * h)) % 10
|
75
75
|
end
|
76
76
|
end
|
77
77
|
end
|
@@ -17,7 +17,7 @@ module FFaker
|
|
17
17
|
serial = FFaker.numerify('#######')
|
18
18
|
a, b, c, d, e, f, g, h, i, j = "#{code}#{gender}#{serial}".chars.map(&:to_i)
|
19
19
|
|
20
|
-
checksum = (9 * a + b + 2 * c + 3 * d + 4 * e + 5 * f + 6 * g + 7 * h + 8 * i + 9 * j) % 10
|
20
|
+
checksum = ((9 * a) + b + (2 * c) + (3 * d) + (4 * e) + (5 * f) + (6 * g) + (7 * h) + (8 * i) + (9 * j)) % 10
|
21
21
|
"#{letter.upcase}#{gender}#{serial}#{checksum}"
|
22
22
|
end
|
23
23
|
end
|
data/lib/ffaker/image.rb
CHANGED
@@ -11,7 +11,18 @@ module FFaker
|
|
11
11
|
|
12
12
|
SUPPORTED_FORMATS = %w[png jpg jpeg gif].freeze
|
13
13
|
|
14
|
-
|
14
|
+
## `*args` for old format support, it will be removed with deprecation
|
15
|
+
# rubocop:disable Metrics/ParameterLists
|
16
|
+
def url(*args, size: '300x300', format: 'png', bg_color: :random, text_color: :random, text: nil)
|
17
|
+
if args.any?
|
18
|
+
warn "Positional arguments for Image##{__method__} are deprecated. Please use keyword arguments."
|
19
|
+
size = args[0]
|
20
|
+
format = args[1] if args.size > 1
|
21
|
+
bg_color = args[2] if args.size > 2
|
22
|
+
text_color = args[3] if args.size > 3
|
23
|
+
text = args[4] if args.size > 4
|
24
|
+
end
|
25
|
+
|
15
26
|
check_size!(size)
|
16
27
|
check_format!(format)
|
17
28
|
|
@@ -21,20 +32,33 @@ module FFaker
|
|
21
32
|
|
22
33
|
"https://dummyimage.com/#{size}/#{bg_color}/#{text_color}.#{format}?text=#{text}"
|
23
34
|
end
|
35
|
+
# rubocop:enable Metrics/ParameterLists
|
36
|
+
|
37
|
+
## `*args` for old format support, it will be removed with deprecation
|
38
|
+
# rubocop:disable Metrics/ParameterLists
|
39
|
+
def file(*args, size: '300x300', format: 'png', bg_color: :random, text_color: :random, text: nil)
|
40
|
+
if args.any?
|
41
|
+
warn "Positional arguments for Image##{__method__} are deprecated. Please use keyword arguments."
|
42
|
+
size = args[0]
|
43
|
+
format = args[1] if args.size > 1
|
44
|
+
bg_color = args[2] if args.size > 2
|
45
|
+
text_color = args[3] if args.size > 3
|
46
|
+
text = args[4] if args.size > 4
|
47
|
+
end
|
24
48
|
|
25
|
-
|
26
|
-
uri = URI.parse(url(size, format, bg_color, text_color, text))
|
49
|
+
uri = URI.parse(url(size: size, format: format, bg_color: bg_color, text_color: text_color, text: text))
|
27
50
|
file = Tempfile.new('ffaker_image')
|
28
51
|
file.binmode
|
29
52
|
file << uri.open.read
|
30
53
|
file.close
|
31
54
|
File.new(file.path)
|
32
55
|
end
|
56
|
+
# rubocop:enable Metrics/ParameterLists
|
33
57
|
|
34
58
|
private
|
35
59
|
|
36
60
|
def check_size!(size)
|
37
|
-
return true if size
|
61
|
+
return true if size.match?(/\A\d+x\d+\z/)
|
38
62
|
|
39
63
|
raise ArgumentError, 'Size should be specified in format 300x300'
|
40
64
|
end
|
data/lib/ffaker/jo_jo.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module FFaker
|
4
|
+
module JoJo
|
5
|
+
extend ModuleUtils
|
6
|
+
extend self
|
7
|
+
|
8
|
+
def full_name
|
9
|
+
fetch_sample(FULL_NAMES)
|
10
|
+
end
|
11
|
+
|
12
|
+
def first_name
|
13
|
+
fetch_sample(FIRST_NAMES)
|
14
|
+
end
|
15
|
+
|
16
|
+
def last_name
|
17
|
+
fetch_sample(LAST_NAMES)
|
18
|
+
end
|
19
|
+
|
20
|
+
def stand
|
21
|
+
fetch_sample(STANDS)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/ffaker/lorem_ja.rb
CHANGED
data/lib/ffaker/lorem_ru.rb
CHANGED
data/lib/ffaker/movie.rb
CHANGED
data/lib/ffaker/name_fr.rb
CHANGED
@@ -25,9 +25,10 @@ module FFaker
|
|
25
25
|
|
26
26
|
def name
|
27
27
|
case rand(0..9)
|
28
|
-
when 7
|
29
|
-
|
30
|
-
else
|
28
|
+
when 5, 7
|
29
|
+
"#{first_name} #{prefix} #{last_name}"
|
30
|
+
else
|
31
|
+
"#{first_name} #{last_name}"
|
31
32
|
end
|
32
33
|
end
|
33
34
|
end
|
data/lib/ffaker/name_pl.rb
CHANGED
@@ -11,7 +11,7 @@ module FFaker
|
|
11
11
|
GENDERS = %i[random female male].freeze
|
12
12
|
MALE_PREFIXES = %w[Pan].freeze
|
13
13
|
FEMALE_PREFIXES = %w[Pani].freeze
|
14
|
-
ACADEMIC_DEGREE_PREFIXES =
|
14
|
+
ACADEMIC_DEGREE_PREFIXES = ['lic.', 'inż.', 'mgr', 'mgr inż.', 'dr', 'dr hab.', 'prof.'].freeze
|
15
15
|
PREFIXES = (MALE_PREFIXES + FEMALE_PREFIXES + ACADEMIC_DEGREE_PREFIXES).freeze
|
16
16
|
|
17
17
|
# Generates a random full name for a given gender (random by default).
|
data/lib/ffaker/number.rb
CHANGED
@@ -15,12 +15,16 @@ module FFaker
|
|
15
15
|
FFaker.numerify("#{whole_part_pattern}.#{fractional_part_pattern}").to_f
|
16
16
|
end
|
17
17
|
|
18
|
+
def between(from: 1.00, to: 5000.00)
|
19
|
+
fetch_sample(from..to)
|
20
|
+
end
|
21
|
+
|
18
22
|
private
|
19
23
|
|
20
24
|
def generate_pattern(digits)
|
21
|
-
raise ArgumentError
|
25
|
+
raise ArgumentError, 'Digits cannot be less than 1' if digits < 1
|
22
26
|
|
23
|
-
"#{fetch_sample(1..9)}#{
|
27
|
+
"#{fetch_sample(1..9)}#{'#' * (digits - 1)}"
|
24
28
|
end
|
25
29
|
end
|
26
30
|
end
|
@@ -7,15 +7,15 @@ module FFaker
|
|
7
7
|
|
8
8
|
# Mobile prefixes are in the 015x, 016x, 017x ranges
|
9
9
|
def mobile_prefix(leading_zero = true)
|
10
|
-
mobile_prefix =
|
11
|
-
mobile_prefix =
|
10
|
+
mobile_prefix = "1#{rand(5..7)}#{rand(0..9)}"
|
11
|
+
mobile_prefix = "0#{mobile_prefix}" if leading_zero
|
12
12
|
mobile_prefix
|
13
13
|
end
|
14
14
|
|
15
15
|
# Region prefixes are in range 02..09 with length of 3 to 5 digits
|
16
16
|
def region_prefix(leading_zero = true)
|
17
17
|
region_prefix = rand(2..9).to_s + FFaker.numerify('#' * rand(1..3)).to_s
|
18
|
-
region_prefix =
|
18
|
+
region_prefix = "0#{region_prefix}" if leading_zero
|
19
19
|
region_prefix
|
20
20
|
end
|
21
21
|
|
data/lib/ffaker/skill.rb
CHANGED
data/lib/ffaker/ssn.rb
CHANGED
@@ -15,8 +15,10 @@ module FFaker
|
|
15
15
|
second_group = rand(1..99)
|
16
16
|
third_group = rand(1..9999)
|
17
17
|
|
18
|
-
|
19
|
-
|
18
|
+
format(
|
19
|
+
'%<first_group>.3d-%<second_group>.2d-%<third_group>.4d',
|
20
|
+
first_group: first_group, second_group: second_group, third_group: third_group
|
21
|
+
)
|
20
22
|
end
|
21
23
|
end
|
22
24
|
end
|
data/lib/ffaker/ssn_se.rb
CHANGED
@@ -54,7 +54,7 @@ module FFaker
|
|
54
54
|
end
|
55
55
|
|
56
56
|
def random_birth_time_between(from = ::Time.local(1940, 1, 1), to = ::Time.now)
|
57
|
-
::Time.at(from + rand * (to.to_f - from.to_f))
|
57
|
+
::Time.at(from + (rand * (to.to_f - from.to_f)))
|
58
58
|
end
|
59
59
|
|
60
60
|
def random_region_for(gender)
|
@@ -70,7 +70,7 @@ module FFaker
|
|
70
70
|
end
|
71
71
|
|
72
72
|
def random_region_odd
|
73
|
-
rand(0..498) * 2 + 1
|
73
|
+
(rand(0..498) * 2) + 1
|
74
74
|
end
|
75
75
|
|
76
76
|
def three_character_string(number)
|
data/lib/ffaker/string.rb
CHANGED
data/lib/ffaker/time.rb
CHANGED
@@ -25,14 +25,14 @@ module FFaker
|
|
25
25
|
latest_year = params[:year_latest] || 0
|
26
26
|
year = (rand * years_back).ceil + (::DateTime.now.year - latest_year - years_back)
|
27
27
|
month = rand(1..12)
|
28
|
-
day = rand(1
|
28
|
+
day = rand(1..::Date.new(year, month, -1).day)
|
29
29
|
hours = params[:hours] || rand(0..23)
|
30
30
|
minutes = params[:minutes] || rand(0..59)
|
31
31
|
series = [date = ::DateTime.new(year, month, day, hours, minutes)]
|
32
32
|
return date unless params[:series]
|
33
33
|
|
34
34
|
params[:series].each do |some_time_after|
|
35
|
-
series << series.last + (rand * some_time_after).ceil
|
35
|
+
series << (series.last + (rand * some_time_after).ceil)
|
36
36
|
end
|
37
37
|
series
|
38
38
|
end
|
@@ -44,7 +44,7 @@ module FFaker
|
|
44
44
|
def between(from, to)
|
45
45
|
from_value = convert_to_time(from)
|
46
46
|
to_value = convert_to_time(to)
|
47
|
-
::Time.at(from_value + rand * (to_value.to_f - from_value.to_f))
|
47
|
+
::Time.at(from_value + (rand * (to_value.to_f - from_value.to_f)))
|
48
48
|
end
|
49
49
|
|
50
50
|
private
|