faker 2.11.0 → 2.18.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 +421 -13
- data/History.md +4 -4
- data/README.md +33 -3
- data/lib/faker.rb +28 -23
- data/lib/faker/blockchain/aeternity.rb +4 -4
- data/lib/faker/blockchain/bitcoin.rb +2 -2
- data/lib/faker/blockchain/tezos.rb +30 -2
- data/lib/faker/books/dune.rb +15 -2
- data/lib/faker/books/lovecraft.rb +8 -4
- data/lib/faker/creature/bird.rb +203 -0
- data/lib/faker/default/address.rb +35 -5
- data/lib/faker/default/app.rb +1 -1
- data/lib/faker/default/avatar.rb +1 -1
- data/lib/faker/default/bank.rb +96 -3
- data/lib/faker/default/barcode.rb +165 -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 +10 -0
- data/lib/faker/default/chile_rut.rb +47 -3
- data/lib/faker/default/chuck_norris.rb +1 -0
- data/lib/faker/default/code.rb +98 -17
- data/lib/faker/default/commerce.rb +74 -11
- data/lib/faker/default/company.rb +96 -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.rb +17 -4
- data/lib/faker/default/crypto_coin.rb +45 -0
- data/lib/faker/default/date.rb +16 -12
- data/lib/faker/default/driving_licence.rb +67 -1
- data/lib/faker/default/drone.rb +332 -0
- data/lib/faker/default/educator.rb +13 -0
- data/lib/faker/default/faker_adjective.rb +35 -0
- data/lib/faker/default/file.rb +53 -2
- data/lib/faker/default/finance.rb +45 -0
- data/lib/faker/default/food.rb +1 -1
- data/lib/faker/default/gender.rb +1 -1
- data/lib/faker/default/hipster.rb +107 -10
- data/lib/faker/default/id_number.rb +122 -2
- data/lib/faker/default/internet.rb +266 -12
- data/lib/faker/default/internet_http.rb +48 -0
- data/lib/faker/default/invoice.rb +33 -6
- data/lib/faker/default/json.rb +61 -5
- data/lib/faker/default/lorem.rb +160 -5
- data/lib/faker/default/lorem_flickr.rb +67 -7
- data/lib/faker/default/lorem_pixel.rb +23 -0
- data/lib/faker/default/markdown.rb +91 -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 +28 -13
- data/lib/faker/default/omniauth.rb +62 -14
- data/lib/faker/default/phone_number.rb +88 -5
- data/lib/faker/default/placeholdit.rb +23 -1
- data/lib/faker/default/relationship.rb +1 -1
- data/lib/faker/default/science.rb +26 -0
- 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 +20 -3
- data/lib/faker/default/stripe.rb +64 -3
- data/lib/faker/default/tea.rb +41 -0
- data/lib/faker/default/twitter.rb +35 -0
- data/lib/faker/default/types.rb +84 -3
- 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/touhou.rb +75 -0
- data/lib/faker/games/warhammer_fantasy.rb +74 -0
- data/lib/faker/games/witcher.rb +39 -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 +74 -2
- data/lib/faker/music/hiphop.rb +48 -0
- data/lib/faker/music/music.rb +12 -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/rock_band.rb +12 -0
- data/lib/faker/music/rush.rb +37 -0
- data/lib/faker/music/show.rb +49 -0
- data/lib/faker/quotes/quote.rb +80 -1
- data/lib/faker/quotes/rajnikanth.rb +1 -0
- data/lib/faker/quotes/shakespeare.rb +70 -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 +0 -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 +37 -11
- 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/bird.yml +1281 -0
- data/lib/locales/en/blood.yml +13 -0
- data/lib/locales/en/book.yml +487 -3
- data/lib/locales/en/buffy.yml +1 -1
- data/lib/locales/en/camera.yml +611 -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/device.yml +112 -4
- 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 +270 -131
- data/lib/locales/en/educator.yml +6 -0
- 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/football.yml +3 -3
- 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/lebowski.yml +1 -1
- data/lib/locales/en/lovecraft.yml +76 -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 +461 -29
- data/lib/locales/en/myst.yml +87 -31
- data/lib/locales/en/name.yml +5 -4
- 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/rock_band.yml +1 -0
- data/lib/locales/en/room.yml +68 -0
- data/lib/locales/en/rush.yml +32 -0
- data/lib/locales/en/science.yml +355 -3
- data/lib/locales/en/shakespeare.yml +21 -24
- 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/space.yml +1 -1
- 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 +18 -4
- data/lib/locales/en/tea.yml +172 -0
- data/lib/locales/en/tolkien.yml +2453 -0
- data/lib/locales/en/touhou.yml +839 -0
- data/lib/locales/en/volleyball.yml +501 -0
- data/lib/locales/en/warhammer_fantasy.yml +582 -0
- data/lib/locales/en/witcher.yml +426 -7
- data/lib/locales/en/world_of_warcraft.yml +122 -4
- data/lib/locales/en/zelda.yml +962 -4
- data/lib/locales/es-AR.yml +4603 -0
- 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 +1 -113
- data/lib/locales/fr/address.yml +21 -0
- data/lib/locales/fr/book.yml +7 -0
- data/lib/locales/fr/color.yml +4 -0
- data/lib/locales/fr/company.yml +17 -0
- data/lib/locales/fr/compass.yml +23 -0
- data/lib/locales/fr/demographic.yml +4 -0
- data/lib/locales/fr/gender.yml +6 -0
- data/lib/locales/fr/internet.yml +5 -0
- data/lib/locales/fr/lorem.yml +5 -0
- data/lib/locales/fr/measurement.yml +7 -0
- data/lib/locales/fr/name.yml +21 -0
- data/lib/locales/fr/phone_number.yml +7 -0
- data/lib/locales/fr/pokemon.yml +9 -0
- data/lib/locales/id.yml +3 -1
- data/lib/locales/it.yml +2 -1
- data/lib/locales/ja/README.md +13 -0
- data/lib/locales/ja/address.yml +17 -0
- data/lib/locales/ja/ancient.yml +4 -0
- data/lib/locales/ja/bank.yml +4 -0
- data/lib/locales/ja/book.yml +7 -0
- data/lib/locales/ja/coffee.yml +4 -0
- data/lib/locales/ja/color.yml +4 -0
- data/lib/locales/ja/commerce.yml +11 -0
- data/lib/locales/ja/company.yml +8 -0
- data/lib/locales/ja/creature.yml +9 -0
- data/lib/locales/ja/food.yml +4 -0
- data/lib/locales/ja/games.yml +18 -0
- data/lib/locales/ja/gender.yml +4 -0
- data/lib/locales/ja/lorem.yml +9 -0
- data/lib/locales/ja/name.yml +13 -0
- data/lib/locales/ja/phone_number.yml +7 -0
- data/lib/locales/ja/restaurant.yml +11 -0
- data/lib/locales/ja/space.yml +5 -0
- data/lib/locales/ja/subscription.yml +8 -0
- data/lib/locales/ja/university.yml +9 -0
- data/lib/locales/ko.yml +94 -2
- data/lib/locales/nb-NO.yml +4 -2
- data/lib/locales/pt-BR.yml +3 -1
- data/lib/locales/pt.yml +3 -1
- data/lib/locales/ru.yml +42 -1
- data/lib/locales/sk.yml +4 -2
- data/lib/locales/uk.yml +2 -0
- metadata +133 -24
- data/lib/locales/en/hobbit.yml +0 -19
- data/lib/locales/en/lord_of_the_rings.yml +0 -6
- data/lib/locales/ja.yml +0 -101
|
@@ -68,6 +68,7 @@ module Faker
|
|
|
68
68
|
#
|
|
69
69
|
# @param word_count [Integer] The number of words to have in the sentence
|
|
70
70
|
# @param random_words_to_add [Integer]
|
|
71
|
+
# @param open_compounds_allowed [Boolean] If true, generated sentence can contain words having additional spaces
|
|
71
72
|
#
|
|
72
73
|
# @return [String]
|
|
73
74
|
#
|
|
@@ -80,15 +81,18 @@ module Faker
|
|
|
80
81
|
# @example
|
|
81
82
|
# Faker::Books::Lovecraft.sentence(word_count: 3, random_words_to_add: 1)
|
|
82
83
|
# #=> "Amorphous indescribable tenebrous."
|
|
84
|
+
# @example
|
|
85
|
+
# Faker::Books::Lovecraft.sentence(word_count: 3, random_words_to_add: 0, open_compounds_allowed: true)
|
|
86
|
+
# #=> "Effulgence unmentionable gambrel."
|
|
83
87
|
#
|
|
84
88
|
# @faker.version 1.9.3
|
|
85
|
-
def sentence(legacy_word_count = NOT_GIVEN, legacy_random_words_to_add = NOT_GIVEN, word_count: 4, random_words_to_add: 6)
|
|
89
|
+
def sentence(legacy_word_count = NOT_GIVEN, legacy_random_words_to_add = NOT_GIVEN, word_count: 4, random_words_to_add: 6, open_compounds_allowed: true)
|
|
86
90
|
warn_for_deprecated_arguments do |keywords|
|
|
87
91
|
keywords << :word_count if legacy_word_count != NOT_GIVEN
|
|
88
92
|
keywords << :random_words_to_add if legacy_random_words_to_add != NOT_GIVEN
|
|
89
93
|
end
|
|
90
94
|
|
|
91
|
-
words(number: word_count + rand(random_words_to_add.to_i).to_i, spaces_allowed:
|
|
95
|
+
"#{words(number: word_count + rand(random_words_to_add.to_i).to_i, spaces_allowed: open_compounds_allowed).join(' ').capitalize}."
|
|
92
96
|
end
|
|
93
97
|
|
|
94
98
|
##
|
|
@@ -266,9 +270,9 @@ module Faker
|
|
|
266
270
|
|
|
267
271
|
paragraph = paragraph(sentence_count: 3)
|
|
268
272
|
|
|
269
|
-
paragraph +=
|
|
273
|
+
paragraph += " #{paragraph(sentence_count: 3)}" while paragraph.length < characters
|
|
270
274
|
|
|
271
|
-
paragraph[0...characters - 1]
|
|
275
|
+
"#{paragraph[0...characters - 1]}."
|
|
272
276
|
end
|
|
273
277
|
end
|
|
274
278
|
end
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class Creature
|
|
5
|
+
class Bird < Base
|
|
6
|
+
flexible :bird
|
|
7
|
+
|
|
8
|
+
class << self
|
|
9
|
+
##
|
|
10
|
+
# Produces a random common family name of a bird.
|
|
11
|
+
#
|
|
12
|
+
# @return [String]
|
|
13
|
+
#
|
|
14
|
+
# @example
|
|
15
|
+
# Faker::Creature::Bird.common_family_name #=> "Owls"
|
|
16
|
+
#
|
|
17
|
+
# @faker.version next
|
|
18
|
+
def common_family_name
|
|
19
|
+
fetch('creature.bird.common_family_name')
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
##
|
|
23
|
+
# Produces a random common taxonomic order from the class Aves
|
|
24
|
+
#
|
|
25
|
+
# @return [String]
|
|
26
|
+
#
|
|
27
|
+
# @example
|
|
28
|
+
# Faker::Creature::Bird.order #=> "Passeriformes"
|
|
29
|
+
#
|
|
30
|
+
# @faker.version next
|
|
31
|
+
def order
|
|
32
|
+
orders = I18n.translate('faker.creature.bird.order_common_map').keys
|
|
33
|
+
sample(orders).to_s
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
##
|
|
37
|
+
# Produces a random bird anatomy word
|
|
38
|
+
#
|
|
39
|
+
# @return [String]
|
|
40
|
+
#
|
|
41
|
+
# @example
|
|
42
|
+
# Faker::Creature::Bird.anatomy #=> "rump"
|
|
43
|
+
#
|
|
44
|
+
# @faker.version next
|
|
45
|
+
def anatomy
|
|
46
|
+
fetch('creature.bird.anatomy')
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
##
|
|
50
|
+
# Produces a random, past tensed bird anatomy word
|
|
51
|
+
#
|
|
52
|
+
# @return [String]
|
|
53
|
+
#
|
|
54
|
+
# @example
|
|
55
|
+
# Faker::Creature::Bird.anatomy #=> "breasted"
|
|
56
|
+
#
|
|
57
|
+
# @faker.version next
|
|
58
|
+
def anatomy_past_tense
|
|
59
|
+
fetch('creature.bird.anatomy_past_tense')
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
##
|
|
63
|
+
# Produces a random geographical word used in describing birds
|
|
64
|
+
#
|
|
65
|
+
# @return [String]
|
|
66
|
+
#
|
|
67
|
+
# @example
|
|
68
|
+
# Faker::Creature::Bird.geo #=> "Eurasian"
|
|
69
|
+
#
|
|
70
|
+
# @faker.version next
|
|
71
|
+
def geo
|
|
72
|
+
fetch('creature.bird.geo')
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
##
|
|
76
|
+
# Produces a random color word used in describing birds
|
|
77
|
+
#
|
|
78
|
+
# @return [String]
|
|
79
|
+
#
|
|
80
|
+
# @example
|
|
81
|
+
# Faker::Creature::Bird.color #=> "ferruginous"
|
|
82
|
+
#
|
|
83
|
+
# @faker.version next
|
|
84
|
+
def color
|
|
85
|
+
fetch('creature.bird.colors')
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
##
|
|
89
|
+
# Produces a random adjective used to described birds
|
|
90
|
+
#
|
|
91
|
+
# @return [String]
|
|
92
|
+
#
|
|
93
|
+
# @example
|
|
94
|
+
# Faker::Creature::Bird.adjective #=> 'common'
|
|
95
|
+
#
|
|
96
|
+
# @faker.version next
|
|
97
|
+
def adjective
|
|
98
|
+
fetch('creature.bird.adjectives')
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
##
|
|
102
|
+
# Produces a random emotional adjective NOT used to described birds
|
|
103
|
+
# ...but could be
|
|
104
|
+
#
|
|
105
|
+
# @return [String]
|
|
106
|
+
#
|
|
107
|
+
# @example
|
|
108
|
+
# Faker::Creature::Bird.emotional_adjective #=> 'cantankerous'
|
|
109
|
+
#
|
|
110
|
+
# @faker.version next
|
|
111
|
+
def emotional_adjective
|
|
112
|
+
fetch('creature.bird.emotional_adjectives')
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
##
|
|
116
|
+
# Produces a random adjective NOT used to described birds
|
|
117
|
+
# ...but probably shouldn't
|
|
118
|
+
#
|
|
119
|
+
# @return [String]
|
|
120
|
+
#
|
|
121
|
+
# @example
|
|
122
|
+
# Faker::Creature::Bird.silly_adjective #=> 'drunk'
|
|
123
|
+
#
|
|
124
|
+
# @faker.version next
|
|
125
|
+
def silly_adjective
|
|
126
|
+
fetch('creature.bird.silly_adjectives')
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
##
|
|
130
|
+
# Produces a random common name for a bird
|
|
131
|
+
#
|
|
132
|
+
# @param [String | Symbol | nil] tax_order Tax
|
|
133
|
+
# @return [String]
|
|
134
|
+
# @raises TypeError If `tax_order` cannot be converted into a Symbol
|
|
135
|
+
# @raises ArgumentError If `tax_order` is not a valid taxonomic order
|
|
136
|
+
#
|
|
137
|
+
# @example
|
|
138
|
+
# Faker::Creature::Bird.common_name #=> 'wren'
|
|
139
|
+
#
|
|
140
|
+
# @faker.version next
|
|
141
|
+
def common_name(tax_order = nil)
|
|
142
|
+
map = translate('faker.creature.bird.order_common_map')
|
|
143
|
+
if tax_order.nil?
|
|
144
|
+
sample(map.values.flatten).downcase
|
|
145
|
+
else
|
|
146
|
+
raise TypeError, 'tax_order parameter must be symbolizable' \
|
|
147
|
+
unless tax_order.respond_to?(:to_sym)
|
|
148
|
+
raise ArgumentError, "#{tax_order} is not a valid taxonomic order" \
|
|
149
|
+
unless map.keys.include?(tax_order.to_sym)
|
|
150
|
+
|
|
151
|
+
the_order = translate('faker.creature.bird.order_common_map')[tax_order.to_sym]
|
|
152
|
+
sample(the_order).downcase
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
##
|
|
157
|
+
# Produces a random and plausible common name for a bird
|
|
158
|
+
#
|
|
159
|
+
# @return [String]
|
|
160
|
+
#
|
|
161
|
+
# @example
|
|
162
|
+
# Faker::Creature::Bird.plausible_common_name #=> 'Hellinger's Wren'
|
|
163
|
+
#
|
|
164
|
+
# @faker.version next
|
|
165
|
+
def plausible_common_name
|
|
166
|
+
parse('creature.bird.plausible_common_names').capitalize
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
##
|
|
170
|
+
# Produces a random and IMplausible common name for a bird
|
|
171
|
+
#
|
|
172
|
+
# @return [String]
|
|
173
|
+
#
|
|
174
|
+
# @example
|
|
175
|
+
# Faker::Creature::Bird.implausible_common_name #=> 'Hellinger's Cantankerous Chickadee'
|
|
176
|
+
#
|
|
177
|
+
# @faker.version next
|
|
178
|
+
def implausible_common_name
|
|
179
|
+
parse('creature.bird.implausible_common_names').capitalize
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
##
|
|
183
|
+
# Produces a hash entry with a random order and a random common name
|
|
184
|
+
# that is of that order
|
|
185
|
+
#
|
|
186
|
+
# @return [Hash<order,common_name>]
|
|
187
|
+
#
|
|
188
|
+
# @example
|
|
189
|
+
# Faker::Creature::Bird.order_with_common_name #=> {
|
|
190
|
+
# order: ''Accipitriformes',
|
|
191
|
+
# common_name: 'Osprey'
|
|
192
|
+
# }
|
|
193
|
+
#
|
|
194
|
+
# @faker.version next
|
|
195
|
+
def order_with_common_name(tax_order = nil)
|
|
196
|
+
map = I18n.translate('faker.creature.bird.order_common_map')
|
|
197
|
+
o = tax_order.nil? ? order : tax_order
|
|
198
|
+
{ order: o, common_name: sample(map[o.to_sym]) }
|
|
199
|
+
end
|
|
200
|
+
end
|
|
201
|
+
end
|
|
202
|
+
end
|
|
203
|
+
end
|
|
@@ -54,7 +54,7 @@ module Faker
|
|
|
54
54
|
keywords << :include_secondary if legacy_include_secondary != NOT_GIVEN
|
|
55
55
|
end
|
|
56
56
|
|
|
57
|
-
numerify(parse('address.street_address') + (include_secondary ?
|
|
57
|
+
numerify(parse('address.street_address') + (include_secondary ? " #{secondary_address}" : ''))
|
|
58
58
|
end
|
|
59
59
|
|
|
60
60
|
##
|
|
@@ -102,7 +102,7 @@ module Faker
|
|
|
102
102
|
# @return [String]
|
|
103
103
|
#
|
|
104
104
|
# @example
|
|
105
|
-
#
|
|
105
|
+
# Faker::Address.mail_box #=> "PO Box 123"
|
|
106
106
|
#
|
|
107
107
|
# @faker.version 2.9.1
|
|
108
108
|
def mail_box
|
|
@@ -133,7 +133,7 @@ module Faker
|
|
|
133
133
|
|
|
134
134
|
# provide a zip code that is valid for the state provided
|
|
135
135
|
# see http://www.fincen.gov/forms/files/us_state_territory_zip_codes.pdf
|
|
136
|
-
bothify(fetch(
|
|
136
|
+
bothify(fetch("address.postcode_by_state.#{state_abbreviation}"))
|
|
137
137
|
end
|
|
138
138
|
|
|
139
139
|
##
|
|
@@ -247,7 +247,7 @@ module Faker
|
|
|
247
247
|
keywords << :code if legacy_code != NOT_GIVEN
|
|
248
248
|
end
|
|
249
249
|
|
|
250
|
-
fetch(
|
|
250
|
+
fetch("address.country_by_code.#{code}")
|
|
251
251
|
end
|
|
252
252
|
|
|
253
253
|
##
|
|
@@ -265,7 +265,7 @@ module Faker
|
|
|
265
265
|
keywords << :name if legacy_name != NOT_GIVEN
|
|
266
266
|
end
|
|
267
267
|
|
|
268
|
-
fetch(
|
|
268
|
+
fetch("address.country_by_name.#{name}")
|
|
269
269
|
end
|
|
270
270
|
|
|
271
271
|
##
|
|
@@ -333,6 +333,36 @@ module Faker
|
|
|
333
333
|
def full_address
|
|
334
334
|
parse('address.full_address')
|
|
335
335
|
end
|
|
336
|
+
|
|
337
|
+
##
|
|
338
|
+
# Produces Address hash of required fields
|
|
339
|
+
#
|
|
340
|
+
# @return [Hash]
|
|
341
|
+
#
|
|
342
|
+
# @example
|
|
343
|
+
# Faker::Address.full_address_as_hash(:longitude,
|
|
344
|
+
# :latitude,
|
|
345
|
+
# :country_name_to_code,
|
|
346
|
+
# country_name_to_code: {name: 'united_states'})
|
|
347
|
+
# #=> {:longitude=>-101.74428917174603, :latitude=>-37.40056749089944, :country_name_to_code=>"US"}
|
|
348
|
+
#
|
|
349
|
+
# Faker::Address.full_address_as_hash(:full_address)
|
|
350
|
+
# #=> {:full_address=>"87635 Rice Street, Lake Brentonton, OR 61896-5968"}
|
|
351
|
+
#
|
|
352
|
+
# Faker::Address.full_address_as_hash(:city, :time_zone)
|
|
353
|
+
# #=> {:city=>"East Faustina", :time_zone=>"America/Mexico_City"}
|
|
354
|
+
#
|
|
355
|
+
# Faker::Address.full_address_as_hash(:street_address, street_address: {include_secondary: true})
|
|
356
|
+
# #=> {:street_address=>"29423 Kenneth Causeway Suite 563"}
|
|
357
|
+
#
|
|
358
|
+
# @faker.version 2.13.0
|
|
359
|
+
def full_address_as_hash(*attrs, **attrs_params)
|
|
360
|
+
attrs.map!(&:to_sym)
|
|
361
|
+
attrs_params.transform_keys!(&:to_sym)
|
|
362
|
+
attrs.map do |attr|
|
|
363
|
+
{ "#{attr}": attrs_params[attr] ? send(attr, **attrs_params[attr]) : send(attr) }
|
|
364
|
+
end.reduce({}, :merge)
|
|
365
|
+
end
|
|
336
366
|
end
|
|
337
367
|
end
|
|
338
368
|
end
|
data/lib/faker/default/app.rb
CHANGED
|
@@ -63,7 +63,6 @@ module Faker
|
|
|
63
63
|
#
|
|
64
64
|
# @faker.version 1.4.3
|
|
65
65
|
def semantic_version(legacy_major = NOT_GIVEN, legacy_minor = NOT_GIVEN, legacy_patch = NOT_GIVEN, major: 0..9, minor: 0..9, patch: 1..9)
|
|
66
|
-
# rubocop:enable Metrics/ParameterLists
|
|
67
66
|
warn_for_deprecated_arguments do |keywords|
|
|
68
67
|
keywords << :major if legacy_major != NOT_GIVEN
|
|
69
68
|
keywords << :minor if legacy_minor != NOT_GIVEN
|
|
@@ -72,6 +71,7 @@ module Faker
|
|
|
72
71
|
|
|
73
72
|
[major, minor, patch].map { |chunk| sample(Array(chunk)) }.join('.')
|
|
74
73
|
end
|
|
74
|
+
# rubocop:enable Metrics/ParameterLists
|
|
75
75
|
end
|
|
76
76
|
end
|
|
77
77
|
end
|
data/lib/faker/default/avatar.rb
CHANGED
|
@@ -39,7 +39,6 @@ module Faker
|
|
|
39
39
|
#
|
|
40
40
|
# @faker.version 1.4.3
|
|
41
41
|
def image(legacy_slug = NOT_GIVEN, legacy_size = NOT_GIVEN, legacy_format = NOT_GIVEN, legacy_set = NOT_GIVEN, legacy_bgset = NOT_GIVEN, slug: nil, size: '300x300', format: 'png', set: 'set1', bgset: nil)
|
|
42
|
-
# rubocop:enable Metrics/ParameterLists
|
|
43
42
|
warn_for_deprecated_arguments do |keywords|
|
|
44
43
|
keywords << :slug if legacy_slug != NOT_GIVEN
|
|
45
44
|
keywords << :size if legacy_size != NOT_GIVEN
|
|
@@ -55,6 +54,7 @@ module Faker
|
|
|
55
54
|
bgset_query = "&bgset=#{bgset}" if bgset
|
|
56
55
|
"https://robohash.org/#{slug}.#{format}?size=#{size}&set=#{set}#{bgset_query}"
|
|
57
56
|
end
|
|
57
|
+
# rubocop:enable Metrics/ParameterLists
|
|
58
58
|
end
|
|
59
59
|
end
|
|
60
60
|
end
|
data/lib/faker/default/bank.rb
CHANGED
|
@@ -5,6 +5,17 @@ module Faker
|
|
|
5
5
|
flexible :bank
|
|
6
6
|
|
|
7
7
|
class << self
|
|
8
|
+
##
|
|
9
|
+
# Produces a bank account number.
|
|
10
|
+
#
|
|
11
|
+
# @param digits [Integer] Number of digits that the generated account number should have.
|
|
12
|
+
# @return [String]
|
|
13
|
+
#
|
|
14
|
+
# @example
|
|
15
|
+
# Faker::Bank.account_number #=> 6738582379
|
|
16
|
+
# Faker::Bank.account_number(digits: 13) #=> 673858237902
|
|
17
|
+
#
|
|
18
|
+
# @faker.version 1.9.1
|
|
8
19
|
def account_number(legacy_digits = NOT_GIVEN, digits: 10)
|
|
9
20
|
warn_for_deprecated_arguments do |keywords|
|
|
10
21
|
keywords << :digits if legacy_digits != NOT_GIVEN
|
|
@@ -17,6 +28,18 @@ module Faker
|
|
|
17
28
|
output[0...digits]
|
|
18
29
|
end
|
|
19
30
|
|
|
31
|
+
##
|
|
32
|
+
# Produces a bank iban number.
|
|
33
|
+
#
|
|
34
|
+
# @param country_code [String, nil] Specifies what country prefix is used to generate the iban code. Providing `nil` will use a random country.
|
|
35
|
+
# @return [String]
|
|
36
|
+
#
|
|
37
|
+
# @example
|
|
38
|
+
# Faker::Bank.iban #=> "GB76DZJM33188515981979"
|
|
39
|
+
# Faker::Bank.iban(country_code: "be") #=> "BE6375388567752043"
|
|
40
|
+
# Faker::Bank.iban(country_code: nil) #=> "DE45186738071857270067"
|
|
41
|
+
#
|
|
42
|
+
# @faker.version 1.7.0
|
|
20
43
|
def iban(legacy_country_code = NOT_GIVEN, country_code: 'GB')
|
|
21
44
|
# Each country has its own format for bank accounts
|
|
22
45
|
# Many of them use letters in certain parts of the account
|
|
@@ -25,6 +48,8 @@ module Faker
|
|
|
25
48
|
keywords << :country_code if legacy_country_code != NOT_GIVEN
|
|
26
49
|
end
|
|
27
50
|
|
|
51
|
+
country_code ||= iban_country_code
|
|
52
|
+
|
|
28
53
|
begin
|
|
29
54
|
pattern = fetch("bank.iban_details.#{country_code.downcase}.bban_pattern")
|
|
30
55
|
rescue I18n::MissingTranslationData
|
|
@@ -38,22 +63,85 @@ module Faker
|
|
|
38
63
|
country_code.upcase + iban_checksum(country_code, account) + account
|
|
39
64
|
end
|
|
40
65
|
|
|
66
|
+
##
|
|
67
|
+
# Produces the ISO 3166 code of a country that uses the IBAN system.
|
|
68
|
+
#
|
|
69
|
+
# @return [String]
|
|
70
|
+
#
|
|
71
|
+
# @example
|
|
72
|
+
# Faker::Bank.iban_country_code #=> "CH"
|
|
73
|
+
#
|
|
74
|
+
# @faker.version next
|
|
75
|
+
def iban_country_code
|
|
76
|
+
sample(translate('faker.bank.iban_details').keys).to_s.upcase
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
##
|
|
80
|
+
# Produces a bank name.
|
|
81
|
+
#
|
|
82
|
+
# @return [String]
|
|
83
|
+
#
|
|
84
|
+
# @example
|
|
85
|
+
# Faker::Bank.name #=> "ABN AMRO CORPORATE FINANCE LIMITED"
|
|
86
|
+
#
|
|
87
|
+
# @faker.version 1.7.0
|
|
41
88
|
def name
|
|
42
89
|
fetch('bank.name')
|
|
43
90
|
end
|
|
44
91
|
|
|
92
|
+
##
|
|
93
|
+
# Produces a routing number.
|
|
94
|
+
#
|
|
95
|
+
# @return [String]
|
|
96
|
+
#
|
|
97
|
+
# @example
|
|
98
|
+
# Faker::Bank.routing_number #=> "729343831"
|
|
99
|
+
#
|
|
100
|
+
# @faker.version 1.9.1
|
|
45
101
|
def routing_number
|
|
46
102
|
valid_routing_number
|
|
47
103
|
end
|
|
48
104
|
|
|
105
|
+
##
|
|
106
|
+
# Produces a valid routing number.
|
|
107
|
+
#
|
|
108
|
+
# @return [String]
|
|
109
|
+
#
|
|
110
|
+
# @example
|
|
111
|
+
# Faker::Bank.routing_number #=> "729343831"
|
|
112
|
+
#
|
|
113
|
+
# @faker.version 1.9.1
|
|
49
114
|
def routing_number_with_format
|
|
50
115
|
compile_fraction(valid_routing_number)
|
|
51
116
|
end
|
|
52
117
|
|
|
118
|
+
##
|
|
119
|
+
# Produces a swift / bic number.
|
|
120
|
+
#
|
|
121
|
+
# @return [String]
|
|
122
|
+
#
|
|
123
|
+
# @example
|
|
124
|
+
# Faker::Bank.swift_bic #=> "AAFMGB21"
|
|
125
|
+
#
|
|
126
|
+
# @faker.version 1.7.0
|
|
53
127
|
def swift_bic
|
|
54
128
|
fetch('bank.swift_bic')
|
|
55
129
|
end
|
|
56
130
|
|
|
131
|
+
##
|
|
132
|
+
# Produces an Australian BSB (Bank-State-Branch) number
|
|
133
|
+
#
|
|
134
|
+
# @return [String]
|
|
135
|
+
#
|
|
136
|
+
# @example
|
|
137
|
+
# Faker::Bank.bsb_number
|
|
138
|
+
# #=> "036616"
|
|
139
|
+
#
|
|
140
|
+
# @faker.version 2.13.0
|
|
141
|
+
def bsb_number
|
|
142
|
+
compile_bsb_number
|
|
143
|
+
end
|
|
144
|
+
|
|
57
145
|
private
|
|
58
146
|
|
|
59
147
|
def checksum(num_string)
|
|
@@ -68,8 +156,13 @@ module Faker
|
|
|
68
156
|
def compile_routing_number
|
|
69
157
|
digit_one_two = %w[00 01 02 03 04 05 06 07 08 09 10 11 12]
|
|
70
158
|
((21..32).to_a + (61..72).to_a + [80]).each { |x| digit_one_two << x.to_s }
|
|
71
|
-
|
|
72
|
-
|
|
159
|
+
digit_one_two.sample + rand_numstring + rand_numstring + rand_numstring + rand_numstring + rand_numstring + rand_numstring + rand_numstring
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
def compile_bsb_number
|
|
163
|
+
digit_one_two = %w[01 03 06 08 11 12 73 76 78 30]
|
|
164
|
+
state = (2..7).to_a.map(&:to_s).sample
|
|
165
|
+
digit_one_two.sample + state + rand_numstring + rand_numstring + rand_numstring
|
|
73
166
|
end
|
|
74
167
|
|
|
75
168
|
# Calculates the mandatory checksum in 3rd and 4th characters in IBAN format
|
|
@@ -103,7 +196,7 @@ module Faker
|
|
|
103
196
|
prefix = (1..50).to_a.map(&:to_s).sample
|
|
104
197
|
numerator = routing_num.split('')[5..8].join.to_i.to_s
|
|
105
198
|
denominator = routing_num.split('')[0..4].join.to_i.to_s
|
|
106
|
-
prefix
|
|
199
|
+
"#{prefix}-#{numerator}/#{denominator}"
|
|
107
200
|
end
|
|
108
201
|
|
|
109
202
|
def rand_numstring
|