faker 2.1.2 → 2.6.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 +171 -7
- data/README.md +4 -4
- data/lib/faker.rb +56 -1
- data/lib/faker/blockchain/aeternity.rb +70 -0
- data/lib/faker/blockchain/bitcoin.rb +26 -0
- data/lib/faker/blockchain/ethereum.rb +10 -0
- data/lib/faker/blockchain/tezos.rb +62 -6
- data/lib/faker/books/book.rb +36 -0
- data/lib/faker/books/culture_series.rb +49 -0
- data/lib/faker/books/dune.rb +66 -5
- data/lib/faker/books/lovecraft.rb +210 -7
- data/lib/faker/creature/animal.rb +9 -0
- data/lib/faker/creature/cat.rb +27 -0
- data/lib/faker/creature/dog.rb +72 -0
- data/lib/faker/creature/horse.rb +18 -0
- data/lib/faker/default/address.rb +25 -5
- data/lib/faker/default/alphanumeric.rb +56 -7
- data/lib/faker/default/app.rb +55 -1
- data/lib/faker/default/appliance.rb +18 -0
- data/lib/faker/default/artist.rb +9 -0
- data/lib/faker/default/avatar.rb +43 -1
- data/lib/faker/default/bank.rb +10 -2
- data/lib/faker/default/boolean.rb +16 -1
- data/lib/faker/default/chile_rut.rb +12 -2
- data/lib/faker/default/chuck_norris.rb +1 -1
- data/lib/faker/default/code.rb +16 -3
- data/lib/faker/default/commerce.rb +17 -3
- data/lib/faker/default/company.rb +10 -2
- data/lib/faker/default/crypto_coin.rb +15 -3
- data/lib/faker/default/date.rb +118 -5
- data/lib/faker/default/demographic.rb +5 -1
- data/lib/faker/default/dessert.rb +27 -0
- data/lib/faker/default/device.rb +54 -0
- data/lib/faker/default/driving_licence.rb +12 -6
- data/lib/faker/default/electrical_components.rb +27 -0
- data/lib/faker/default/file.rb +19 -2
- data/lib/faker/default/fillmurray.rb +9 -1
- data/lib/faker/default/finance.rb +5 -1
- data/lib/faker/default/gender.rb +18 -0
- data/lib/faker/default/greek_philosophers.rb +18 -0
- data/lib/faker/default/hacker.rb +59 -1
- data/lib/faker/default/hipster.rb +45 -6
- data/lib/faker/default/house.rb +18 -0
- data/lib/faker/default/id_number.rb +11 -3
- data/lib/faker/default/industry_segments.rb +36 -0
- data/lib/faker/default/internet.rb +97 -13
- data/lib/faker/default/invoice.rb +16 -3
- data/lib/faker/default/json.rb +19 -2
- data/lib/faker/default/lorem.rb +81 -10
- data/lib/faker/default/lorem_flickr.rb +38 -5
- data/lib/faker/default/lorem_pixel.rb +10 -1
- data/lib/faker/default/markdown.rb +6 -1
- data/lib/faker/default/marketing.rb +9 -0
- data/lib/faker/default/measurement.rb +40 -8
- data/lib/faker/default/military.rb +45 -0
- data/lib/faker/default/name.rb +5 -1
- data/lib/faker/default/nation.rb +48 -5
- data/lib/faker/default/nato_phonetic_alphabet.rb +9 -0
- data/lib/faker/default/nhs.rb +5 -1
- data/lib/faker/default/number.rb +180 -11
- data/lib/faker/default/omniauth.rb +92 -9
- data/lib/faker/default/phone_number.rb +5 -1
- data/lib/faker/default/placeholdit.rb +11 -1
- data/lib/faker/default/programming_language.rb +18 -0
- data/lib/faker/default/relationship.rb +5 -1
- data/lib/faker/default/restaurant.rb +54 -2
- data/lib/faker/default/science.rb +27 -0
- data/lib/faker/default/source.rb +59 -3
- data/lib/faker/default/string.rb +5 -1
- data/lib/faker/default/stripe.rb +20 -4
- data/lib/faker/default/subscription.rb +45 -0
- data/lib/faker/default/superhero.rb +45 -0
- data/lib/faker/default/time.rb +114 -4
- data/lib/faker/default/twitter.rb +32 -18
- data/lib/faker/default/types.rb +27 -5
- data/lib/faker/default/vehicle.rb +17 -4
- data/lib/faker/default/world_cup.rb +61 -2
- data/lib/faker/games/dota.rb +52 -1
- data/lib/faker/games/elder_scrolls.rb +72 -0
- data/lib/faker/games/fallout.rb +37 -0
- data/lib/faker/games/game.rb +27 -0
- data/lib/faker/games/half_life.rb +27 -0
- data/lib/faker/games/heroes.rb +27 -0
- data/lib/faker/games/heroes_of_the_storm.rb +36 -0
- data/lib/faker/games/league_of_legends.rb +54 -0
- data/lib/faker/games/myst.rb +45 -0
- data/lib/faker/games/overwatch.rb +27 -0
- data/lib/faker/games/pokemon.rb +27 -0
- data/lib/faker/games/sonic_the_hedgehog.rb +27 -0
- data/lib/faker/games/super_smash_bros.rb +18 -0
- data/lib/faker/games/witcher.rb +54 -0
- data/lib/faker/games/world_of_warcraft.rb +18 -0
- data/lib/faker/games/zelda.rb +37 -1
- data/lib/faker/japanese_media/dragon_ball.rb +9 -0
- data/lib/faker/japanese_media/one_piece.rb +54 -0
- data/lib/faker/japanese_media/sword_art_online.rb +36 -0
- data/lib/faker/movies/back_to_the_future.rb +28 -0
- data/lib/faker/movies/ghostbusters.rb +28 -0
- data/lib/faker/movies/harry_potter.rb +54 -0
- data/lib/faker/movies/hitchhikers_guide_to_the_galaxy.rb +69 -0
- data/lib/faker/movies/hobbit.rb +37 -0
- data/lib/faker/movies/lebowski.rb +27 -0
- data/lib/faker/movies/lord_of_the_rings.rb +28 -0
- data/lib/faker/movies/movie.rb +9 -0
- data/lib/faker/movies/princess_bride.rb +19 -0
- data/lib/faker/movies/star_wars.rb +100 -4
- data/lib/faker/movies/v_for_vendetta.rb +29 -0
- data/lib/faker/music/grateful_dead.rb +18 -0
- data/lib/faker/music/phish.rb +9 -0
- data/lib/faker/music/rock_band.rb +9 -0
- data/lib/faker/music/umphreys_mcgee.rb +9 -0
- data/lib/faker/sports/basketball.rb +36 -0
- data/lib/faker/sports/football.rb +45 -0
- data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +9 -0
- data/lib/faker/tv_shows/bojack_horseman.rb +28 -0
- data/lib/faker/tv_shows/breaking_bad.rb +18 -0
- data/lib/faker/tv_shows/buffy.rb +45 -0
- data/lib/faker/tv_shows/community.rb +19 -0
- data/lib/faker/tv_shows/dr_who.rb +78 -2
- data/lib/faker/tv_shows/dumb_and_dumber.rb +28 -0
- data/lib/faker/tv_shows/family_guy.rb +28 -0
- data/lib/faker/tv_shows/friends.rb +27 -0
- data/lib/faker/tv_shows/game_of_thrones.rb +46 -0
- data/lib/faker/tv_shows/hey_arnold.rb +27 -0
- data/lib/faker/tv_shows/how_i_met_your_mother.rb +37 -0
- data/lib/faker/tv_shows/michael_scott.rb +13 -0
- data/lib/faker/tv_shows/new_girl.rb +19 -0
- data/lib/faker/tv_shows/parks_and_rec.rb +18 -0
- data/lib/faker/tv_shows/rick_and_morty.rb +28 -0
- data/lib/faker/tv_shows/ru_paul.rb +18 -0
- data/lib/faker/tv_shows/seinfeld.rb +28 -0
- data/lib/faker/tv_shows/silicon_valley.rb +75 -0
- data/lib/faker/tv_shows/simpsons.rb +28 -0
- data/lib/faker/tv_shows/south_park.rb +19 -0
- data/lib/faker/tv_shows/star_trek.rb +36 -0
- data/lib/faker/tv_shows/stargate.rb +28 -0
- data/lib/faker/tv_shows/stranger_things.rb +19 -0
- data/lib/faker/tv_shows/the_expanse.rb +36 -0
- data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +28 -0
- data/lib/faker/tv_shows/the_it_crowd.rb +37 -0
- data/lib/faker/tv_shows/the_thick_of_it.rb +28 -0
- data/lib/faker/tv_shows/twin_peaks.rb +28 -0
- data/lib/faker/tv_shows/venture_bros.rb +38 -0
- data/lib/faker/version.rb +1 -1
- data/lib/locales/en-CA.yml +1 -1
- data/lib/locales/en-TH.yml +360 -0
- data/lib/locales/en/color.yml +1 -1
- data/lib/locales/en/dr_who.yml +1 -1
- data/lib/locales/en/science.yml +1 -1
- data/lib/locales/ja.yml +8 -9
- data/lib/locales/th.yml +380 -0
- metadata +39 -14
data/lib/faker/default/house.rb
CHANGED
|
@@ -3,10 +3,28 @@
|
|
|
3
3
|
module Faker
|
|
4
4
|
class House < Base
|
|
5
5
|
class << self
|
|
6
|
+
##
|
|
7
|
+
# Produces the name of a piece of furniture.
|
|
8
|
+
#
|
|
9
|
+
# @return [String]
|
|
10
|
+
#
|
|
11
|
+
# @example
|
|
12
|
+
# Faker::House.furniture #=> "chair"
|
|
13
|
+
#
|
|
14
|
+
# @faker.version 1.9.2
|
|
6
15
|
def furniture
|
|
7
16
|
fetch('house.furniture')
|
|
8
17
|
end
|
|
9
18
|
|
|
19
|
+
##
|
|
20
|
+
# Produces the name of a room in a house.
|
|
21
|
+
#
|
|
22
|
+
# @return [String]
|
|
23
|
+
#
|
|
24
|
+
# @example
|
|
25
|
+
# Faker::House.room #=> "kitchen"
|
|
26
|
+
#
|
|
27
|
+
# @faker.version 1.9.2
|
|
10
28
|
def room
|
|
11
29
|
fetch('house.rooms')
|
|
12
30
|
end
|
|
@@ -12,7 +12,7 @@ module Faker
|
|
|
12
12
|
].freeze
|
|
13
13
|
ZA_RACE_DIGIT = '8'
|
|
14
14
|
ZA_CITIZENSHIP_DIGITS = %w[0 1].freeze
|
|
15
|
-
BRAZILIAN_ID_FORMAT = /(\d{1,2})(\d{3})(\d{3})([\dX])
|
|
15
|
+
BRAZILIAN_ID_FORMAT = /(\d{1,2})(\d{3})(\d{3})([\dX])/.freeze
|
|
16
16
|
BRAZILIAN_ID_FROM = 10_000_000
|
|
17
17
|
BRAZILIAN_ID_TO = 99_999_999
|
|
18
18
|
|
|
@@ -78,7 +78,11 @@ module Faker
|
|
|
78
78
|
[id_number, south_african_id_checksum_digit(id_number)].join
|
|
79
79
|
end
|
|
80
80
|
|
|
81
|
-
def brazilian_citizen_number(formatted: false)
|
|
81
|
+
def brazilian_citizen_number(legacy_formatted = NOT_GIVEN, formatted: false)
|
|
82
|
+
warn_for_deprecated_arguments do |keywords|
|
|
83
|
+
keywords << :formatted if legacy_formatted != NOT_GIVEN
|
|
84
|
+
end
|
|
85
|
+
|
|
82
86
|
digits = Faker::Number.leading_zero_number(digits: 9) until digits&.match(/(\d)((?!\1)\d)+/)
|
|
83
87
|
first_digit = brazilian_citizen_number_checksum_digit(digits)
|
|
84
88
|
second_digit = brazilian_citizen_number_checksum_digit(digits + first_digit)
|
|
@@ -88,7 +92,11 @@ module Faker
|
|
|
88
92
|
|
|
89
93
|
alias brazilian_cpf brazilian_citizen_number
|
|
90
94
|
|
|
91
|
-
def brazilian_id(formatted: false)
|
|
95
|
+
def brazilian_id(legacy_formatted = NOT_GIVEN, formatted: false)
|
|
96
|
+
warn_for_deprecated_arguments do |keywords|
|
|
97
|
+
keywords << :formatted if legacy_formatted != NOT_GIVEN
|
|
98
|
+
end
|
|
99
|
+
|
|
92
100
|
digits = Faker::Number.between(to: BRAZILIAN_ID_FROM, from: BRAZILIAN_ID_TO).to_s
|
|
93
101
|
check_digit = brazilian_id_checksum_digit(digits)
|
|
94
102
|
number = [digits, check_digit].join
|
|
@@ -5,18 +5,54 @@ module Faker
|
|
|
5
5
|
flexible :industry_segments
|
|
6
6
|
|
|
7
7
|
class << self
|
|
8
|
+
##
|
|
9
|
+
# Produces the name of an industry.
|
|
10
|
+
#
|
|
11
|
+
# @return [String]
|
|
12
|
+
#
|
|
13
|
+
# @example
|
|
14
|
+
# Faker::IndustrySegments.industry #=> "Basic Materials"
|
|
15
|
+
#
|
|
16
|
+
# @faker.version 1.9.2
|
|
8
17
|
def industry
|
|
9
18
|
fetch('industry_segments.industry')
|
|
10
19
|
end
|
|
11
20
|
|
|
21
|
+
##
|
|
22
|
+
# Produces the name of a super-sector of an industry.
|
|
23
|
+
#
|
|
24
|
+
# @return [String]
|
|
25
|
+
#
|
|
26
|
+
# @example
|
|
27
|
+
# Faker::IndustrySegments.super_sector #=> "Basic Resources"
|
|
28
|
+
#
|
|
29
|
+
# @faker.version 1.9.2
|
|
12
30
|
def super_sector
|
|
13
31
|
fetch('industry_segments.super_sector')
|
|
14
32
|
end
|
|
15
33
|
|
|
34
|
+
##
|
|
35
|
+
# Produces the name of a sector of an industry.
|
|
36
|
+
#
|
|
37
|
+
# @return [String]
|
|
38
|
+
#
|
|
39
|
+
# @example
|
|
40
|
+
# Faker::IndustrySegments.sector #=> "Industrial Metals & Mining"
|
|
41
|
+
#
|
|
42
|
+
# @faker.version 1.9.2
|
|
16
43
|
def sector
|
|
17
44
|
fetch('industry_segments.sector')
|
|
18
45
|
end
|
|
19
46
|
|
|
47
|
+
##
|
|
48
|
+
# Produces the name of a subsector of an industry.
|
|
49
|
+
#
|
|
50
|
+
# @return [String]
|
|
51
|
+
#
|
|
52
|
+
# @example
|
|
53
|
+
# Faker::IndustrySegments.industry #=> "Basic Materials"
|
|
54
|
+
#
|
|
55
|
+
# @faker.version 1.9.2
|
|
20
56
|
def sub_sector
|
|
21
57
|
fetch('industry_segments.sub_sector')
|
|
22
58
|
end
|
|
@@ -3,7 +3,12 @@
|
|
|
3
3
|
module Faker
|
|
4
4
|
class Internet < Base
|
|
5
5
|
class << self
|
|
6
|
-
def email(name: nil, separators: nil)
|
|
6
|
+
def email(legacy_name = NOT_GIVEN, legacy_separators = NOT_GIVEN, name: nil, separators: nil)
|
|
7
|
+
warn_for_deprecated_arguments do |keywords|
|
|
8
|
+
keywords << :name if legacy_name != NOT_GIVEN
|
|
9
|
+
keywords << :separators if legacy_separators != NOT_GIVEN
|
|
10
|
+
end
|
|
11
|
+
|
|
7
12
|
if separators
|
|
8
13
|
[username(specifier: name, separators: separators), domain_name].join('@')
|
|
9
14
|
else
|
|
@@ -11,15 +16,28 @@ module Faker
|
|
|
11
16
|
end
|
|
12
17
|
end
|
|
13
18
|
|
|
14
|
-
def free_email(name: nil)
|
|
19
|
+
def free_email(legacy_name = NOT_GIVEN, name: nil)
|
|
20
|
+
warn_for_deprecated_arguments do |keywords|
|
|
21
|
+
keywords << :name if legacy_name != NOT_GIVEN
|
|
22
|
+
end
|
|
23
|
+
|
|
15
24
|
[username(specifier: name), fetch('internet.free_email')].join('@')
|
|
16
25
|
end
|
|
17
26
|
|
|
18
|
-
def safe_email(name: nil)
|
|
27
|
+
def safe_email(legacy_name = NOT_GIVEN, name: nil)
|
|
28
|
+
warn_for_deprecated_arguments do |keywords|
|
|
29
|
+
keywords << :name if legacy_name != NOT_GIVEN
|
|
30
|
+
end
|
|
31
|
+
|
|
19
32
|
[username(specifier: name), 'example.' + sample(%w[org com net])].join('@')
|
|
20
33
|
end
|
|
21
34
|
|
|
22
|
-
def username(specifier: nil, separators: %w[. _])
|
|
35
|
+
def username(legacy_specifier = NOT_GIVEN, legacy_separators = NOT_GIVEN, specifier: nil, separators: %w[. _])
|
|
36
|
+
warn_for_deprecated_arguments do |keywords|
|
|
37
|
+
keywords << :specifier if legacy_specifier != NOT_GIVEN
|
|
38
|
+
keywords << :separators if legacy_separators != NOT_GIVEN
|
|
39
|
+
end
|
|
40
|
+
|
|
23
41
|
with_locale(:en) do
|
|
24
42
|
return shuffle(specifier.scan(/[[:word:]]+/)).join(sample(separators)).downcase if specifier.respond_to?(:scan)
|
|
25
43
|
|
|
@@ -55,8 +73,41 @@ module Faker
|
|
|
55
73
|
end
|
|
56
74
|
end
|
|
57
75
|
|
|
58
|
-
|
|
59
|
-
|
|
76
|
+
# rubocop:disable Metrics/ParameterLists
|
|
77
|
+
|
|
78
|
+
##
|
|
79
|
+
# Produces a randomized string of characters suitable for passwords
|
|
80
|
+
#
|
|
81
|
+
# @param min_length [Integer] The minimum length of the password
|
|
82
|
+
# @param max_length [Integer] The maximum length of the password
|
|
83
|
+
# @param mix_case [Boolean] Toggles if uppercased letters are allowed. If true, at least one will be added.
|
|
84
|
+
# @param special_characters [Boolean] Toggles if special characters are allowed. If true, at least one will be added.
|
|
85
|
+
#
|
|
86
|
+
# @return [String]
|
|
87
|
+
#
|
|
88
|
+
# @example
|
|
89
|
+
# Faker::Internet.password #=> "Vg5mSvY1UeRg7"
|
|
90
|
+
# @example
|
|
91
|
+
# Faker::Internet.password(min_length: 8) #=> "YfGjIk0hGzDqS0"
|
|
92
|
+
# @example
|
|
93
|
+
# Faker::Internet.password(min_length: 10, max_length: 20) #=> "EoC9ShWd1hWq4vBgFw"
|
|
94
|
+
# @example
|
|
95
|
+
# Faker::Internet.password(min_length: 10, max_length: 20, mix_case: true) #=> "3k5qS15aNmG"
|
|
96
|
+
# @example
|
|
97
|
+
# Faker::Internet.password(min_length: 10, max_length: 20, mix_case: true, special_characters: true) #=> "*%NkOnJsH4"
|
|
98
|
+
#
|
|
99
|
+
# @faker.version 2.1.3
|
|
100
|
+
def password(legacy_min_length = NOT_GIVEN, legacy_max_length = NOT_GIVEN, legacy_mix_case = NOT_GIVEN, legacy_special_characters = NOT_GIVEN, min_length: 8, max_length: 16, mix_case: true, special_characters: false)
|
|
101
|
+
# rubocop:enable Metrics/ParameterLists
|
|
102
|
+
warn_for_deprecated_arguments do |keywords|
|
|
103
|
+
keywords << :min_length if legacy_min_length != NOT_GIVEN
|
|
104
|
+
keywords << :max_length if legacy_max_length != NOT_GIVEN
|
|
105
|
+
keywords << :mix_case if legacy_mix_case != NOT_GIVEN
|
|
106
|
+
keywords << :special_characters if legacy_special_characters != NOT_GIVEN
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
min_alpha = mix_case ? 2 : 0
|
|
110
|
+
temp = Lorem.characters(number: min_length, min_alpha: min_alpha)
|
|
60
111
|
diff_length = max_length - min_length
|
|
61
112
|
|
|
62
113
|
if diff_length.positive?
|
|
@@ -65,8 +116,12 @@ module Faker
|
|
|
65
116
|
end
|
|
66
117
|
|
|
67
118
|
if mix_case
|
|
119
|
+
alpha_count = 0
|
|
68
120
|
temp.chars.each_with_index do |char, index|
|
|
69
|
-
|
|
121
|
+
if char =~ /[[:alpha:]]/
|
|
122
|
+
temp[index] = char.upcase if alpha_count.even?
|
|
123
|
+
alpha_count += 1
|
|
124
|
+
end
|
|
70
125
|
end
|
|
71
126
|
end
|
|
72
127
|
|
|
@@ -80,7 +135,11 @@ module Faker
|
|
|
80
135
|
temp
|
|
81
136
|
end
|
|
82
137
|
|
|
83
|
-
def domain_name(subdomain: false)
|
|
138
|
+
def domain_name(legacy_subdomain = NOT_GIVEN, subdomain: false)
|
|
139
|
+
warn_for_deprecated_arguments do |keywords|
|
|
140
|
+
keywords << :subdomain if legacy_subdomain != NOT_GIVEN
|
|
141
|
+
end
|
|
142
|
+
|
|
84
143
|
with_locale(:en) do
|
|
85
144
|
domain_elements = [Char.prepare(domain_word), domain_suffix]
|
|
86
145
|
domain_elements.unshift(Char.prepare(domain_word)) if subdomain
|
|
@@ -88,7 +147,11 @@ module Faker
|
|
|
88
147
|
end
|
|
89
148
|
end
|
|
90
149
|
|
|
91
|
-
def fix_umlauts(string: '')
|
|
150
|
+
def fix_umlauts(legacy_string = NOT_GIVEN, string: '')
|
|
151
|
+
warn_for_deprecated_arguments do |keywords|
|
|
152
|
+
keywords << :string if legacy_string != NOT_GIVEN
|
|
153
|
+
end
|
|
154
|
+
|
|
92
155
|
Char.fix_umlauts(string)
|
|
93
156
|
end
|
|
94
157
|
|
|
@@ -100,7 +163,11 @@ module Faker
|
|
|
100
163
|
fetch('internet.domain_suffix')
|
|
101
164
|
end
|
|
102
165
|
|
|
103
|
-
def mac_address(prefix: '')
|
|
166
|
+
def mac_address(legacy_prefix = NOT_GIVEN, prefix: '')
|
|
167
|
+
warn_for_deprecated_arguments do |keywords|
|
|
168
|
+
keywords << :prefix if legacy_prefix != NOT_GIVEN
|
|
169
|
+
end
|
|
170
|
+
|
|
104
171
|
prefix_digits = prefix.split(':').map { |d| d.to_i(16) }
|
|
105
172
|
address_digits = Array.new((6 - prefix_digits.size)) { rand(256) }
|
|
106
173
|
(prefix_digits + address_digits).map { |d| format('%02x', d) }.join(':')
|
|
@@ -174,11 +241,24 @@ module Faker
|
|
|
174
241
|
"#{ip_v6_address}/#{rand(1..127)}"
|
|
175
242
|
end
|
|
176
243
|
|
|
177
|
-
|
|
244
|
+
# rubocop:disable Metrics/ParameterLists
|
|
245
|
+
def url(legacy_host = NOT_GIVEN, legacy_path = NOT_GIVEN, legacy_scheme = NOT_GIVEN, host: domain_name, path: "/#{username}", scheme: 'http')
|
|
246
|
+
# rubocop:enable Metrics/ParameterLists
|
|
247
|
+
warn_for_deprecated_arguments do |keywords|
|
|
248
|
+
keywords << :host if legacy_host != NOT_GIVEN
|
|
249
|
+
keywords << :path if legacy_path != NOT_GIVEN
|
|
250
|
+
keywords << :scheme if legacy_scheme != NOT_GIVEN
|
|
251
|
+
end
|
|
252
|
+
|
|
178
253
|
"#{scheme}://#{host}#{path}"
|
|
179
254
|
end
|
|
180
255
|
|
|
181
|
-
def slug(words: nil, glue: nil)
|
|
256
|
+
def slug(legacy_words = NOT_GIVEN, legacy_glue = NOT_GIVEN, words: nil, glue: nil)
|
|
257
|
+
warn_for_deprecated_arguments do |keywords|
|
|
258
|
+
keywords << :words if legacy_words != NOT_GIVEN
|
|
259
|
+
keywords << :glue if legacy_glue != NOT_GIVEN
|
|
260
|
+
end
|
|
261
|
+
|
|
182
262
|
glue ||= sample(%w[- _])
|
|
183
263
|
(words || Faker::Lorem.words(number: 2).join(' ')).delete(',.').gsub(' ', glue).downcase
|
|
184
264
|
end
|
|
@@ -187,7 +267,11 @@ module Faker
|
|
|
187
267
|
shuffle(rand(16**64).to_s(16).rjust(64, '0').chars.to_a).join
|
|
188
268
|
end
|
|
189
269
|
|
|
190
|
-
def user_agent(vendor: nil)
|
|
270
|
+
def user_agent(legacy_vendor = NOT_GIVEN, vendor: nil)
|
|
271
|
+
warn_for_deprecated_arguments do |keywords|
|
|
272
|
+
keywords << :vendor if legacy_vendor != NOT_GIVEN
|
|
273
|
+
end
|
|
274
|
+
|
|
191
275
|
agent_hash = translate('faker.internet.user_agent')
|
|
192
276
|
agents = vendor.respond_to?(:to_sym) && agent_hash[vendor.to_sym] || agent_hash[sample(agent_hash.keys)]
|
|
193
277
|
sample(agents)
|
|
@@ -6,13 +6,22 @@ module Faker
|
|
|
6
6
|
|
|
7
7
|
class << self
|
|
8
8
|
# Generate random amount between values with 2 decimals
|
|
9
|
-
def amount_between(from: 0, to: 0)
|
|
9
|
+
def amount_between(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: 0, to: 0)
|
|
10
|
+
warn_for_deprecated_arguments do |keywords|
|
|
11
|
+
keywords << :from if legacy_from != NOT_GIVEN
|
|
12
|
+
keywords << :to if legacy_to != NOT_GIVEN
|
|
13
|
+
end
|
|
14
|
+
|
|
10
15
|
Faker::Base.rand_in_range(from, to).round(2)
|
|
11
16
|
end
|
|
12
17
|
|
|
13
18
|
# International bank slip reference https://en.wikipedia.org/wiki/Creditor_Reference
|
|
14
19
|
# ref is optional so that we can create unit tests
|
|
15
|
-
def creditor_reference(ref: '')
|
|
20
|
+
def creditor_reference(legacy_ref = NOT_GIVEN, ref: '')
|
|
21
|
+
warn_for_deprecated_arguments do |keywords|
|
|
22
|
+
keywords << :ref if legacy_ref != NOT_GIVEN
|
|
23
|
+
end
|
|
24
|
+
|
|
16
25
|
ref = reference if ref.empty?
|
|
17
26
|
|
|
18
27
|
'RF' + iban_checksum('RF', ref) + ref
|
|
@@ -20,7 +29,11 @@ module Faker
|
|
|
20
29
|
|
|
21
30
|
# Payment references have some rules in certain countries
|
|
22
31
|
# ref is optional so that we can create unit tests
|
|
23
|
-
def reference(ref: '')
|
|
32
|
+
def reference(legacy_ref = NOT_GIVEN, ref: '')
|
|
33
|
+
warn_for_deprecated_arguments do |keywords|
|
|
34
|
+
keywords << :ref if legacy_ref != NOT_GIVEN
|
|
35
|
+
end
|
|
36
|
+
|
|
24
37
|
pattern = fetch('invoice.reference.pattern')
|
|
25
38
|
|
|
26
39
|
ref = Base.regexify(/#{pattern}/) if ref.empty?
|
data/lib/faker/default/json.rb
CHANGED
|
@@ -3,7 +3,12 @@ module Faker
|
|
|
3
3
|
require 'json'
|
|
4
4
|
|
|
5
5
|
class << self
|
|
6
|
-
def shallow_json(width: 3, options: { key: 'Name.first_name', value: 'Name.first_name' })
|
|
6
|
+
def shallow_json(legacy_width = NOT_GIVEN, legacy_options = NOT_GIVEN, width: 3, options: { key: 'Name.first_name', value: 'Name.first_name' })
|
|
7
|
+
warn_for_deprecated_arguments do |keywords|
|
|
8
|
+
keywords << :width if legacy_width != NOT_GIVEN
|
|
9
|
+
keywords << :options if legacy_options != NOT_GIVEN
|
|
10
|
+
end
|
|
11
|
+
|
|
7
12
|
options[:key] = 'Faker::' + options[:key]
|
|
8
13
|
options[:value] = 'Faker::' + options[:value]
|
|
9
14
|
|
|
@@ -11,7 +16,19 @@ module Faker
|
|
|
11
16
|
JSON.generate(hash)
|
|
12
17
|
end
|
|
13
18
|
|
|
14
|
-
|
|
19
|
+
# rubocop:disable Metrics/ParameterLists
|
|
20
|
+
def add_depth_to_json(legacy_json = NOT_GIVEN, legacy_width = NOT_GIVEN, legacy_options = NOT_GIVEN, json: shallow_json, width: 3, options: { key: 'Name.first_name', value: 'Name.first_name' })
|
|
21
|
+
# rubocop:enable Metrics/ParameterLists
|
|
22
|
+
warn_for_deprecated_arguments do |keywords|
|
|
23
|
+
keywords << :json if legacy_json != NOT_GIVEN
|
|
24
|
+
end
|
|
25
|
+
warn_for_deprecated_arguments do |keywords|
|
|
26
|
+
keywords << :width if legacy_width != NOT_GIVEN
|
|
27
|
+
end
|
|
28
|
+
warn_for_deprecated_arguments do |keywords|
|
|
29
|
+
keywords << :options if legacy_options != NOT_GIVEN
|
|
30
|
+
end
|
|
31
|
+
|
|
15
32
|
options[:key] = 'Faker::' + options[:key]
|
|
16
33
|
options[:value] = 'Faker::' + options[:value]
|
|
17
34
|
|
data/lib/faker/default/lorem.rb
CHANGED
|
@@ -8,7 +8,12 @@ module Faker
|
|
|
8
8
|
sample(translate('faker.lorem.words'))
|
|
9
9
|
end
|
|
10
10
|
|
|
11
|
-
def words(number: 3, supplemental: false)
|
|
11
|
+
def words(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 3, supplemental: false)
|
|
12
|
+
warn_for_deprecated_arguments do |keywords|
|
|
13
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
|
14
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
|
15
|
+
end
|
|
16
|
+
|
|
12
17
|
resolved_num = resolve(number)
|
|
13
18
|
word_list = (
|
|
14
19
|
translate('faker.lorem.words') +
|
|
@@ -22,31 +27,84 @@ module Faker
|
|
|
22
27
|
sample(Types::CHARACTERS)
|
|
23
28
|
end
|
|
24
29
|
|
|
25
|
-
|
|
26
|
-
|
|
30
|
+
##
|
|
31
|
+
# Produces a random string of alphanumeric characters
|
|
32
|
+
#
|
|
33
|
+
# @param number [Integer] The number of characters to generate
|
|
34
|
+
# @param min_alpha [Integer] The minimum number of alphabetic to add to the string
|
|
35
|
+
# @param min_numeric [Integer] The minimum number of numbers to add to the string
|
|
36
|
+
#
|
|
37
|
+
# @return [String]
|
|
38
|
+
#
|
|
39
|
+
# @example
|
|
40
|
+
# Faker::Lorem.characters #=> "uw1ep04lhs0c4d931n1jmrspprf5w..."
|
|
41
|
+
# Faker::Lorem.characters(number: 10) #=> "ang9cbhoa8"
|
|
42
|
+
# Faker::Lorem.characters(number: 10, min_alpha: 4) #=> "ang9cbhoa8"
|
|
43
|
+
# Faker::Lorem.characters(number: 10, min_alpha: 4, min_numeric: 1) #=> "ang9cbhoa8"
|
|
44
|
+
#
|
|
45
|
+
# @faker.version 2.1.3
|
|
46
|
+
def characters(legacy_number = NOT_GIVEN, number: 255, min_alpha: 0, min_numeric: 0)
|
|
47
|
+
warn_for_deprecated_arguments do |keywords|
|
|
48
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
Alphanumeric.alphanumeric(number: number, min_alpha: min_alpha, min_numeric: min_numeric)
|
|
27
52
|
end
|
|
28
53
|
|
|
29
54
|
def multibyte
|
|
30
55
|
sample(translate('faker.lorem.multibyte')).pack('C*').force_encoding('utf-8')
|
|
31
56
|
end
|
|
32
57
|
|
|
33
|
-
|
|
58
|
+
# rubocop:disable Metrics/ParameterLists
|
|
59
|
+
def sentence(legacy_word_count = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, legacy_random_words_to_add = NOT_GIVEN, word_count: 4, supplemental: false, random_words_to_add: 0)
|
|
60
|
+
# rubocop:enable Metrics/ParameterLists
|
|
61
|
+
warn_for_deprecated_arguments do |keywords|
|
|
62
|
+
keywords << :word_count if legacy_word_count != NOT_GIVEN
|
|
63
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
|
64
|
+
keywords << :random_words_to_add if legacy_random_words_to_add != NOT_GIVEN
|
|
65
|
+
end
|
|
66
|
+
|
|
34
67
|
words(number: word_count + rand(random_words_to_add.to_i), supplemental: supplemental).join(' ').capitalize + locale_period
|
|
35
68
|
end
|
|
36
69
|
|
|
37
|
-
def sentences(number: 3, supplemental: false)
|
|
70
|
+
def sentences(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 3, supplemental: false)
|
|
71
|
+
warn_for_deprecated_arguments do |keywords|
|
|
72
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
|
73
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
|
74
|
+
end
|
|
75
|
+
|
|
38
76
|
1.upto(resolve(number)).collect { sentence(word_count: 3, supplemental: supplemental) }
|
|
39
77
|
end
|
|
40
78
|
|
|
41
|
-
|
|
79
|
+
# rubocop:disable Metrics/ParameterLists
|
|
80
|
+
def paragraph(legacy_sentence_count = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, legacy_random_sentences_to_add = NOT_GIVEN, sentence_count: 3, supplemental: false, random_sentences_to_add: 0)
|
|
81
|
+
# rubocop:enable Metrics/ParameterLists
|
|
82
|
+
warn_for_deprecated_arguments do |keywords|
|
|
83
|
+
keywords << :sentence_count if legacy_sentence_count != NOT_GIVEN
|
|
84
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
|
85
|
+
keywords << :random_sentences_to_add if legacy_random_sentences_to_add != NOT_GIVEN
|
|
86
|
+
end
|
|
87
|
+
|
|
42
88
|
sentences(number: resolve(sentence_count) + rand(random_sentences_to_add.to_i), supplemental: supplemental).join(locale_space)
|
|
43
89
|
end
|
|
44
90
|
|
|
45
|
-
def paragraphs(number: 3, supplemental: false)
|
|
91
|
+
def paragraphs(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 3, supplemental: false)
|
|
92
|
+
warn_for_deprecated_arguments do |keywords|
|
|
93
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
|
94
|
+
end
|
|
95
|
+
warn_for_deprecated_arguments do |keywords|
|
|
96
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
|
97
|
+
end
|
|
98
|
+
|
|
46
99
|
1.upto(resolve(number)).collect { paragraph(sentence_count: 3, supplemental: supplemental) }
|
|
47
100
|
end
|
|
48
101
|
|
|
49
|
-
def paragraph_by_chars(number: 256, supplemental: false)
|
|
102
|
+
def paragraph_by_chars(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 256, supplemental: false)
|
|
103
|
+
warn_for_deprecated_arguments do |keywords|
|
|
104
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
|
105
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
|
106
|
+
end
|
|
107
|
+
|
|
50
108
|
paragraph = paragraph(sentence_count: 3, supplemental: supplemental)
|
|
51
109
|
|
|
52
110
|
paragraph += ' ' + paragraph(sentence_count: 3, supplemental: supplemental) while paragraph.length < number
|
|
@@ -54,11 +112,24 @@ module Faker
|
|
|
54
112
|
paragraph[0...number - 1] + '.'
|
|
55
113
|
end
|
|
56
114
|
|
|
57
|
-
|
|
115
|
+
# rubocop:disable Metrics/ParameterLists
|
|
116
|
+
def question(legacy_word_count = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, legacy_random_words_to_add = NOT_GIVEN, word_count: 4, supplemental: false, random_words_to_add: 0)
|
|
117
|
+
# rubocop:enable Metrics/ParameterLists
|
|
118
|
+
warn_for_deprecated_arguments do |keywords|
|
|
119
|
+
keywords << :word_count if legacy_word_count != NOT_GIVEN
|
|
120
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
|
121
|
+
keywords << :random_words_to_add if legacy_random_words_to_add != NOT_GIVEN
|
|
122
|
+
end
|
|
123
|
+
|
|
58
124
|
words(number: word_count + rand(random_words_to_add), supplemental: supplemental).join(' ').capitalize + locale_question_mark
|
|
59
125
|
end
|
|
60
126
|
|
|
61
|
-
def questions(number: 3, supplemental: false)
|
|
127
|
+
def questions(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 3, supplemental: false)
|
|
128
|
+
warn_for_deprecated_arguments do |keywords|
|
|
129
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
|
130
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
|
131
|
+
end
|
|
132
|
+
|
|
62
133
|
1.upto(resolve(number)).collect { question(word_count: 3, supplemental: supplemental) }
|
|
63
134
|
end
|
|
64
135
|
|