ffaker 2.13.0 → 2.18.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 +31 -0
- data/README.md +14 -5
- data/REFERENCE.md +1398 -1249
- data/Rakefile +3 -9
- data/ffaker.gemspec +14 -5
- data/lib/ffaker.rb +12 -6
- data/lib/ffaker/address_ch.rb +0 -2
- data/lib/ffaker/address_ch_de.rb +0 -2
- data/lib/ffaker/address_ch_fr.rb +0 -2
- data/lib/ffaker/address_ch_it.rb +0 -2
- data/lib/ffaker/address_da.rb +0 -2
- data/lib/ffaker/address_de.rb +0 -2
- data/lib/ffaker/address_fi.rb +0 -2
- data/lib/ffaker/address_fr.rb +5 -3
- data/lib/ffaker/address_gr.rb +0 -2
- data/lib/ffaker/address_id.rb +0 -2
- data/lib/ffaker/address_in.rb +0 -2
- data/lib/ffaker/address_ja.rb +0 -2
- data/lib/ffaker/address_nl.rb +1 -5
- data/lib/ffaker/address_ru.rb +0 -2
- data/lib/ffaker/address_se.rb +0 -2
- data/lib/ffaker/address_sn.rb +0 -2
- data/lib/ffaker/address_ua.rb +0 -2
- data/lib/ffaker/address_uk.rb +0 -2
- data/lib/ffaker/address_us.rb +0 -2
- data/lib/ffaker/{animals.rb → animal.rb} +1 -1
- data/lib/ffaker/{animals_cn.rb → animal_cn.rb} +0 -0
- data/lib/ffaker/animal_es.rb +12 -0
- data/lib/ffaker/{animals_us.rb → animal_us.rb} +0 -0
- data/lib/ffaker/bacon_ipsum.rb +0 -2
- data/lib/ffaker/code.rb +17 -0
- data/lib/ffaker/company_ja.rb +24 -0
- data/lib/ffaker/data/address_fr/region +27 -0
- data/lib/ffaker/data/animal_es/common_names +135 -0
- data/lib/ffaker/data/filesystem/extension +31 -31
- data/lib/ffaker/data/food_pl/diary +14 -0
- data/lib/ffaker/data/food_pl/fermented +13 -0
- data/lib/ffaker/data/food_pl/fruits +34 -0
- data/lib/ffaker/data/food_pl/herbs +20 -0
- data/lib/ffaker/data/food_pl/meats +9 -0
- data/lib/ffaker/data/food_pl/preserves +10 -0
- data/lib/ffaker/data/food_pl/spices +26 -0
- data/lib/ffaker/data/food_pl/vegetables +45 -0
- data/lib/ffaker/data/freedom_ipsum/freedom_words +161 -0
- data/lib/ffaker/data/lorem/words +0 -67
- data/lib/ffaker/data/phone_number_ja/four_disit_area_codes +41 -0
- data/lib/ffaker/data/phone_number_ja/one_disit_area_codes +3 -0
- data/lib/ffaker/data/phone_number_ja/three_disit_area_codes +296 -0
- data/lib/ffaker/data/phone_number_ja/two_disit_area_codes +48 -0
- data/lib/ffaker/dizzle_ipsum.rb +0 -2
- data/lib/ffaker/education.rb +4 -8
- data/lib/ffaker/education_cn.rb +3 -6
- data/lib/ffaker/filesystem.rb +7 -7
- data/lib/ffaker/food_pl.rb +65 -0
- data/lib/ffaker/freedom_ipsum.rb +20 -0
- data/lib/ffaker/healthcare_ipsum.rb +0 -2
- data/lib/ffaker/hipster_ipsum.rb +0 -2
- data/lib/ffaker/identification_es_cl.rb +0 -2
- data/lib/ffaker/identification_es_co.rb +0 -1
- data/lib/ffaker/identification_in.rb +15 -0
- data/lib/ffaker/identification_kr.rb +1 -1
- data/lib/ffaker/identification_mx.rb +1 -3
- data/lib/ffaker/identification_tw.rb +23 -0
- data/lib/ffaker/image.rb +8 -11
- data/lib/ffaker/internet.rb +1 -1
- data/lib/ffaker/internet_se.rb +1 -3
- data/lib/ffaker/lorem_cn.rb +0 -1
- data/lib/ffaker/name_cs.rb +0 -2
- data/lib/ffaker/name_da.rb +0 -2
- data/lib/ffaker/name_de.rb +0 -2
- data/lib/ffaker/name_mx.rb +2 -4
- data/lib/ffaker/name_nb.rb +0 -2
- data/lib/ffaker/name_nl.rb +0 -2
- data/lib/ffaker/name_ph.rb +0 -2
- data/lib/ffaker/name_ru.rb +0 -2
- data/lib/ffaker/name_se.rb +0 -2
- data/lib/ffaker/name_ua.rb +0 -2
- data/lib/ffaker/phone_number_br.rb +2 -2
- data/lib/ffaker/phone_number_da.rb +0 -1
- data/lib/ffaker/phone_number_ja.rb +88 -0
- data/lib/ffaker/product.rb +1 -1
- data/lib/ffaker/ssn.rb +1 -3
- data/lib/ffaker/string.rb +5 -5
- data/lib/ffaker/unit.rb +9 -10
- data/lib/ffaker/unit_english.rb +18 -21
- data/lib/ffaker/unit_metric.rb +15 -18
- data/lib/ffaker/utils/unique_utils.rb +0 -2
- data/lib/ffaker/vehicle.rb +1 -1
- data/lib/version.rb +5 -0
- data/scripts/benchmark.rb +10 -11
- data/test/helper.rb +3 -3
- data/test/test_address_au.rb +2 -2
- data/test/test_address_br.rb +1 -1
- data/test/test_address_fi.rb +2 -2
- data/test/test_address_fr.rb +1 -1
- data/test/test_address_id.rb +1 -1
- data/test/test_address_ja.rb +1 -1
- data/test/test_address_nl.rb +1 -1
- data/test/test_address_se.rb +2 -2
- data/test/test_animal_es.rb +17 -0
- data/test/test_array_utils.rb +0 -1
- data/test/test_aws.rb +1 -1
- data/test/test_bank.rb +2 -3
- data/test/test_book.rb +4 -4
- data/test/test_code.rb +22 -1
- data/test/test_company_ja.rb +28 -0
- data/test/{test_faker.rb → test_ffaker.rb} +5 -1
- data/test/test_filesystem.rb +11 -3
- data/test/test_food_pl.rb +61 -0
- data/test/test_freedom_ipsum.rb +21 -0
- data/test/test_geolocation.rb +2 -2
- data/test/test_healthcare_ru.rb +1 -1
- data/test/test_html_ipsum.rb +1 -1
- data/test/test_identification_co.rb +1 -1
- data/test/test_identification_es_cl.rb +1 -1
- data/test/test_identification_in.rb +20 -0
- data/test/test_identification_tw.rb +17 -0
- data/test/test_image.rb +4 -4
- data/test/test_internet_se.rb +1 -1
- data/test/test_lorem.rb +4 -0
- data/test/test_lorem_fr.rb +9 -7
- data/test/test_lorem_pl.rb +1 -1
- data/test/test_lorem_ru.rb +1 -1
- data/test/test_lorem_ua.rb +1 -1
- data/test/test_music.rb +4 -4
- data/test/test_phone_number_ja.rb +63 -0
- data/test/test_ssn_se.rb +3 -3
- data/test/test_string.rb +3 -3
- data/test/test_time.rb +2 -3
- data/test/test_tweet.rb +4 -4
- data/test/test_vehicle.rb +2 -2
- metadata +214 -162
data/lib/ffaker/name_nb.rb
CHANGED
data/lib/ffaker/name_nl.rb
CHANGED
data/lib/ffaker/name_ph.rb
CHANGED
data/lib/ffaker/name_ru.rb
CHANGED
data/lib/ffaker/name_se.rb
CHANGED
data/lib/ffaker/name_ua.rb
CHANGED
@@ -14,8 +14,8 @@ module FFaker
|
|
14
14
|
|
15
15
|
COUNTRY_PREFIX = '+55'
|
16
16
|
AREA_CODE = [
|
17
|
-
|
18
|
-
51
|
17
|
+
11..19, 21..22, 24, 27..28, 31..35, 37..38, 41..49,
|
18
|
+
51, 53..55, 61..69, 71, 73..75, 77, 79, 81..89, 91..99
|
19
19
|
].flat_map { |x| Array(x) }.map(&:to_s).freeze
|
20
20
|
|
21
21
|
HOME_WORK_PHONE_PREFIX = %w[2 3 4 5].freeze
|
@@ -0,0 +1,88 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# sourse: https://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/number_shitei.html#kotei-denwa
|
4
|
+
|
5
|
+
module FFaker
|
6
|
+
module PhoneNumberJA
|
7
|
+
extend ModuleUtils
|
8
|
+
extend self
|
9
|
+
|
10
|
+
JAPAN_PREFIX = '0'
|
11
|
+
JAPAN_COUNTRY_CODE = '+81'
|
12
|
+
|
13
|
+
ONE_DISIT_FORMAT = '%s #### ####'
|
14
|
+
TWO_DISIT_FORMAT = '%s ### ####'
|
15
|
+
THREE_DISIT_FORMAT = '%s ## ####'
|
16
|
+
FOUR_DISIT_FORMAT = '%s # ####'
|
17
|
+
|
18
|
+
MOBILE_PHONE_PREFIXES = %w[90 80 70].freeze
|
19
|
+
IP_PHONE_PREFIX = '50'
|
20
|
+
MOBILE_NUMBER_FORMAT = '%s #### ####'
|
21
|
+
|
22
|
+
def home_phone_number
|
23
|
+
disit = rand(1..4)
|
24
|
+
FFaker.numerify("#{JAPAN_PREFIX}#{home_phone_number_format(disit)}")
|
25
|
+
end
|
26
|
+
|
27
|
+
def mobile_phone_number
|
28
|
+
FFaker.numerify("#{JAPAN_PREFIX}#{mobile_phone_number_format}")
|
29
|
+
end
|
30
|
+
|
31
|
+
def phone_number
|
32
|
+
case rand(0..1)
|
33
|
+
when 0 then home_phone_number
|
34
|
+
when 1 then mobile_phone_number
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def international_home_phone_number
|
39
|
+
disit = rand(1..4)
|
40
|
+
FFaker.numerify("#{JAPAN_COUNTRY_CODE} #{home_phone_number_format(disit)}")
|
41
|
+
end
|
42
|
+
|
43
|
+
def international_mobile_phone_number
|
44
|
+
FFaker.numerify("#{JAPAN_COUNTRY_CODE} #{mobile_phone_number_format}")
|
45
|
+
end
|
46
|
+
|
47
|
+
def international_phone_number
|
48
|
+
case rand(0..1)
|
49
|
+
when 0 then international_mobile_phone_number
|
50
|
+
when 1 then international_home_phone_number
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def home_phone_prefix(disit = nil)
|
55
|
+
case disit
|
56
|
+
when 1 then fetch_sample(ONE_DISIT_AREA_CODES)
|
57
|
+
when 2 then fetch_sample(TWO_DISIT_AREA_CODES)
|
58
|
+
when 3 then fetch_sample(THREE_DISIT_AREA_CODES)
|
59
|
+
when 4 then fetch_sample(FOUR_DISIT_AREA_CODES)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def home_phone_number_format(disit)
|
64
|
+
prefix = home_phone_prefix(disit)
|
65
|
+
select_home_phone_format(disit) % prefix
|
66
|
+
end
|
67
|
+
|
68
|
+
def mobile_prefix
|
69
|
+
fetch_sample(MOBILE_PHONE_PREFIXES)
|
70
|
+
end
|
71
|
+
|
72
|
+
def mobile_phone_number_format
|
73
|
+
prefix = mobile_prefix
|
74
|
+
MOBILE_NUMBER_FORMAT % prefix
|
75
|
+
end
|
76
|
+
|
77
|
+
private
|
78
|
+
|
79
|
+
def select_home_phone_format(disit)
|
80
|
+
case disit
|
81
|
+
when 1 then ONE_DISIT_FORMAT
|
82
|
+
when 2 then TWO_DISIT_FORMAT
|
83
|
+
when 3 then THREE_DISIT_FORMAT
|
84
|
+
when 4 then FOUR_DISIT_FORMAT
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
data/lib/ffaker/product.rb
CHANGED
@@ -14,7 +14,7 @@ module FFaker
|
|
14
14
|
def brand
|
15
15
|
case rand(0..11)
|
16
16
|
when (0..4) then fetch_sample(B1) + fetch_sample(B2)
|
17
|
-
when (5..10)
|
17
|
+
when (5..10)
|
18
18
|
[
|
19
19
|
fetch_sample(START), fetch_sample(VOWELS), fetch_sample(SUFFIX),
|
20
20
|
rand(0..1).zero? ? fetch_sample(ADDON) : nil
|
data/lib/ffaker/ssn.rb
CHANGED
data/lib/ffaker/string.rb
CHANGED
@@ -8,10 +8,10 @@ module FFaker
|
|
8
8
|
BACKSLASH = '\\'
|
9
9
|
DASH = '-'
|
10
10
|
|
11
|
-
LOWERS =
|
12
|
-
UPPERS =
|
11
|
+
LOWERS = Array('a'..'z').freeze
|
12
|
+
UPPERS = Array('A'..'Z').freeze
|
13
13
|
LETTERS = LOWERS + UPPERS
|
14
|
-
NUMBERS =
|
14
|
+
NUMBERS = Array('0'..'9').freeze
|
15
15
|
WORD_CHARS = LETTERS + NUMBERS + ['_']
|
16
16
|
SPACES = [' ', "\t"].freeze
|
17
17
|
ESCAPEABLE_CHARS = ['\\', '/', '.', '(', ')', '[', ']', '{', '}'].freeze
|
@@ -34,7 +34,7 @@ module FFaker
|
|
34
34
|
while tokens.any?
|
35
35
|
token = tokens.shift
|
36
36
|
if token == DASH && tokens.first && result.last
|
37
|
-
result +=
|
37
|
+
result += Array(result.pop..tokens.shift)
|
38
38
|
elsif token == BACKSLASH
|
39
39
|
result << special(tokens.shift)
|
40
40
|
else
|
@@ -50,7 +50,7 @@ module FFaker
|
|
50
50
|
token = tokens.shift
|
51
51
|
|
52
52
|
case token
|
53
|
-
when '?'
|
53
|
+
when '?'
|
54
54
|
# TODO: Let ? generate nothing
|
55
55
|
'' # We already printed its target
|
56
56
|
when '+' then
|
data/lib/ffaker/unit.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'ostruct'
|
4
|
-
|
5
3
|
module FFaker
|
6
4
|
module Unit
|
7
5
|
extend ModuleUtils
|
@@ -10,9 +8,10 @@ module FFaker
|
|
10
8
|
TIME_UNITS = [
|
11
9
|
{ name: 'Years', abbreviation: 'yr' },
|
12
10
|
{ name: 'Days', abbreviation: 'd' },
|
13
|
-
{ name: 'Hours', abbreviation: '
|
11
|
+
{ name: 'Hours', abbreviation: 'h' },
|
12
|
+
{ name: 'Minutes', abbreviation: 'm' },
|
14
13
|
{ name: 'Seconds', abbreviation: 's' },
|
15
|
-
{ name: 'Milliseconds', abbreviation: '
|
14
|
+
{ name: 'Milliseconds', abbreviation: 'ms' }
|
16
15
|
].freeze
|
17
16
|
TEMPERATURE_UNITS = [
|
18
17
|
{ name: 'Kelvin', abbreviation: 'K' },
|
@@ -21,29 +20,29 @@ module FFaker
|
|
21
20
|
].freeze
|
22
21
|
|
23
22
|
def time_name
|
24
|
-
time
|
23
|
+
time[:name]
|
25
24
|
end
|
26
25
|
|
27
26
|
def time_abbr
|
28
|
-
time
|
27
|
+
time[:abbreviation]
|
29
28
|
end
|
30
29
|
|
31
30
|
def temperature_name
|
32
|
-
temperature
|
31
|
+
temperature[:name]
|
33
32
|
end
|
34
33
|
|
35
34
|
def temperature_abbr
|
36
|
-
temperature
|
35
|
+
temperature[:abbreviation]
|
37
36
|
end
|
38
37
|
|
39
38
|
private
|
40
39
|
|
41
40
|
def time
|
42
|
-
|
41
|
+
fetch_sample(TIME_UNITS)
|
43
42
|
end
|
44
43
|
|
45
44
|
def temperature
|
46
|
-
|
45
|
+
fetch_sample(TEMPERATURE_UNITS)
|
47
46
|
end
|
48
47
|
end
|
49
48
|
end
|
data/lib/ffaker/unit_english.rb
CHANGED
@@ -1,8 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'ffaker/unit'
|
4
|
-
require 'ostruct'
|
5
|
-
|
6
3
|
module FFaker
|
7
4
|
module UnitEnglish
|
8
5
|
include FFaker::Unit
|
@@ -15,7 +12,7 @@ module FFaker
|
|
15
12
|
{ name: 'foot', abbreviation: 'ft' },
|
16
13
|
{ name: 'yard', abbreviation: 'yd' },
|
17
14
|
{ name: 'furlong', abbreviation: 'fur' },
|
18
|
-
{ name: 'mile', abbreviation: '
|
15
|
+
{ name: 'mile', abbreviation: 'mi' }
|
19
16
|
].freeze
|
20
17
|
MASS_UNITS = [
|
21
18
|
{ name: 'grains', abbreviation: 'gr' },
|
@@ -36,75 +33,75 @@ module FFaker
|
|
36
33
|
{ name: 'cubic yard', abbreviation: 'CY' }
|
37
34
|
].freeze
|
38
35
|
AREA_UNITS = [
|
39
|
-
{ name: 'square inch', abbreviation: 'sq
|
36
|
+
{ name: 'square inch', abbreviation: 'sq in' },
|
40
37
|
{ name: 'square foot', abbreviation: 'sq ft' },
|
41
38
|
{ name: 'square yard', abbreviation: 'sq yd' },
|
42
39
|
{ name: 'acre', abbreviation: 'ac' },
|
43
40
|
{ name: 'section', abbreviation: 's' },
|
44
41
|
{ name: 'square mile', abbreviation: 'sq mi' },
|
45
|
-
{ name: 'township', abbreviation: '
|
42
|
+
{ name: 'township', abbreviation: 'twp' }
|
46
43
|
].freeze
|
47
44
|
|
48
45
|
def mass_name
|
49
|
-
mass
|
46
|
+
mass[:name]
|
50
47
|
end
|
51
48
|
|
52
49
|
def mass_abbr
|
53
|
-
mass
|
50
|
+
mass[:abbreviation]
|
54
51
|
end
|
55
52
|
|
56
53
|
def length_name
|
57
|
-
length
|
54
|
+
length[:name]
|
58
55
|
end
|
59
56
|
|
60
57
|
def length_abbr
|
61
|
-
length
|
58
|
+
length[:abbreviation]
|
62
59
|
end
|
63
60
|
|
64
61
|
def liquid_name
|
65
|
-
liquid
|
62
|
+
liquid[:name]
|
66
63
|
end
|
67
64
|
|
68
65
|
def liquid_abbr
|
69
|
-
liquid
|
66
|
+
liquid[:abbreviation]
|
70
67
|
end
|
71
68
|
|
72
69
|
def volume_name
|
73
|
-
volume
|
70
|
+
volume[:name]
|
74
71
|
end
|
75
72
|
|
76
73
|
def volume_abbr
|
77
|
-
volume
|
74
|
+
volume[:abbreviation]
|
78
75
|
end
|
79
76
|
|
80
77
|
def area_name
|
81
|
-
area
|
78
|
+
area[:name]
|
82
79
|
end
|
83
80
|
|
84
81
|
def area_abbr
|
85
|
-
area
|
82
|
+
area[:abbreviation]
|
86
83
|
end
|
87
84
|
|
88
85
|
private
|
89
86
|
|
90
87
|
def length
|
91
|
-
|
88
|
+
fetch_sample(LENGTH_UNITS)
|
92
89
|
end
|
93
90
|
|
94
91
|
def mass
|
95
|
-
|
92
|
+
fetch_sample(MASS_UNITS)
|
96
93
|
end
|
97
94
|
|
98
95
|
def liquid
|
99
|
-
|
96
|
+
fetch_sample(LIQUID_UNITS)
|
100
97
|
end
|
101
98
|
|
102
99
|
def volume
|
103
|
-
|
100
|
+
fetch_sample(VOLUME_UNITS)
|
104
101
|
end
|
105
102
|
|
106
103
|
def area
|
107
|
-
|
104
|
+
fetch_sample(AREA_UNITS)
|
108
105
|
end
|
109
106
|
end
|
110
107
|
end
|
data/lib/ffaker/unit_metric.rb
CHANGED
@@ -1,8 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'ffaker/unit'
|
4
|
-
require 'ostruct'
|
5
|
-
|
6
3
|
module FFaker
|
7
4
|
module UnitMetric
|
8
5
|
include FFaker::Unit
|
@@ -37,65 +34,65 @@ module FFaker
|
|
37
34
|
].freeze
|
38
35
|
|
39
36
|
def mass_name
|
40
|
-
mass
|
37
|
+
mass[:name]
|
41
38
|
end
|
42
39
|
|
43
40
|
def mass_abbr
|
44
|
-
mass
|
41
|
+
mass[:abbreviation]
|
45
42
|
end
|
46
43
|
|
47
44
|
def length_name
|
48
|
-
length
|
45
|
+
length[:name]
|
49
46
|
end
|
50
47
|
|
51
48
|
def length_abbr
|
52
|
-
length
|
49
|
+
length[:abbreviation]
|
53
50
|
end
|
54
51
|
|
55
52
|
def liquid_name
|
56
|
-
liquid
|
53
|
+
liquid[:name]
|
57
54
|
end
|
58
55
|
|
59
56
|
def liquid_abbr
|
60
|
-
liquid
|
57
|
+
liquid[:abbreviation]
|
61
58
|
end
|
62
59
|
|
63
60
|
def volume_name
|
64
|
-
volume
|
61
|
+
volume[:name]
|
65
62
|
end
|
66
63
|
|
67
64
|
def volume_abbr
|
68
|
-
volume
|
65
|
+
volume[:abbreviation]
|
69
66
|
end
|
70
67
|
|
71
68
|
def area_name
|
72
|
-
area
|
69
|
+
area[:name]
|
73
70
|
end
|
74
71
|
|
75
72
|
def area_abbr
|
76
|
-
area
|
73
|
+
area[:abbreviation]
|
77
74
|
end
|
78
75
|
|
79
76
|
private
|
80
77
|
|
81
78
|
def length
|
82
|
-
|
79
|
+
fetch_sample(LENGTH_UNITS)
|
83
80
|
end
|
84
81
|
|
85
82
|
def mass
|
86
|
-
|
83
|
+
fetch_sample(MASS_UNITS)
|
87
84
|
end
|
88
85
|
|
89
86
|
def liquid
|
90
|
-
|
87
|
+
fetch_sample(LIQUID_UNITS)
|
91
88
|
end
|
92
89
|
|
93
90
|
def volume
|
94
|
-
|
91
|
+
fetch_sample(VOLUME_UNITS)
|
95
92
|
end
|
96
93
|
|
97
94
|
def area
|
98
|
-
|
95
|
+
fetch_sample(AREA_UNITS)
|
99
96
|
end
|
100
97
|
end
|
101
98
|
end
|