faker 2.10.2 → 2.15.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 +323 -0
- data/README.md +27 -2
- data/lib/faker.rb +57 -25
- data/lib/faker/blockchain/aeternity.rb +4 -4
- data/lib/faker/books/dune.rb +15 -2
- data/lib/faker/books/lovecraft.rb +8 -4
- data/lib/faker/default/address.rb +35 -5
- data/lib/faker/default/bank.rb +80 -3
- data/lib/faker/default/barcode.rb +154 -0
- data/lib/faker/default/beer.rb +3 -3
- data/lib/faker/default/blood.rb +48 -0
- data/lib/faker/default/business.rb +1 -1
- data/lib/faker/default/camera.rb +46 -0
- data/lib/faker/default/cannabis.rb +80 -0
- data/lib/faker/default/chile_rut.rb +47 -3
- data/lib/faker/default/code.rb +98 -17
- data/lib/faker/default/commerce.rb +74 -11
- data/lib/faker/default/company.rb +78 -11
- data/lib/faker/default/compass.rb +135 -0
- data/lib/faker/default/computer.rb +63 -0
- data/lib/faker/default/construction.rb +54 -0
- data/lib/faker/default/cosmere.rb +90 -0
- data/lib/faker/default/crypto_coin.rb +45 -0
- data/lib/faker/default/date.rb +16 -12
- data/lib/faker/default/driving_licence.rb +65 -0
- data/lib/faker/default/drone.rb +332 -0
- data/lib/faker/default/faker_adjective.rb +35 -0
- data/lib/faker/default/file.rb +49 -0
- data/lib/faker/default/finance.rb +45 -0
- data/lib/faker/default/food.rb +1 -1
- data/lib/faker/default/funny_name.rb +45 -0
- data/lib/faker/default/gender.rb +1 -1
- data/lib/faker/default/hipster.rb +101 -4
- data/lib/faker/default/id_number.rb +88 -2
- data/lib/faker/default/internet.rb +68 -10
- data/lib/faker/default/internet_http.rb +48 -0
- data/lib/faker/default/invoice.rb +33 -6
- data/lib/faker/default/json.rb +59 -4
- data/lib/faker/default/lorem.rb +2 -2
- data/lib/faker/default/lorem_flickr.rb +65 -0
- data/lib/faker/default/lorem_pixel.rb +22 -0
- data/lib/faker/default/markdown.rb +89 -0
- data/lib/faker/default/measurement.rb +93 -2
- data/lib/faker/default/military.rb +26 -0
- data/lib/faker/default/mountain.rb +33 -0
- data/lib/faker/default/name.rb +98 -0
- data/lib/faker/default/nhs.rb +19 -0
- data/lib/faker/default/number.rb +6 -8
- data/lib/faker/default/omniauth.rb +107 -52
- data/lib/faker/default/phone_number.rb +88 -5
- data/lib/faker/default/placeholdit.rb +21 -0
- data/lib/faker/default/relationship.rb +1 -1
- data/lib/faker/default/slack_emoji.rb +81 -0
- data/lib/faker/default/south_africa.rb +90 -0
- data/lib/faker/default/space.rb +1 -1
- data/lib/faker/default/string.rb +19 -3
- data/lib/faker/default/stripe.rb +64 -3
- data/lib/faker/default/twitter.rb +35 -0
- data/lib/faker/default/types.rb +80 -0
- data/lib/faker/default/university.rb +45 -0
- data/lib/faker/default/vehicle.rb +184 -4
- data/lib/faker/default/verb.rb +45 -0
- data/lib/faker/default/world_cup.rb +4 -4
- data/lib/faker/fantasy/tolkien.rb +67 -0
- data/lib/faker/games/clash_of_clans.rb +48 -0
- data/lib/faker/games/control.rb +113 -0
- data/lib/faker/games/dnd.rb +136 -0
- data/lib/faker/games/elder_scrolls.rb +26 -0
- data/lib/faker/games/heroes.rb +13 -0
- data/lib/faker/games/heroes_of_the_storm.rb +16 -5
- data/lib/faker/games/minecraft.rb +113 -0
- data/lib/faker/games/street_fighter.rb +61 -0
- data/lib/faker/games/super_mario.rb +48 -0
- data/lib/faker/games/warhammer_fantasy.rb +74 -0
- data/lib/faker/games/world_of_warcraft.rb +26 -1
- data/lib/faker/japanese_media/conan.rb +48 -0
- data/lib/faker/japanese_media/doraemon.rb +48 -0
- data/lib/faker/japanese_media/dragon_ball.rb +26 -0
- data/lib/faker/japanese_media/naruto.rb +61 -0
- data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
- data/lib/faker/movies/departed.rb +49 -0
- data/lib/faker/movies/hobbit.rb +4 -4
- data/lib/faker/movies/how_to_train_your_dragon.rb +48 -0
- data/lib/faker/movies/lord_of_the_rings.rb +3 -3
- data/lib/faker/movies/movie.rb +13 -0
- data/lib/faker/movies/room.rb +63 -0
- data/lib/faker/movies/star_wars.rb +2 -2
- data/lib/faker/music/hiphop.rb +48 -0
- data/lib/faker/music/opera.rb +237 -1
- data/lib/faker/music/pearl_jam.rb +50 -0
- data/lib/faker/music/phish.rb +27 -1
- data/lib/faker/music/prince.rb +64 -0
- data/lib/faker/music/rush.rb +37 -0
- data/lib/faker/music/show.rb +49 -0
- data/lib/faker/quotes/chiquito.rb +80 -0
- data/lib/faker/quotes/quote.rb +80 -1
- data/lib/faker/quotes/rajnikanth.rb +26 -0
- data/lib/faker/quotes/shakespeare.rb +36 -0
- data/lib/faker/sports/volleyball.rb +74 -0
- data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +13 -0
- data/lib/faker/tv_shows/big_bang_theory.rb +37 -0
- data/lib/faker/tv_shows/buffy.rb +17 -4
- data/lib/faker/tv_shows/dr_who.rb +1 -1
- data/lib/faker/tv_shows/final_space.rb +51 -0
- data/lib/faker/tv_shows/futurama.rb +65 -0
- data/lib/faker/tv_shows/simpsons.rb +14 -0
- data/lib/faker/tv_shows/suits.rb +37 -0
- data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +17 -4
- data/lib/faker/version.rb +1 -1
- data/lib/helpers/base58.rb +1 -1
- data/lib/helpers/char.rb +22 -27
- data/lib/helpers/unique_generator.rb +3 -2
- data/lib/locales/de-AT.yml +4 -2
- data/lib/locales/de-CH.yml +1696 -1
- data/lib/locales/de.yml +4 -2
- data/lib/locales/en-AU.yml +50 -10
- data/lib/locales/en-CA.yml +2 -0
- data/lib/locales/en-GB.yml +1 -1
- data/lib/locales/en-IND.yml +2 -1
- data/lib/locales/en-MS.yml +2 -1
- data/lib/locales/en-NEP.yml +4 -1
- data/lib/locales/en-NZ.yml +3 -1
- data/lib/locales/en-PAK.yml +2 -1
- data/lib/locales/en-SG.yml +2 -1
- data/lib/locales/en-US.yml +36 -10
- data/lib/locales/en-au-ocker.yml +2 -1
- data/lib/locales/en.yml +0 -3
- data/lib/locales/en/address.yml +2 -0
- data/lib/locales/en/adjective.yml +179 -0
- data/lib/locales/en/animal.yml +1 -1
- data/lib/locales/en/aqua_teen_hunger_force.yml +33 -1
- data/lib/locales/en/bank.yml +1 -1
- data/lib/locales/en/barcode.yml +24 -0
- data/lib/locales/en/big_bang_theory.yml +38 -0
- data/lib/locales/en/blood.yml +13 -0
- data/lib/locales/en/buffy.yml +1 -1
- data/lib/locales/en/camera.yml +611 -0
- data/lib/locales/en/chiquito.yml +64 -0
- data/lib/locales/en/clash_of_clan.yml +101 -0
- data/lib/locales/en/company.yml +2 -2
- data/lib/locales/en/computer.yml +36 -0
- data/lib/locales/en/conan.yml +171 -0
- data/lib/locales/en/control.yml +247 -0
- data/lib/locales/en/demographic.yml +218 -5
- data/lib/locales/en/departed.yml +50 -0
- data/lib/locales/en/dnd.yml +451 -0
- data/lib/locales/en/doraemon.yml +286 -0
- data/lib/locales/en/dota.yml +531 -63
- data/lib/locales/en/dragon_ball.yml +243 -1
- data/lib/locales/en/driving_license.yml +181 -0
- data/lib/locales/en/drone.yml +95 -0
- data/lib/locales/en/dune.yml +401 -131
- data/lib/locales/en/elder_scrolls.yml +583 -9
- data/lib/locales/en/fallout.yml +311 -133
- data/lib/locales/en/final_space.yml +37 -0
- data/lib/locales/en/finance.yml +53 -0
- data/lib/locales/en/fresh_prince_of_bel_air.yml +1 -1
- data/lib/locales/en/futurama.yml +344 -0
- data/lib/locales/en/half_life.yml +84 -3
- data/lib/locales/en/heroes.yml +408 -3
- data/lib/locales/en/heroes_of_the_storm.yml +131 -4
- data/lib/locales/en/house.yml +1 -1
- data/lib/locales/en/how_to_train_your_dragon.yml +174 -0
- data/lib/locales/en/jack_handey.yml +54 -0
- data/lib/locales/en/league_of_legends.yml +285 -6
- data/lib/locales/en/military.yml +179 -5
- data/lib/locales/en/minecraft.yml +663 -0
- data/lib/locales/en/mountain.yml +158 -0
- data/lib/locales/en/movie.yml +192 -1
- data/lib/locales/en/music.yml +451 -29
- data/lib/locales/en/myst.yml +87 -31
- data/lib/locales/en/name.yml +6 -5
- data/lib/locales/en/naruto.yml +231 -0
- data/lib/locales/en/one_piece.yml +2 -2
- data/lib/locales/en/opera.yml +168 -0
- data/lib/locales/en/overwatch.yml +2650 -2622
- data/lib/locales/en/pearl_jam.yml +213 -0
- data/lib/locales/en/phish.yml +392 -1
- data/lib/locales/en/pokemon.yml +417 -4
- data/lib/locales/en/prince.yml +227 -0
- data/lib/locales/en/quote.yml +692 -163
- data/lib/locales/en/rajnikanth.yml +77 -0
- data/lib/locales/en/room.yml +68 -0
- data/lib/locales/en/rush.yml +32 -0
- data/lib/locales/en/show.yml +597 -0
- data/lib/locales/en/simpsons.yml +668 -0
- data/lib/locales/en/source.yml +30 -0
- data/lib/locales/en/star_trek.yml +1 -1
- data/lib/locales/en/star_wars.yml +568 -220
- data/lib/locales/en/street_fighter.yml +1524 -0
- data/lib/locales/en/studio_ghibli.yml +107 -0
- data/lib/locales/en/suits.yml +45 -0
- data/lib/locales/en/super_mario.yml +58 -0
- data/lib/locales/en/super_smash_bros.yml +16 -4
- data/lib/locales/en/tolkien.yml +2453 -0
- data/lib/locales/en/volleyball.yml +501 -0
- data/lib/locales/en/warhammer_fantasy.yml +582 -0
- data/lib/locales/en/witcher.yml +389 -7
- data/lib/locales/en/world_of_warcraft.yml +122 -4
- data/lib/locales/en/zelda.yml +962 -4
- data/lib/locales/es.yml +56 -0
- data/lib/locales/fi-FI.yml +1 -1
- data/lib/locales/fr-CA.yml +21 -5
- data/lib/locales/fr-CH.yml +2 -2
- data/lib/locales/fr.yml +8 -2
- data/lib/locales/id.yml +2 -1
- data/lib/locales/it.yml +2 -1
- data/lib/locales/ja.yml +5 -1
- data/lib/locales/ko.yml +94 -2
- data/lib/locales/nb-NO.yml +4 -2
- data/lib/locales/pt-BR.yml +2 -1
- data/lib/locales/pt.yml +3 -1
- data/lib/locales/ru.yml +3 -1
- data/lib/locales/sk.yml +4 -2
- data/lib/locales/uk.yml +2 -0
- metadata +89 -21
- data/lib/locales/en/hobbit.yml +0 -19
- data/lib/locales/en/lord_of_the_rings.yml +0 -6
data/lib/faker/default/food.rb
CHANGED
@@ -5,10 +5,28 @@ module Faker
|
|
5
5
|
flexible :funny_name
|
6
6
|
|
7
7
|
class << self
|
8
|
+
##
|
9
|
+
# Retrieves a funny name.
|
10
|
+
#
|
11
|
+
# @return [String]
|
12
|
+
#
|
13
|
+
# @example
|
14
|
+
# Faker::FunnyName.name #=> "Sam Pull"
|
15
|
+
#
|
16
|
+
# @faker.version 1.8.0
|
8
17
|
def name
|
9
18
|
fetch('funny_name.name')
|
10
19
|
end
|
11
20
|
|
21
|
+
##
|
22
|
+
# Retrieves a funny two word name.
|
23
|
+
#
|
24
|
+
# @return [String]
|
25
|
+
#
|
26
|
+
# @example
|
27
|
+
# Faker::FunnyName.two_word_name #=> "Shirley Knot"
|
28
|
+
#
|
29
|
+
# @faker.version 1.8.0
|
12
30
|
def two_word_name
|
13
31
|
two_word_names = fetch_all('funny_name.name').select do |name|
|
14
32
|
name.count(' ') == 1
|
@@ -17,6 +35,15 @@ module Faker
|
|
17
35
|
sample(two_word_names)
|
18
36
|
end
|
19
37
|
|
38
|
+
##
|
39
|
+
# Retrieves a funny three word name.
|
40
|
+
#
|
41
|
+
# @return [String]
|
42
|
+
#
|
43
|
+
# @example
|
44
|
+
# Faker::FunnyName.three_word_name #=> "Carson O. Gin"
|
45
|
+
#
|
46
|
+
# @faker.version 1.8.0
|
20
47
|
def three_word_name
|
21
48
|
three_word_names = fetch_all('funny_name.name').select do |name|
|
22
49
|
name.count(' ') == 2
|
@@ -25,6 +52,15 @@ module Faker
|
|
25
52
|
sample(three_word_names)
|
26
53
|
end
|
27
54
|
|
55
|
+
##
|
56
|
+
# Retrieves a funny four word name.
|
57
|
+
#
|
58
|
+
# @return [String]
|
59
|
+
#
|
60
|
+
# @example
|
61
|
+
# Faker::FunnyName.four_word_name #=> "Maude L. T. Ford"
|
62
|
+
#
|
63
|
+
# @faker.version 1.8.0
|
28
64
|
def four_word_name
|
29
65
|
four_word_names = fetch_all('funny_name.name').select do |name|
|
30
66
|
name.count(' ') == 3
|
@@ -33,6 +69,15 @@ module Faker
|
|
33
69
|
sample(four_word_names)
|
34
70
|
end
|
35
71
|
|
72
|
+
##
|
73
|
+
# Retrieves a funny name with an initial.
|
74
|
+
#
|
75
|
+
# @return [String]
|
76
|
+
#
|
77
|
+
# @example
|
78
|
+
# Faker::FunnyName.name_with_initial #=> "Heather N. Yonn"
|
79
|
+
#
|
80
|
+
# @faker.version 1.8.0
|
36
81
|
def name_with_initial
|
37
82
|
names_with_initials = fetch_all('funny_name.name').select do |name|
|
38
83
|
name.count('.').positive?
|
data/lib/faker/default/gender.rb
CHANGED
@@ -3,11 +3,35 @@
|
|
3
3
|
module Faker
|
4
4
|
class Hipster < Base
|
5
5
|
class << self
|
6
|
+
##
|
7
|
+
# Produces a random hipster word.
|
8
|
+
#
|
9
|
+
# @return [String]
|
10
|
+
#
|
11
|
+
# @example
|
12
|
+
# Faker::Hipster.word #=> "irony"
|
13
|
+
#
|
14
|
+
# @faker.version 1.6.0
|
6
15
|
def word
|
7
16
|
random_word = sample(translate('faker.hipster.words'))
|
8
17
|
random_word =~ /\s/ ? word : random_word
|
9
18
|
end
|
10
19
|
|
20
|
+
##
|
21
|
+
# Produces a random hipster word.
|
22
|
+
#
|
23
|
+
# @param number [Integer] Specifies the number of words returned
|
24
|
+
# @param supplemental [Boolean] Specifies if the words are supplemental
|
25
|
+
# @param spaces_allowed [Boolean] Specifies if the words may contain spaces
|
26
|
+
# @return [Array<String>]
|
27
|
+
#
|
28
|
+
# @example
|
29
|
+
# Faker::Hipster.words #=> ["pug", "pitchfork", "chia"]
|
30
|
+
# Faker::Hipster.words(number: 4) #=> ["ugh", "cardigan", "poutine", "stumptown"]
|
31
|
+
# Faker::Hipster.words(number: 4, supplemental: true) #=> ["iste", "seitan", "normcore", "provident"]
|
32
|
+
# Faker::Hipster.words(number: 4, supplemental: true, spaces_allowed: true) #=> ["qui", "magni", "craft beer", "est"]
|
33
|
+
#
|
34
|
+
# @faker.version 1.6.0
|
11
35
|
# rubocop:disable Metrics/ParameterLists
|
12
36
|
def words(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, legacy_spaces_allowed = NOT_GIVEN, number: 3, supplemental: false, spaces_allowed: false)
|
13
37
|
# rubocop:enable Metrics/ParameterLists
|
@@ -30,8 +54,27 @@ module Faker
|
|
30
54
|
words.each_with_index { |w, i| words[i] = word if w =~ /\s/ }
|
31
55
|
end
|
32
56
|
|
57
|
+
##
|
58
|
+
# Produces a random hipster sentence.
|
59
|
+
#
|
60
|
+
# @param word_count [Integer] Specifies the number of words in the sentence
|
61
|
+
# @param supplemental [Boolean] Specifies if the words are supplemental
|
62
|
+
# @param random_words_to_add [Integer] Specifies the number of random words to add
|
63
|
+
# @param open_compounds_allowed [Boolean] Specifies if the generated sentence can contain words having additional spaces
|
64
|
+
# @return [String]
|
65
|
+
#
|
66
|
+
# @example
|
67
|
+
# Faker::Hipster.sentence #=> "Park iphone leggings put a bird on it."
|
68
|
+
# Faker::Hipster.sentence(word_count: 3) #=> "Pour-over swag godard."
|
69
|
+
# Faker::Hipster.sentence(word_count: 3, supplemental: true) #=> "Beard laboriosam sequi celiac."
|
70
|
+
# Faker::Hipster.sentence(word_count: 3, supplemental: false, random_words_to_add: 4) #=> "Bitters retro mustache aesthetic biodiesel 8-bit."
|
71
|
+
# Faker::Hipster.sentence(word_count: 3, supplemental: true, random_words_to_add: 4) #=> "Occaecati deleniti messenger bag meh crucifix autem."
|
72
|
+
# Faker::Hipster.sentence(word_count: 3, supplemental: true, random_words_to_add: 0, open_compounds_allowed: true) #=> "Kale chips nihil eos."
|
73
|
+
# Faker::Hipster.sentence(word_count: 3, supplemental: true, random_words_to_add: 0, open_compounds_allowed: false) #=> "Dreamcatcher umami fixie."
|
74
|
+
#
|
75
|
+
# @faker.version 1.6.0
|
33
76
|
# rubocop:disable Metrics/ParameterLists
|
34
|
-
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: 6)
|
77
|
+
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: 6, open_compounds_allowed: true)
|
35
78
|
# rubocop:enable Metrics/ParameterLists
|
36
79
|
warn_for_deprecated_arguments do |keywords|
|
37
80
|
keywords << :word_count if legacy_word_count != NOT_GIVEN
|
@@ -39,9 +82,22 @@ module Faker
|
|
39
82
|
keywords << :random_words_to_add if legacy_random_words_to_add != NOT_GIVEN
|
40
83
|
end
|
41
84
|
|
42
|
-
words(number: word_count + rand(random_words_to_add.to_i).to_i, supplemental: supplemental, spaces_allowed:
|
85
|
+
"#{words(number: word_count + rand(random_words_to_add.to_i).to_i, supplemental: supplemental, spaces_allowed: open_compounds_allowed).join(' ').capitalize}."
|
43
86
|
end
|
44
87
|
|
88
|
+
##
|
89
|
+
# Produces random hipster sentences.
|
90
|
+
#
|
91
|
+
# @param number [Integer] Specifies the number of sentences returned
|
92
|
+
# @param supplemental [Boolean] Specifies if the words are supplemental
|
93
|
+
# @return [Array<String>]
|
94
|
+
#
|
95
|
+
# @example
|
96
|
+
# Faker::Hipster.sentences #=> ["Godard pitchfork vinegar chillwave everyday 90's whatever.", "Pour-over artisan distillery street waistcoat.", "Salvia yr leggings franzen blue bottle."]
|
97
|
+
# Faker::Hipster.sentences(number: 1) #=> ["Before they sold out pinterest venmo umami try-hard ugh hoodie artisan."]
|
98
|
+
# Faker::Hipster.sentences(number: 1, supplemental: true) #=> ["Et sustainable optio aesthetic et."]
|
99
|
+
#
|
100
|
+
# @faker.version 1.6.0
|
45
101
|
def sentences(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 3, supplemental: false)
|
46
102
|
warn_for_deprecated_arguments do |keywords|
|
47
103
|
keywords << :number if legacy_number != NOT_GIVEN
|
@@ -55,6 +111,22 @@ module Faker
|
|
55
111
|
end
|
56
112
|
end
|
57
113
|
|
114
|
+
##
|
115
|
+
# Produces a random hipster paragraph.
|
116
|
+
#
|
117
|
+
# @param sentence_count [Integer] Specifies the number of sentences in the paragraph
|
118
|
+
# @param supplemental [Boolean] Specifies if the words are supplemental
|
119
|
+
# @param random_sentences_to_add [Boolean] Specifies the number of random sentences to add
|
120
|
+
# @return [String]
|
121
|
+
#
|
122
|
+
# @example
|
123
|
+
# Faker::Hipster.paragraph #=> "Migas fingerstache pbr&b tofu. Polaroid distillery typewriter echo tofu actually. Slow-carb fanny pack pickled direct trade scenester mlkshk plaid. Banjo venmo chambray cold-pressed typewriter. Fap skateboard intelligentsia."
|
124
|
+
# Faker::Hipster.paragraph(sentence_count: 2) #=> "Yolo tilde farm-to-table hashtag. Lomo kitsch disrupt forage +1."
|
125
|
+
# Faker::Hipster.paragraph(sentence_count: 2, supplemental: true) #=> "Typewriter iste ut viral kombucha voluptatem. Sint voluptates saepe. Direct trade irony chia excepturi yuccie. Biodiesel esse listicle et quam suscipit."
|
126
|
+
# Faker::Hipster.paragraph(sentence_count: 2, supplemental: false, random_sentences_to_add: 4) #=> "Selvage vhs chartreuse narwhal vinegar. Authentic vinyl truffaut carry vhs pop-up. Hammock everyday iphone locavore thundercats bitters vegan goth. Fashion axe banh mi shoreditch whatever artisan."
|
127
|
+
# Faker::Hipster.paragraph(sentence_count: 2, supplemental: true, random_sentences_to_add: 4) #=> "Deep v gluten-free unde waistcoat aperiam migas voluptas dolorum. Aut drinking illo sustainable sapiente. Direct trade fanny pack kale chips ennui semiotics."
|
128
|
+
#
|
129
|
+
# @faker.version 1.6.0
|
58
130
|
# rubocop:disable Metrics/ParameterLists
|
59
131
|
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: 3)
|
60
132
|
# rubocop:enable Metrics/ParameterLists
|
@@ -67,6 +139,19 @@ module Faker
|
|
67
139
|
sentences(number: resolve(sentence_count) + rand(random_sentences_to_add.to_i).to_i, supplemental: supplemental).join(' ')
|
68
140
|
end
|
69
141
|
|
142
|
+
##
|
143
|
+
# Produces random hipster paragraphs.
|
144
|
+
#
|
145
|
+
# @param number [Integer] Specifies the number of paragraphs
|
146
|
+
# @param supplemental [Boolean] Specifies if the words are supplemental
|
147
|
+
# @return [Array<String>]
|
148
|
+
#
|
149
|
+
# @example
|
150
|
+
# Faker::Hipster.paragraphs #=> ["Tilde microdosing blog cliche meggings. Intelligentsia five dollar toast forage yuccie. Master kitsch knausgaard. Try-hard everyday trust fund mumblecore.", "Normcore viral pickled. Listicle humblebrag swag tote bag. Taxidermy street hammock neutra butcher cred kale chips. Blog portland humblebrag trust fund irony.", "Single-origin coffee fixie cleanse tofu xoxo. Post-ironic tote bag ramps gluten-free locavore mumblecore hammock. Umami loko twee. Ugh kitsch before they sold out."]
|
151
|
+
# Faker::Hipster.paragraphs(number: 1) #=> ["Skateboard cronut synth +1 fashion axe. Pop-up polaroid skateboard asymmetrical. Ennui fingerstache shoreditch before they sold out. Tattooed pitchfork ramps. Photo booth yr messenger bag raw denim bespoke locavore lomo synth."]
|
152
|
+
# Faker::Hipster.paragraphs(number: 1, supplemental: true) #=> ["Quae direct trade pbr&b quo taxidermy autem loko. Umami quas ratione migas cardigan sriracha minima. Tenetur perspiciatis pickled sed eum doloribus truffaut. Excepturi dreamcatcher meditation."]
|
153
|
+
#
|
154
|
+
# @faker.version 1.6.0
|
70
155
|
def paragraphs(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 3, supplemental: false)
|
71
156
|
warn_for_deprecated_arguments do |keywords|
|
72
157
|
keywords << :number if legacy_number != NOT_GIVEN
|
@@ -80,6 +165,18 @@ module Faker
|
|
80
165
|
end
|
81
166
|
end
|
82
167
|
|
168
|
+
##
|
169
|
+
# Produces a random hipster paragraph by characters.
|
170
|
+
#
|
171
|
+
# @param characters [Integer] Specifies the number of characters in the paragraph
|
172
|
+
# @param supplemental [Boolean] Specifies if the words are supplemental
|
173
|
+
# @return [String]
|
174
|
+
#
|
175
|
+
# @example
|
176
|
+
# Faker::Hipster.paragraph_by_chars #=> "Truffaut stumptown trust fund 8-bit messenger bag portland. Meh kombucha selvage swag biodiesel. Lomo kinfolk jean shorts asymmetrical diy. Wayfarers portland twee stumptown. Wes anderson biodiesel retro 90's pabst. Diy echo 90's mixtape semiotics. Cornho."
|
177
|
+
# Faker::Hipster.paragraph_by_chars(characters: 256, supplemental: false) #=> "Hella kogi blog narwhal sartorial selfies mustache schlitz. Bespoke normcore kitsch cred hella fixie. Park aesthetic fixie migas twee. Cliche mustache brunch tumblr fixie godard. Drinking pop-up synth hoodie dreamcatcher typewriter. Kitsch biodiesel green."
|
178
|
+
#
|
179
|
+
# @faker.version 1.6.0
|
83
180
|
def paragraph_by_chars(legacy_characters = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, characters: 256, supplemental: false)
|
84
181
|
warn_for_deprecated_arguments do |keywords|
|
85
182
|
keywords << :characters if legacy_characters != NOT_GIVEN
|
@@ -88,9 +185,9 @@ module Faker
|
|
88
185
|
|
89
186
|
paragraph = paragraph(sentence_count: 3, supplemental: supplemental)
|
90
187
|
|
91
|
-
paragraph +=
|
188
|
+
paragraph += " #{paragraph(sentence_count: 3, supplemental: supplemental)}" while paragraph.length < characters
|
92
189
|
|
93
|
-
paragraph[0...characters - 1]
|
190
|
+
"#{paragraph[0...characters - 1]}."
|
94
191
|
end
|
95
192
|
end
|
96
193
|
end
|
@@ -19,10 +19,28 @@ module Faker
|
|
19
19
|
CHILEAN_MODULO = 11
|
20
20
|
|
21
21
|
class << self
|
22
|
+
##
|
23
|
+
# Produces a random valid US Social Security number.
|
24
|
+
#
|
25
|
+
# @return [String]
|
26
|
+
#
|
27
|
+
# @example
|
28
|
+
# Faker::IDNumber.valid #=> "552-56-3593"
|
29
|
+
#
|
30
|
+
# @faker.version 1.6.0
|
22
31
|
def valid
|
23
32
|
_translate('valid')
|
24
33
|
end
|
25
34
|
|
35
|
+
##
|
36
|
+
# Produces a random invalid US Social Security number.
|
37
|
+
#
|
38
|
+
# @return [String]
|
39
|
+
#
|
40
|
+
# @example
|
41
|
+
# Faker::IDNumber.invalid #=> "311-72-0000"
|
42
|
+
#
|
43
|
+
# @faker.version 1.6.0
|
26
44
|
def invalid
|
27
45
|
_translate('invalid')
|
28
46
|
end
|
@@ -33,6 +51,15 @@ module Faker
|
|
33
51
|
INVALID_SSN.any? { |regex| regex =~ ssn } ? ssn_valid : ssn
|
34
52
|
end
|
35
53
|
|
54
|
+
##
|
55
|
+
# Produces a random Spanish citizen identifier (DNI).
|
56
|
+
#
|
57
|
+
# @return [String]
|
58
|
+
#
|
59
|
+
# @example
|
60
|
+
# Faker::IDNumber.spanish_citizen_number #=> "53290236-H"
|
61
|
+
#
|
62
|
+
# @faker.version 1.9.0
|
36
63
|
def spanish_citizen_number
|
37
64
|
num = Faker::Number.number(digits: 8)
|
38
65
|
mod = num.to_i % 23
|
@@ -40,6 +67,15 @@ module Faker
|
|
40
67
|
"#{num}-#{check}"
|
41
68
|
end
|
42
69
|
|
70
|
+
##
|
71
|
+
# Produces a random Spanish foreign born citizen identifier (NIE).
|
72
|
+
#
|
73
|
+
# @return [String]
|
74
|
+
#
|
75
|
+
# @example
|
76
|
+
# Faker::IDNumber.spanish_foreign_citizen_number #=> "Z-1600870-Y"
|
77
|
+
#
|
78
|
+
# @faker.version 1.9.0
|
43
79
|
def spanish_foreign_citizen_number
|
44
80
|
code = 'XYZ'
|
45
81
|
digits = Faker::Number.number(digits: 7)
|
@@ -50,6 +86,16 @@ module Faker
|
|
50
86
|
"#{prefix}-#{digits}-#{check}"
|
51
87
|
end
|
52
88
|
|
89
|
+
##
|
90
|
+
# Produces a random valid South African ID Number.
|
91
|
+
#
|
92
|
+
# @return [String]
|
93
|
+
#
|
94
|
+
# @example
|
95
|
+
# Faker::IDNumber.south_african_id_number #=> "8105128870184"
|
96
|
+
# Faker::IDNumber.valid_south_african_id_number #=> "8105128870184"
|
97
|
+
#
|
98
|
+
# @faker.version 1.9.2
|
53
99
|
def valid_south_african_id_number
|
54
100
|
id_number = [
|
55
101
|
Faker::Date.birthday.strftime('%y%m%d'),
|
@@ -63,6 +109,15 @@ module Faker
|
|
63
109
|
|
64
110
|
alias south_african_id_number valid_south_african_id_number
|
65
111
|
|
112
|
+
##
|
113
|
+
# Produces a random invalid South African ID Number.
|
114
|
+
#
|
115
|
+
# @return [String]
|
116
|
+
#
|
117
|
+
# @example
|
118
|
+
# Faker::IDNumber.invalid_south_african_id_number #=> "1642972065088"
|
119
|
+
#
|
120
|
+
# @faker.version 1.9.2
|
66
121
|
def invalid_south_african_id_number
|
67
122
|
invalid_date_of_birth = [
|
68
123
|
Faker::Number.number(digits: 2),
|
@@ -80,6 +135,17 @@ module Faker
|
|
80
135
|
[id_number, south_african_id_checksum_digit(id_number)].join
|
81
136
|
end
|
82
137
|
|
138
|
+
##
|
139
|
+
# Produces a random Brazilian Citizen Number (CPF).
|
140
|
+
#
|
141
|
+
# @param formatted [Boolean] Specifies if the number is formatted with dividers.
|
142
|
+
# @return [String]
|
143
|
+
#
|
144
|
+
# @example
|
145
|
+
# Faker::IDNumber.brazilian_citizen_number #=> "53540542221"
|
146
|
+
# Faker::IDNumber.brazilian_citizen_number(formatted: true) #=> "535.405.422-21"
|
147
|
+
#
|
148
|
+
# @faker.version 1.9.2
|
83
149
|
def brazilian_citizen_number(legacy_formatted = NOT_GIVEN, formatted: false)
|
84
150
|
warn_for_deprecated_arguments do |keywords|
|
85
151
|
keywords << :formatted if legacy_formatted != NOT_GIVEN
|
@@ -94,6 +160,17 @@ module Faker
|
|
94
160
|
|
95
161
|
alias brazilian_cpf brazilian_citizen_number
|
96
162
|
|
163
|
+
##
|
164
|
+
# Produces a random Brazilian ID Number (RG).
|
165
|
+
#
|
166
|
+
# @param formatted [Boolean] Specifies if the number is formatted with dividers.
|
167
|
+
# @return [String]
|
168
|
+
#
|
169
|
+
# @example
|
170
|
+
# Faker::IDNumber.brazilian_id #=> "493054029"
|
171
|
+
# Faker::IDNumber.brazilian_id(formatted: true) #=> "49.305.402-9"
|
172
|
+
#
|
173
|
+
# @faker.version 2.1.2
|
97
174
|
def brazilian_id(legacy_formatted = NOT_GIVEN, formatted: false)
|
98
175
|
warn_for_deprecated_arguments do |keywords|
|
99
176
|
keywords << :formatted if legacy_formatted != NOT_GIVEN
|
@@ -107,11 +184,20 @@ module Faker
|
|
107
184
|
|
108
185
|
alias brazilian_rg brazilian_id
|
109
186
|
|
187
|
+
##
|
188
|
+
# Produces a random Chilean ID (Rut with 8 digits).
|
189
|
+
#
|
190
|
+
# @return [String]
|
191
|
+
#
|
192
|
+
# @example
|
193
|
+
# Faker::IDNumber.chilean_id #=> "15620613-K"
|
194
|
+
#
|
195
|
+
# @faker.version 2.1.2
|
110
196
|
def chilean_id
|
111
197
|
digits = Faker::Number.number(digits: 8)
|
112
198
|
verification_code = chilean_verification_code(digits)
|
113
199
|
|
114
|
-
digits
|
200
|
+
"#{digits}-#{verification_code}"
|
115
201
|
end
|
116
202
|
|
117
203
|
private
|
@@ -170,7 +256,7 @@ module Faker
|
|
170
256
|
end * 10
|
171
257
|
end
|
172
258
|
|
173
|
-
def brazilian_document_digit(checksum, id
|
259
|
+
def brazilian_document_digit(checksum, id: false)
|
174
260
|
remainder = checksum % 11
|
175
261
|
id ? brazilian_id_digit(remainder) : brazilian_citizen_number_digit(remainder)
|
176
262
|
end
|
@@ -9,11 +9,14 @@ module Faker
|
|
9
9
|
keywords << :separators if legacy_separators != NOT_GIVEN
|
10
10
|
end
|
11
11
|
|
12
|
-
if separators
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
12
|
+
local_part = if separators
|
13
|
+
username(specifier: name, separators: separators)
|
14
|
+
else
|
15
|
+
username(specifier: name)
|
16
|
+
end
|
17
|
+
|
18
|
+
sanitized_local_part = sanitize_email_local_part(local_part)
|
19
|
+
construct_email(sanitized_local_part, domain_name(domain: domain))
|
17
20
|
end
|
18
21
|
|
19
22
|
def free_email(legacy_name = NOT_GIVEN, name: nil)
|
@@ -21,7 +24,10 @@ module Faker
|
|
21
24
|
keywords << :name if legacy_name != NOT_GIVEN
|
22
25
|
end
|
23
26
|
|
24
|
-
|
27
|
+
construct_email(
|
28
|
+
sanitize_email_local_part(username(specifier: name)),
|
29
|
+
fetch('internet.free_email')
|
30
|
+
)
|
25
31
|
end
|
26
32
|
|
27
33
|
def safe_email(legacy_name = NOT_GIVEN, name: nil)
|
@@ -29,7 +35,10 @@ module Faker
|
|
29
35
|
keywords << :name if legacy_name != NOT_GIVEN
|
30
36
|
end
|
31
37
|
|
32
|
-
|
38
|
+
construct_email(
|
39
|
+
sanitize_email_local_part(username(specifier: name)),
|
40
|
+
"example.#{sample(%w[org com net])}"
|
41
|
+
)
|
33
42
|
end
|
34
43
|
|
35
44
|
def username(legacy_specifier = NOT_GIVEN, legacy_separators = NOT_GIVEN, specifier: nil, separators: %w[. _])
|
@@ -41,7 +50,8 @@ module Faker
|
|
41
50
|
with_locale(:en) do
|
42
51
|
return shuffle(specifier.scan(/[[:word:]]+/)).join(sample(separators)).downcase if specifier.respond_to?(:scan)
|
43
52
|
|
44
|
-
|
53
|
+
case specifier
|
54
|
+
when Integer
|
45
55
|
# If specifier is Integer and has large value, Argument error exception is raised to overcome memory full error
|
46
56
|
raise ArgumentError, 'Given argument is too large' if specifier > 10**6
|
47
57
|
|
@@ -53,7 +63,7 @@ module Faker
|
|
53
63
|
break unless result.length < specifier && tries < 7
|
54
64
|
end
|
55
65
|
return result * (specifier / result.length + 1) if specifier.positive?
|
56
|
-
|
66
|
+
when Range
|
57
67
|
tries = 0
|
58
68
|
result = nil
|
59
69
|
loop do
|
@@ -106,7 +116,7 @@ module Faker
|
|
106
116
|
keywords << :special_characters if legacy_special_characters != NOT_GIVEN
|
107
117
|
end
|
108
118
|
|
109
|
-
min_alpha = mix_case ? 2 : 0
|
119
|
+
min_alpha = mix_case && min_length > 1 ? 2 : 0
|
110
120
|
temp = Lorem.characters(number: min_length, min_alpha: min_alpha)
|
111
121
|
diff_length = max_length - min_length
|
112
122
|
|
@@ -295,7 +305,55 @@ module Faker
|
|
295
305
|
'%08x-%04x-%04x-%04x-%04x%08x' % ary # rubocop:disable Style/FormatString
|
296
306
|
end
|
297
307
|
|
308
|
+
##
|
309
|
+
# Produces a random string of alphabetic characters, (no digits)
|
310
|
+
#
|
311
|
+
# @param length [Integer] The length of the string to generate
|
312
|
+
# @param padding [Boolean] Toggles if a final equal '=' will be added.
|
313
|
+
# @param urlsafe [Boolean] Toggles charset to '-' and '_' instead of '+' and '/'.
|
314
|
+
#
|
315
|
+
# @return [String]
|
316
|
+
#
|
317
|
+
# @example
|
318
|
+
# Faker::Internet.base64
|
319
|
+
# #=> "r_hbZ2DSD-ZACzZT"
|
320
|
+
# @example
|
321
|
+
# Faker::Internet.base64(length: 4, padding: true, urlsafe: false)
|
322
|
+
# #=> "x1/R="
|
323
|
+
#
|
324
|
+
# @faker.version 2.11.0
|
325
|
+
def base64(length: 16, padding: false, urlsafe: true)
|
326
|
+
char_range = [
|
327
|
+
Array('0'..'9'),
|
328
|
+
Array('A'..'Z'),
|
329
|
+
Array('a'..'z'),
|
330
|
+
urlsafe ? %w[- _] : %w[+ /]
|
331
|
+
].flatten
|
332
|
+
s = Array.new(length) { sample(char_range) }.join
|
333
|
+
s += '=' if padding
|
334
|
+
s
|
335
|
+
end
|
336
|
+
|
298
337
|
alias user_name username
|
338
|
+
|
339
|
+
private
|
340
|
+
|
341
|
+
def sanitize_email_local_part(local_part)
|
342
|
+
char_range = [
|
343
|
+
Array('0'..'9'),
|
344
|
+
Array('A'..'Z'),
|
345
|
+
Array('a'..'z'),
|
346
|
+
"!#$%&'*+-/=?^_`{|}~.".split(//)
|
347
|
+
].flatten
|
348
|
+
|
349
|
+
local_part.split(//).map do |char|
|
350
|
+
char_range.include?(char) ? char : '#'
|
351
|
+
end.join
|
352
|
+
end
|
353
|
+
|
354
|
+
def construct_email(local_part, domain_name)
|
355
|
+
[local_part, domain_name].join('@')
|
356
|
+
end
|
299
357
|
end
|
300
358
|
end
|
301
359
|
end
|