faker 2.11.0 → 3.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1131 -19
- data/README.md +249 -105
- data/lib/faker/blockchain/aeternity.rb +5 -5
- data/lib/faker/blockchain/bitcoin.rb +2 -2
- data/lib/faker/blockchain/ethereum.rb +1 -1
- data/lib/faker/blockchain/tezos.rb +31 -3
- data/lib/faker/books/dune.rb +17 -12
- data/lib/faker/books/lovecraft.rb +16 -44
- data/lib/faker/books/the_kingkiller_chronicle.rb +61 -0
- data/lib/faker/creature/bird.rb +203 -0
- data/lib/faker/default/address.rb +42 -32
- data/lib/faker/default/adjective.rb +35 -0
- data/lib/faker/default/alphanumeric.rb +2 -8
- data/lib/faker/default/app.rb +1 -10
- data/lib/faker/default/avatar.rb +1 -12
- data/lib/faker/default/bank.rb +104 -19
- 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/boolean.rb +1 -4
- 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 +62 -18
- data/lib/faker/default/chuck_norris.rb +1 -0
- data/lib/faker/default/code.rb +162 -52
- data/lib/faker/default/color.rb +77 -6
- data/lib/faker/default/commerce.rb +105 -28
- data/lib/faker/default/company.rb +210 -28
- 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 +26 -4
- data/lib/faker/default/crypto_coin.rb +48 -15
- data/lib/faker/default/date.rb +81 -54
- data/lib/faker/default/demographic.rb +1 -5
- data/lib/faker/default/driving_licence.rb +85 -18
- data/lib/faker/default/drone.rb +332 -0
- data/lib/faker/default/educator.rb +13 -0
- data/lib/faker/default/emotion.rb +33 -0
- data/lib/faker/default/file.rb +53 -21
- data/lib/faker/default/finance.rb +75 -7
- data/lib/faker/default/food.rb +28 -2
- data/lib/faker/default/gender.rb +1 -1
- data/lib/faker/default/hipster.rb +108 -51
- data/lib/faker/default/hobby.rb +22 -0
- data/lib/faker/default/html.rb +230 -0
- data/lib/faker/default/id_number.rb +251 -17
- data/lib/faker/default/internet.rb +361 -113
- data/lib/faker/default/internet_http.rb +48 -0
- data/lib/faker/default/invoice.rb +37 -23
- data/lib/faker/default/json.rb +63 -25
- data/lib/faker/default/lorem.rb +177 -75
- data/lib/faker/default/lorem_flickr.rb +69 -37
- data/lib/faker/default/markdown.rb +97 -11
- data/lib/faker/default/marketing.rb +1 -1
- data/lib/faker/default/measurement.rb +101 -42
- data/lib/faker/default/military.rb +26 -0
- data/lib/faker/default/mountain.rb +33 -0
- data/lib/faker/default/name.rb +99 -5
- data/lib/faker/default/nation.rb +0 -3
- data/lib/faker/default/{nhs.rb → national_health_service.rb} +26 -6
- data/lib/faker/default/number.rb +39 -69
- data/lib/faker/default/omniauth.rb +115 -57
- data/lib/faker/default/phone_number.rb +112 -14
- data/lib/faker/default/placeholdit.rb +23 -12
- data/lib/faker/default/relationship.rb +2 -6
- data/lib/faker/default/religion.rb +6 -0
- data/lib/faker/default/science.rb +108 -0
- data/lib/faker/default/slack_emoji.rb +81 -0
- data/lib/faker/default/source.rb +3 -16
- data/lib/faker/default/south_africa.rb +93 -3
- data/lib/faker/default/space.rb +1 -1
- data/lib/faker/default/string.rb +18 -8
- data/lib/faker/default/stripe.rb +68 -23
- data/lib/faker/default/tea.rb +41 -0
- data/lib/faker/default/theater.rb +52 -0
- data/lib/faker/default/time.rb +4 -34
- data/lib/faker/default/twitter.rb +42 -23
- data/lib/faker/default/types.rb +92 -34
- data/lib/faker/default/university.rb +45 -0
- data/lib/faker/default/vehicle.rb +227 -57
- data/lib/faker/default/verb.rb +45 -0
- data/lib/faker/default/vulnerability_identifier.rb +23 -0
- data/lib/faker/default/world_cup.rb +6 -15
- 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 +178 -0
- data/lib/faker/games/dota.rb +14 -5
- data/lib/faker/games/elder_scrolls.rb +26 -0
- data/lib/faker/games/final_fantasy_xiv.rb +73 -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/myst.rb +1 -1
- data/lib/faker/games/street_fighter.rb +61 -0
- data/lib/faker/games/super_mario.rb +48 -0
- data/lib/faker/games/tarkov.rb +205 -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/cowboy_bebop.rb +61 -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/fullmetal_alchemist_brotherhood.rb +51 -0
- data/lib/faker/japanese_media/kamen_rider.rb +102 -0
- data/lib/faker/japanese_media/naruto.rb +61 -0
- data/lib/faker/japanese_media/one_piece.rb +1 -1
- data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
- data/lib/faker/locations/australia.rb +52 -0
- data/lib/faker/movies/avatar.rb +49 -0
- data/lib/faker/movies/departed.rb +49 -0
- data/lib/faker/movies/hackers.rb +48 -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/star_wars.rb +75 -7
- data/lib/faker/movies/the_room.rb +63 -0
- data/lib/faker/movies/tron.rb +161 -0
- 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/smashing_pumpkins.rb +64 -0
- data/lib/faker/quotes/quote.rb +93 -1
- data/lib/faker/quotes/rajnikanth.rb +1 -0
- data/lib/faker/quotes/shakespeare.rb +70 -0
- data/lib/faker/religion/bible.rb +50 -0
- data/lib/faker/sports/chess.rb +90 -0
- data/lib/faker/sports/mountaineering.rb +22 -0
- data/lib/faker/sports/sport.rb +116 -0
- data/lib/faker/sports/volleyball.rb +74 -0
- data/lib/faker/travel/airport.rb +43 -0
- data/lib/faker/travel/train_station.rb +54 -0
- data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +13 -0
- data/lib/faker/tv_shows/archer.rb +51 -0
- data/lib/faker/tv_shows/big_bang_theory.rb +37 -0
- data/lib/faker/tv_shows/brooklyn_nine_nine.rb +38 -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/michael_scott.rb +0 -3
- data/lib/faker/tv_shows/simpsons.rb +14 -0
- data/lib/faker/tv_shows/south_park.rb +15 -0
- data/lib/faker/tv_shows/spongebob.rb +50 -0
- data/lib/faker/tv_shows/suits.rb +37 -0
- data/lib/faker/tv_shows/supernatural.rb +48 -0
- data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +17 -4
- data/lib/faker/tv_shows/the_office.rb +37 -0
- data/lib/faker/version.rb +2 -2
- data/lib/faker.rb +51 -87
- data/lib/helpers/base58.rb +1 -1
- data/lib/helpers/char.rb +22 -27
- data/lib/helpers/deprecator.rb +53 -0
- data/lib/helpers/positional_generator.rb +480 -0
- data/lib/helpers/unique_generator.rb +13 -13
- data/lib/locales/README.md +18 -2
- data/lib/locales/ar.yml +6 -1
- data/lib/locales/bg.yml +1 -2
- data/lib/locales/da-DK.yml +529 -35
- data/lib/locales/de-AT.yml +3487 -25
- data/lib/locales/de-CH.yml +6020 -9
- data/lib/locales/de.yml +7185 -97
- data/lib/locales/ee.yml +0 -1
- data/lib/locales/en/address.yml +1828 -562
- data/lib/locales/en/adjective.yml +179 -0
- data/lib/locales/en/airport.yml +381 -0
- data/lib/locales/en/animal.yml +1 -1
- data/lib/locales/en/aqua_teen_hunger_force.yml +33 -1
- data/lib/locales/en/archer.yml +75 -0
- data/lib/locales/en/australia.yml +108 -0
- data/lib/locales/en/avatar.yml +31 -0
- data/lib/locales/en/bank.yml +2 -2
- data/lib/locales/en/barcode.yml +24 -0
- data/lib/locales/en/bible.yml +90 -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/brooklyn_nine_nine.yml +35 -0
- data/lib/locales/en/buffy.yml +1 -1
- data/lib/locales/en/camera.yml +611 -0
- data/lib/locales/en/cat.yml +1 -1
- data/lib/locales/en/chess.yml +103 -0
- data/lib/locales/en/clash_of_clan.yml +101 -0
- data/lib/locales/en/coffee.yml +1 -1
- data/lib/locales/en/commerce.yml +17 -0
- data/lib/locales/en/community.yml +17 -17
- data/lib/locales/en/company.yml +3 -2
- data/lib/locales/en/computer.yml +55 -0
- data/lib/locales/en/conan.yml +171 -0
- data/lib/locales/en/control.yml +247 -0
- data/lib/locales/en/cowboy_bebop.yml +163 -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 +636 -0
- data/lib/locales/en/dog.yml +262 -7
- data/lib/locales/en/doraemon.yml +286 -0
- data/lib/locales/en/dota.yml +704 -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/emotion.yml +480 -0
- data/lib/locales/en/fallout.yml +311 -133
- data/lib/locales/en/file.yml +9 -1
- data/lib/locales/en/final_fantasy_xiv.yml +754 -0
- data/lib/locales/en/final_space.yml +37 -0
- data/lib/locales/en/finance.yml +80 -4
- data/lib/locales/en/food.yml +1067 -10
- data/lib/locales/en/football.yml +3 -3
- data/lib/locales/en/fresh_prince_of_bel_air.yml +1 -1
- data/lib/locales/en/fullmetal_alchemist_brotherhood.yml +78 -0
- data/lib/locales/en/futurama.yml +344 -0
- data/lib/locales/en/game.yml +11 -0
- data/lib/locales/en/hackers.yml +53 -0
- data/lib/locales/en/half_life.yml +84 -3
- data/lib/locales/en/harry_potter.yml +1 -1
- data/lib/locales/en/heroes.yml +408 -3
- data/lib/locales/en/heroes_of_the_storm.yml +131 -4
- data/lib/locales/en/hobby.yml +171 -0
- data/lib/locales/en/horse.yml +2 -2
- data/lib/locales/en/house.yml +1 -1
- data/lib/locales/en/how_to_train_your_dragon.yml +174 -0
- data/lib/locales/en/id_number.yml +1 -1
- data/lib/locales/en/internet.yml +136 -3
- data/lib/locales/en/jack_handey.yml +54 -0
- data/lib/locales/en/kamen_rider.yml +452 -0
- data/lib/locales/en/kpop.yml +7 -7
- 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/mitch_hedberg.yml +46 -0
- data/lib/locales/en/mountain.yml +171 -0
- data/lib/locales/en/mountaineering.yml +14 -0
- data/lib/locales/en/movie.yml +194 -2
- 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 +230 -0
- data/lib/locales/en/one_piece.yml +2 -2
- data/lib/locales/en/opera.yml +169 -1
- data/lib/locales/en/overwatch.yml +2648 -2622
- data/lib/locales/en/pearl_jam.yml +213 -0
- data/lib/locales/en/phish.yml +392 -1
- data/lib/locales/en/phone_number.yml +78 -3
- 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/rush.yml +32 -0
- data/lib/locales/en/science.yml +481 -3
- data/lib/locales/en/shakespeare.yml +21 -24
- data/lib/locales/en/simpsons.yml +668 -0
- data/lib/locales/en/smashing_pumpkins.yml +382 -0
- data/lib/locales/en/source.yml +35 -0
- data/lib/locales/en/south_park.yml +360 -2
- data/lib/locales/en/space.yml +1 -1
- data/lib/locales/en/spongebob.yml +489 -0
- data/lib/locales/en/sport.yml +130 -0
- data/lib/locales/en/star_trek.yml +1 -1
- data/lib/locales/en/star_wars.yml +568 -220
- data/lib/locales/en/stranger_thing.yml +1 -1
- 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 +23 -6
- data/lib/locales/en/supernatural.yml +141 -0
- data/lib/locales/en/tarkov.yml +593 -0
- data/lib/locales/en/tea.yml +172 -0
- data/lib/locales/en/the_kingkiller_chronicle.yml +56 -0
- data/lib/locales/en/the_office.yml +86 -0
- data/lib/locales/en/the_room.yml +68 -0
- data/lib/locales/en/theater.yml +597 -0
- data/lib/locales/en/tolkien.yml +2453 -0
- data/lib/locales/en/touhou.yml +839 -0
- data/lib/locales/en/train_station.yml +280 -0
- data/lib/locales/en/tron.yml +227 -0
- data/lib/locales/en/vehicle.yml +2809 -75
- 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/en-AU.yml +728 -17
- data/lib/locales/en-CA.yml +373 -16
- data/lib/locales/en-GB.yml +116 -8
- data/lib/locales/en-IND.yml +1259 -16
- data/lib/locales/en-KE.yml +212 -0
- data/lib/locales/en-MS.yml +364 -16
- data/lib/locales/en-NEP.yml +212 -35
- data/lib/locales/en-NG.yml +1 -0
- data/lib/locales/en-NZ.yml +1153 -121
- data/lib/locales/en-PAK.yml +369 -9
- data/lib/locales/en-SG.yml +581 -15
- data/lib/locales/en-UG.yml +1 -0
- data/lib/locales/en-US.yml +6937 -71
- data/lib/locales/en-ZA.yml +1 -1
- data/lib/locales/en-au-ocker.yml +266 -21
- data/lib/locales/en.yml +0 -3
- data/lib/locales/es-AR.yml +4570 -0
- data/lib/locales/es-MX.yml +1 -2
- data/lib/locales/es.yml +58 -3
- data/lib/locales/fi-FI.yml +4 -2
- data/lib/locales/fr/address.yml +20 -0
- data/lib/locales/fr/adjective.yml +266 -0
- data/lib/locales/fr/ancient.yml +141 -0
- data/lib/locales/fr/animal.yml +5 -0
- data/lib/locales/fr/appliance.yml +4 -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 +4 -0
- data/lib/locales/fr/lorem.yml +5 -0
- data/lib/locales/fr/measurement.yml +7 -0
- data/lib/locales/fr/name.yml +22 -0
- data/lib/locales/fr/phone_number.yml +7 -0
- data/lib/locales/fr/pokemon.yml +7 -0
- data/lib/locales/fr-CA.yml +2748 -43
- data/lib/locales/fr-CH.yml +3 -4
- data/lib/locales/fr.yml +2 -112
- data/lib/locales/hy.yml +3624 -119
- data/lib/locales/id.yml +839 -10
- data/lib/locales/it.yml +1304 -31
- data/lib/locales/ja/README.md +13 -0
- data/lib/locales/ja/address.yml +120539 -0
- data/lib/locales/ja/adjective.yml +148 -0
- data/lib/locales/ja/ancient.yml +4 -0
- data/lib/locales/ja/animal.yml +5 -0
- data/lib/locales/ja/bank.yml +4 -0
- data/lib/locales/ja/book.yml +7 -0
- data/lib/locales/ja/cat.yml +5 -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/dog.yml +6 -0
- data/lib/locales/ja/emotion.yml +51 -0
- data/lib/locales/ja/food.yml +4 -0
- data/lib/locales/ja/football.yml +115 -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/naruto.yml +230 -0
- data/lib/locales/ja/overwatch.yml +5 -0
- data/lib/locales/ja/phone_number.yml +7 -0
- data/lib/locales/ja/pokemon.yml +7 -0
- data/lib/locales/ja/relationship.yml +10 -0
- data/lib/locales/ja/restaurant.yml +11 -0
- data/lib/locales/ja/space.yml +5 -0
- data/lib/locales/ja/sport.yml +130 -0
- data/lib/locales/ja/studio_ghibli.yml +112 -0
- data/lib/locales/ja/subscription.yml +8 -0
- data/lib/locales/ja/super_mario.yml +9 -0
- data/lib/locales/ja/super_smash_bros.yml +8 -0
- data/lib/locales/ja/touhou.yml +466 -0
- data/lib/locales/ja/university.yml +9 -0
- data/lib/locales/ja/zelda.yml +5 -0
- data/lib/locales/ko.yml +1450 -17
- data/lib/locales/lt.yml +315 -0
- data/lib/locales/lv.yml +1 -2
- data/lib/locales/mi-NZ.yml +283 -0
- data/lib/locales/nb-NO.yml +518 -27
- data/lib/locales/nl.yml +1 -1
- data/lib/locales/pl.yml +1 -2
- data/lib/locales/pt-BR.yml +8157 -659
- data/lib/locales/pt.yml +844 -43
- data/lib/locales/ru.yml +1355 -30
- data/lib/locales/sk.yml +4410 -41
- data/lib/locales/sv.yml +100 -0
- data/lib/locales/th.yml +76 -76
- data/lib/locales/tr.yml +1 -2
- data/lib/locales/uk.yml +1810 -44
- data/lib/locales/vi.yml +1 -0
- data/lib/locales/zh-CN/bank.yml +17 -0
- data/lib/locales/zh-CN.yml +1 -0
- data/lib/locales/zh-TW.yml +1 -0
- metadata +192 -127
- data/History.md +0 -176
- data/lib/faker/default/fillmurray.rb +0 -45
- data/lib/faker/default/lorem_pixel.rb +0 -47
- 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
@@ -14,11 +14,7 @@ module Faker
|
|
14
14
|
# Faker::Relationship.familial #=> "Grandfather"
|
15
15
|
#
|
16
16
|
# @faker.version 1.9.2
|
17
|
-
def familial(
|
18
|
-
warn_for_deprecated_arguments do |keywords|
|
19
|
-
keywords << :connection if legacy_connection != NOT_GIVEN
|
20
|
-
end
|
21
|
-
|
17
|
+
def familial(connection: nil)
|
22
18
|
familial_connections = translate('faker.relationship.familial').keys
|
23
19
|
|
24
20
|
if connection.nil?
|
@@ -32,7 +28,7 @@ module Faker
|
|
32
28
|
end
|
33
29
|
end
|
34
30
|
|
35
|
-
fetch(
|
31
|
+
fetch("relationship.familial.#{connection}")
|
36
32
|
end
|
37
33
|
|
38
34
|
##
|
@@ -3,6 +3,47 @@
|
|
3
3
|
module Faker
|
4
4
|
class Science < Base
|
5
5
|
class << self
|
6
|
+
BRANCHES = {
|
7
|
+
empirical: %i[empirical_natural_basic empirical_natural_applied empirical_social_basic empirical_social_applied],
|
8
|
+
formal: %i[formal_basic formal_applied],
|
9
|
+
natural: %i[empirical_natural_basic empirical_natural_applied],
|
10
|
+
social: %i[empirical_social_basic empirical_social_applied],
|
11
|
+
basic: %i[empirical_natural_basic empirical_social_basic formal_basic],
|
12
|
+
applied: %i[empirical_natural_applied empirical_social_applied formal_applied]
|
13
|
+
}.freeze
|
14
|
+
|
15
|
+
##
|
16
|
+
# Produces a name of a science
|
17
|
+
# You can optionally filter by specifying one or more of the following:
|
18
|
+
# `:empirical, :formal, :natural, :social, :basic, :applied`
|
19
|
+
# @see https://en.wikipedia.org/wiki/Science#Branches_of_science
|
20
|
+
# @see Faker::Educator.subject
|
21
|
+
#
|
22
|
+
# @param branches [Array<Symbol>]
|
23
|
+
# @return [String]
|
24
|
+
#
|
25
|
+
# @example
|
26
|
+
# Faker::Science.science #=> "Space science"
|
27
|
+
# Faker::Science.science(:natural, :applied) #=> "Engineering"
|
28
|
+
# Faker::Science.science(:formal, :applied) #=> "Computer Science"
|
29
|
+
#
|
30
|
+
# @faker.version next
|
31
|
+
def science(*branches)
|
32
|
+
selected = BRANCHES.values.flatten.uniq
|
33
|
+
branches.each do |branch|
|
34
|
+
selected &= BRANCHES[branch] if BRANCHES.key? branch
|
35
|
+
end
|
36
|
+
|
37
|
+
raise ArgumentError, 'Filters do not match any sciences' if selected.empty?
|
38
|
+
|
39
|
+
sciences = []
|
40
|
+
selected.each do |branch|
|
41
|
+
sciences += translate("faker.science.branch.#{branch}")
|
42
|
+
end
|
43
|
+
|
44
|
+
sample(sciences)
|
45
|
+
end
|
46
|
+
|
6
47
|
##
|
7
48
|
# Produces the name of a element.
|
8
49
|
#
|
@@ -29,6 +70,32 @@ module Faker
|
|
29
70
|
fetch('science.element_symbol')
|
30
71
|
end
|
31
72
|
|
73
|
+
##
|
74
|
+
# Produces the state of an element.
|
75
|
+
#
|
76
|
+
# @return [String]
|
77
|
+
#
|
78
|
+
# @example
|
79
|
+
# Faker::Science.element_state #=> "Liquid"
|
80
|
+
#
|
81
|
+
# @faker.version next
|
82
|
+
def element_state
|
83
|
+
fetch('science.element_state')
|
84
|
+
end
|
85
|
+
|
86
|
+
##
|
87
|
+
# Produces the subcategory of an element.
|
88
|
+
#
|
89
|
+
# @return [String]
|
90
|
+
#
|
91
|
+
# @example
|
92
|
+
# Faker::Science.element_subcategory #=> "Reactive nonmetal"
|
93
|
+
#
|
94
|
+
# @faker.version next
|
95
|
+
def element_subcategory
|
96
|
+
fetch('science.element_subcategory')
|
97
|
+
end
|
98
|
+
|
32
99
|
##
|
33
100
|
# Produces the name of a scientist.
|
34
101
|
#
|
@@ -41,6 +108,47 @@ module Faker
|
|
41
108
|
def scientist
|
42
109
|
fetch('science.scientist')
|
43
110
|
end
|
111
|
+
|
112
|
+
##
|
113
|
+
# Produces a scientifically sounding word
|
114
|
+
#
|
115
|
+
# @return [String]
|
116
|
+
#
|
117
|
+
# @example
|
118
|
+
# Faker::Science.modifier #=> "Quantum"
|
119
|
+
# Faker::Science.modifier #=> "Superconductive"
|
120
|
+
#
|
121
|
+
# @faker.version next
|
122
|
+
def modifier
|
123
|
+
fetch('science.modifier')
|
124
|
+
end
|
125
|
+
|
126
|
+
##
|
127
|
+
# Produces the name of a scientific tool.
|
128
|
+
# By default it uses a science word modifier to generate more diverse data, which can be disabled.
|
129
|
+
#
|
130
|
+
# @param simple [Boolean] Whether to generate simple realistic tool names, (no Q-word).
|
131
|
+
# @return [String]
|
132
|
+
#
|
133
|
+
# @example
|
134
|
+
# Faker::Science.tool #=> "Superconductive Microcentrifuge"
|
135
|
+
# Faker::Science.tool #=> "Portable Cryostat"
|
136
|
+
# Faker::Science.tool #=> "Quantum Spectrophotometer"
|
137
|
+
# Faker::Science.tool(simple: true) #=> "Microcentrifuge"
|
138
|
+
#
|
139
|
+
# @faker.version next
|
140
|
+
def tool(simple: false)
|
141
|
+
tool = fetch('science.tool')
|
142
|
+
return tool if simple
|
143
|
+
|
144
|
+
# Makes sure the modifier are different
|
145
|
+
loop do
|
146
|
+
modifier = self.modifier
|
147
|
+
break unless tool.start_with?(modifier)
|
148
|
+
end
|
149
|
+
|
150
|
+
"#{modifier} #{tool}"
|
151
|
+
end
|
44
152
|
end
|
45
153
|
end
|
46
154
|
end
|
@@ -3,38 +3,119 @@
|
|
3
3
|
module Faker
|
4
4
|
class SlackEmoji < Base
|
5
5
|
class << self
|
6
|
+
##
|
7
|
+
# Produces a random slack emoji from people category.
|
8
|
+
#
|
9
|
+
# @return [String]
|
10
|
+
#
|
11
|
+
# @example
|
12
|
+
# Faker::SlackEmoji.people #=> ":sleepy:"
|
13
|
+
#
|
14
|
+
# @faker.version 1.5.0
|
6
15
|
def people
|
7
16
|
fetch('slack_emoji.people')
|
8
17
|
end
|
9
18
|
|
19
|
+
##
|
20
|
+
# Produces a random slack emoji from nature category.
|
21
|
+
#
|
22
|
+
# @return [String]
|
23
|
+
#
|
24
|
+
# @example
|
25
|
+
# Faker::SlackEmoji.nature #=> ":mount_fuji:"
|
26
|
+
#
|
27
|
+
# @faker.version 1.5.0
|
10
28
|
def nature
|
11
29
|
fetch('slack_emoji.nature')
|
12
30
|
end
|
13
31
|
|
32
|
+
##
|
33
|
+
# Produces a random slack emoji from food and drink category.
|
34
|
+
#
|
35
|
+
# @return [String]
|
36
|
+
#
|
37
|
+
# @example
|
38
|
+
# Faker::SlackEmoji.food_and_drink #=> ":beers:"
|
39
|
+
#
|
40
|
+
# @faker.version 1.5.0
|
14
41
|
def food_and_drink
|
15
42
|
fetch('slack_emoji.food_and_drink')
|
16
43
|
end
|
17
44
|
|
45
|
+
##
|
46
|
+
# Produces a random slack emoji from celebration category.
|
47
|
+
#
|
48
|
+
# @return [String]
|
49
|
+
#
|
50
|
+
# @example
|
51
|
+
# Faker::SlackEmoji.celebration #=> ":tada:"
|
52
|
+
#
|
53
|
+
# @faker.version 1.5.0
|
18
54
|
def celebration
|
19
55
|
fetch('slack_emoji.celebration')
|
20
56
|
end
|
21
57
|
|
58
|
+
##
|
59
|
+
# Produces a random slack emoji from activity category.
|
60
|
+
#
|
61
|
+
# @return [String]
|
62
|
+
#
|
63
|
+
# @example
|
64
|
+
# Faker::SlackEmoji.activity #=> ":soccer:"
|
65
|
+
#
|
66
|
+
# @faker.version 1.5.0
|
22
67
|
def activity
|
23
68
|
fetch('slack_emoji.activity')
|
24
69
|
end
|
25
70
|
|
71
|
+
##
|
72
|
+
# Produces a random slack emoji from travel and places category.
|
73
|
+
#
|
74
|
+
# @return [String]
|
75
|
+
#
|
76
|
+
# @example
|
77
|
+
# Faker::SlackEmoji.travel_and_places #=> ":metro:"
|
78
|
+
#
|
79
|
+
# @faker.version 1.5.0
|
26
80
|
def travel_and_places
|
27
81
|
fetch('slack_emoji.travel_and_places')
|
28
82
|
end
|
29
83
|
|
84
|
+
##
|
85
|
+
# Produces a random slack emoji from objects and symbols category.
|
86
|
+
#
|
87
|
+
# @return [String]
|
88
|
+
#
|
89
|
+
# @example
|
90
|
+
# Faker::SlackEmoji.objects_and_symbols #=> ":id:"
|
91
|
+
#
|
92
|
+
# @faker.version 1.5.0
|
30
93
|
def objects_and_symbols
|
31
94
|
fetch('slack_emoji.objects_and_symbols')
|
32
95
|
end
|
33
96
|
|
97
|
+
##
|
98
|
+
# Produces a random slack emoji from custom category.
|
99
|
+
#
|
100
|
+
# @return [String]
|
101
|
+
#
|
102
|
+
# @example
|
103
|
+
# Faker::SlackEmoji.custom #=> ":slack:"
|
104
|
+
#
|
105
|
+
# @faker.version 1.5.0
|
34
106
|
def custom
|
35
107
|
fetch('slack_emoji.custom')
|
36
108
|
end
|
37
109
|
|
110
|
+
##
|
111
|
+
# Produces a random slack emoji from any category.
|
112
|
+
#
|
113
|
+
# @return [String]
|
114
|
+
#
|
115
|
+
# @example
|
116
|
+
# Faker::SlackEmoji.emoji #=> ":pizza:"
|
117
|
+
#
|
118
|
+
# @faker.version 1.5.0
|
38
119
|
def emoji
|
39
120
|
parse('slack_emoji.emoji')
|
40
121
|
end
|
data/lib/faker/default/source.rb
CHANGED
@@ -17,11 +17,7 @@ module Faker
|
|
17
17
|
# #=> "alert('Hello World!');"
|
18
18
|
#
|
19
19
|
# @faker.version 1.9.0
|
20
|
-
def hello_world(
|
21
|
-
warn_for_deprecated_arguments do |keywords|
|
22
|
-
keywords << :lang if legacy_lang != NOT_GIVEN
|
23
|
-
end
|
24
|
-
|
20
|
+
def hello_world(lang: :ruby)
|
25
21
|
fetch("source.hello_world.#{lang}")
|
26
22
|
end
|
27
23
|
|
@@ -39,13 +35,7 @@ module Faker
|
|
39
35
|
# #=> "console.log('foo bar');"
|
40
36
|
#
|
41
37
|
# @faker.version 1.9.0
|
42
|
-
def print(
|
43
|
-
warn_for_deprecated_arguments do |keywords|
|
44
|
-
keywords << :str if legacy_str != NOT_GIVEN
|
45
|
-
end
|
46
|
-
warn_for_deprecated_arguments do |keywords|
|
47
|
-
keywords << :lang if legacy_lang != NOT_GIVEN
|
48
|
-
end
|
38
|
+
def print(str: 'some string', lang: :ruby)
|
49
39
|
code = fetch("source.print.#{lang}")
|
50
40
|
code.gsub('faker_string_to_print', str)
|
51
41
|
end
|
@@ -65,10 +55,7 @@ module Faker
|
|
65
55
|
# # }"
|
66
56
|
#
|
67
57
|
# @faker.version 1.9.0
|
68
|
-
def print_1_to_10(
|
69
|
-
warn_for_deprecated_arguments do |keywords|
|
70
|
-
keywords << :lang if legacy_lang != NOT_GIVEN
|
71
|
-
end
|
58
|
+
def print_1_to_10(lang: :ruby)
|
72
59
|
fetch("source.print_1_to_10.#{lang}")
|
73
60
|
end
|
74
61
|
end
|
@@ -3,46 +3,136 @@
|
|
3
3
|
module Faker
|
4
4
|
class SouthAfrica < Base
|
5
5
|
class << self
|
6
|
+
##
|
7
|
+
# Produces a South African ID number.
|
8
|
+
#
|
9
|
+
# @return [String]
|
10
|
+
#
|
11
|
+
# @example
|
12
|
+
# Faker::SouthAfrica.id_number #=> "6110311856083"
|
13
|
+
#
|
14
|
+
# @faker.version 1.9.2
|
6
15
|
def id_number
|
7
|
-
Faker::
|
16
|
+
Faker::IdNumber.south_african_id_number
|
8
17
|
end
|
9
18
|
|
19
|
+
##
|
20
|
+
# Produces a valid South African ID number
|
21
|
+
#
|
22
|
+
# @return [String]
|
23
|
+
#
|
24
|
+
# @example
|
25
|
+
# Faker::SouthAfrica.valid_id_number #=> "6110311856083"
|
26
|
+
#
|
27
|
+
# @faker.version 1.9.2
|
10
28
|
def valid_id_number
|
11
|
-
Faker::
|
29
|
+
Faker::IdNumber.valid_south_african_id_number
|
12
30
|
end
|
13
31
|
|
32
|
+
##
|
33
|
+
# Produces an invalid South African ID number
|
34
|
+
#
|
35
|
+
# @return [String]
|
36
|
+
#
|
37
|
+
# @example
|
38
|
+
# Faker::SouthAfrica.invalid_id_number #=> "7018356904081"
|
39
|
+
#
|
40
|
+
# @faker.version 1.9.2
|
14
41
|
def invalid_id_number
|
15
|
-
Faker::
|
42
|
+
Faker::IdNumber.invalid_south_african_id_number
|
16
43
|
end
|
17
44
|
|
45
|
+
##
|
46
|
+
# Produces a South African phone number.
|
47
|
+
#
|
48
|
+
# @return [String]
|
49
|
+
#
|
50
|
+
# @example
|
51
|
+
# Faker::SouthAfrica.phone_number #=> "010 788 5009"
|
52
|
+
#
|
53
|
+
# @faker.version 1.9.2
|
18
54
|
def phone_number
|
19
55
|
with_locale 'en-ZA' do
|
20
56
|
Faker::PhoneNumber.phone_number
|
21
57
|
end
|
22
58
|
end
|
23
59
|
|
60
|
+
##
|
61
|
+
# Produces a South African cell phone number.
|
62
|
+
#
|
63
|
+
# @return [String]
|
64
|
+
#
|
65
|
+
# @example
|
66
|
+
# Faker::SouthAfrica.cell_phone #=> "082 946 7470"
|
67
|
+
#
|
68
|
+
# @faker.version 1.9.2
|
24
69
|
def cell_phone
|
25
70
|
with_locale 'en-ZA' do
|
26
71
|
Faker::PhoneNumber.cell_phone
|
27
72
|
end
|
28
73
|
end
|
29
74
|
|
75
|
+
##
|
76
|
+
# Produces a South African private company registration number.
|
77
|
+
#
|
78
|
+
# @return [String]
|
79
|
+
#
|
80
|
+
# @example
|
81
|
+
# Faker::SouthAfrica.pty_ltd_registration_number #=> "5301/714689/07"
|
82
|
+
#
|
83
|
+
# @faker.version 1.9.2
|
30
84
|
def pty_ltd_registration_number
|
31
85
|
Faker::Company.south_african_pty_ltd_registration_number
|
32
86
|
end
|
33
87
|
|
88
|
+
##
|
89
|
+
# Produces a South African close corporation registration number.
|
90
|
+
#
|
91
|
+
# @return [String]
|
92
|
+
#
|
93
|
+
# @example
|
94
|
+
# Faker::SouthAfrica.close_corporation_registration_number #=> "CK74/7585/23"
|
95
|
+
#
|
96
|
+
# @faker.version 1.9.2
|
34
97
|
def close_corporation_registration_number
|
35
98
|
Faker::Company.south_african_close_corporation_registration_number
|
36
99
|
end
|
37
100
|
|
101
|
+
##
|
102
|
+
# Produces a South African listed company registration number.
|
103
|
+
#
|
104
|
+
# @return [String]
|
105
|
+
#
|
106
|
+
# @example
|
107
|
+
# Faker::SouthAfrica.listed_company_registration_number #=> "7039/3135/06"
|
108
|
+
#
|
109
|
+
# @faker.version 1.9.2
|
38
110
|
def listed_company_registration_number
|
39
111
|
Faker::Company.south_african_listed_company_registration_number
|
40
112
|
end
|
41
113
|
|
114
|
+
##
|
115
|
+
# Produces a South African trust registration number.
|
116
|
+
#
|
117
|
+
# @return [String]
|
118
|
+
#
|
119
|
+
# @example
|
120
|
+
# Faker::SouthAfrica.trust_registration_number #=> "IT38/6489900"
|
121
|
+
#
|
122
|
+
# @faker.version 1.9.2
|
42
123
|
def trust_registration_number
|
43
124
|
Faker::Company.south_african_trust_registration_number
|
44
125
|
end
|
45
126
|
|
127
|
+
##
|
128
|
+
# Produces a South African VAT number.
|
129
|
+
#
|
130
|
+
# @return [String]
|
131
|
+
#
|
132
|
+
# @example
|
133
|
+
# Faker::SouthAfrica.vat_number #=> "ZA79494416181"
|
134
|
+
#
|
135
|
+
# @faker.version 1.9.2
|
46
136
|
def vat_number
|
47
137
|
Faker::Finance.vat_number(country: 'ZA')
|
48
138
|
end
|
data/lib/faker/default/space.rb
CHANGED
data/lib/faker/default/string.rb
CHANGED
@@ -3,11 +3,21 @@
|
|
3
3
|
module Faker
|
4
4
|
class String < Base
|
5
5
|
class << self
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
6
|
+
##
|
7
|
+
# Produces a random UTF-8 string with optional nested length selectors.
|
8
|
+
#
|
9
|
+
# @param length [Integer, Range, Array<Integer, Range, nil>] The length of produced string and/or specific UTF-8 characters to use.
|
10
|
+
# @return [String]
|
11
|
+
#
|
12
|
+
# @example
|
13
|
+
# Faker::String.random #=> "3 뇦\u0017&y\u{3A109}$8^4* 녹豿4좘툢ꔾ쉙6ɉ\uA6 8TN畀챵|\"3쇤Ŵ"
|
14
|
+
# Faker::String.random(length: 4) #=> "⼨%0*"
|
15
|
+
# Faker::String.random(length: 3..12) #=> "\u{69FDC};秨툫"
|
16
|
+
# Faker::String.random(length: [0, 6]) #=> "I轤𣴒P溟L"
|
17
|
+
# Faker::String.random(length: [1, (2..5), [3, 6], nil]) #=> "葓L#ћ"
|
18
|
+
#
|
19
|
+
# @faker.version 1.9.0
|
20
|
+
def random(length: 32)
|
11
21
|
utf8string select_a length
|
12
22
|
end
|
13
23
|
|
@@ -38,9 +48,9 @@ module Faker
|
|
38
48
|
|
39
49
|
def utf8character
|
40
50
|
sample([
|
41
|
-
rand(32..90),
|
42
|
-
rand(128),
|
43
|
-
rand(0xd800),
|
51
|
+
rand(32..90), # latin alphabet
|
52
|
+
rand(128), # 7-bit ASCII
|
53
|
+
rand(0xd800), # utf-8 codepoints below utf-16 surrogate halves
|
44
54
|
rand(57_344..1_114_111) # utf-8 codepoints above utf-16 surrogate halves
|
45
55
|
]).chr(Encoding::UTF_8)
|
46
56
|
end
|
data/lib/faker/default/stripe.rb
CHANGED
@@ -3,11 +3,18 @@
|
|
3
3
|
module Faker
|
4
4
|
class Stripe < Base
|
5
5
|
class << self
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
6
|
+
##
|
7
|
+
# Produces a random valid card number.
|
8
|
+
#
|
9
|
+
# @param card_type [String] Specific valid card type.
|
10
|
+
# @return [String]
|
11
|
+
#
|
12
|
+
# @example
|
13
|
+
# Faker::Stripe.valid_card #=> "4242424242424242"
|
14
|
+
# Faker::Stripe.valid_card(card_type: "visa_debit") #=> "4000056655665556"
|
15
|
+
#
|
16
|
+
# @faker.version 1.9.0
|
17
|
+
def valid_card(card_type: nil)
|
11
18
|
valid_cards = translate('faker.stripe.valid_cards').keys
|
12
19
|
|
13
20
|
if card_type.nil?
|
@@ -19,14 +26,21 @@ module Faker
|
|
19
26
|
end
|
20
27
|
end
|
21
28
|
|
22
|
-
fetch(
|
29
|
+
fetch("stripe.valid_cards.#{card_type}")
|
23
30
|
end
|
24
31
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
32
|
+
##
|
33
|
+
# Produces a random valid Stripe token.
|
34
|
+
#
|
35
|
+
# @param card_type [String] Specific valid card type.
|
36
|
+
# @return [String]
|
37
|
+
#
|
38
|
+
# @example
|
39
|
+
# Faker::Stripe.valid_token #=> "tok_visa"
|
40
|
+
# Faker::Stripe.valid_token(card_type: "mc_debit") #=> "tok_mastercard_debit"
|
41
|
+
#
|
42
|
+
# @faker.version 1.9.0
|
43
|
+
def valid_token(card_type: nil)
|
30
44
|
valid_tokens = translate('faker.stripe.valid_tokens').keys
|
31
45
|
|
32
46
|
if card_type.nil?
|
@@ -38,14 +52,20 @@ module Faker
|
|
38
52
|
end
|
39
53
|
end
|
40
54
|
|
41
|
-
fetch(
|
55
|
+
fetch("stripe.valid_tokens.#{card_type}")
|
42
56
|
end
|
43
57
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
58
|
+
##
|
59
|
+
# Produces a random invalid card number.
|
60
|
+
#
|
61
|
+
# @return [String]
|
62
|
+
#
|
63
|
+
# @example
|
64
|
+
# Faker::Stripe.invalid_card #=> "4000000000000002"
|
65
|
+
# Faker::Stripe.invalid_card(card_error: "addressZipFail") #=> "4000000000000010"
|
66
|
+
#
|
67
|
+
# @faker.version 1.9.0
|
68
|
+
def invalid_card(card_error: nil)
|
49
69
|
invalid_cards = translate('faker.stripe.invalid_cards').keys
|
50
70
|
|
51
71
|
if card_error.nil?
|
@@ -57,23 +77,48 @@ module Faker
|
|
57
77
|
end
|
58
78
|
end
|
59
79
|
|
60
|
-
fetch(
|
80
|
+
fetch("stripe.invalid_cards.#{card_error}")
|
61
81
|
end
|
62
82
|
|
83
|
+
##
|
84
|
+
# Produces a random month in two digits format.
|
85
|
+
#
|
86
|
+
# @return [String]
|
87
|
+
#
|
88
|
+
# @example
|
89
|
+
# Faker::Stripe.month #=> "10"
|
90
|
+
#
|
91
|
+
# @faker.version 1.9.0
|
63
92
|
def month
|
64
93
|
format('%02d', rand_in_range(1, 12))
|
65
94
|
end
|
66
95
|
|
96
|
+
##
|
97
|
+
# Produces a random year that is always in the future.
|
98
|
+
#
|
99
|
+
# @return [String]
|
100
|
+
#
|
101
|
+
# @example
|
102
|
+
# Faker::Stripe.year #=> "2018" # This will always be a year in the future
|
103
|
+
#
|
104
|
+
# @faker.version 1.9.0
|
67
105
|
def year
|
68
106
|
start_year = ::Time.new.year + 1
|
69
107
|
rand_in_range(start_year, start_year + 5).to_s
|
70
108
|
end
|
71
109
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
110
|
+
##
|
111
|
+
# Produces a random ccv number.
|
112
|
+
#
|
113
|
+
# @param card_type [String] Specific valid card type.
|
114
|
+
# @return [String]
|
115
|
+
#
|
116
|
+
# @example
|
117
|
+
# Faker::Stripe.ccv #=> "123"
|
118
|
+
# Faker::Stripe.ccv(card_type: "amex") #=> "1234"
|
119
|
+
#
|
120
|
+
# @faker.version 1.9.0
|
121
|
+
def ccv(card_type: nil)
|
77
122
|
(card_type.to_s == 'amex' ? rand_in_range(1000, 9999) : rand_in_range(100, 999)).to_s
|
78
123
|
end
|
79
124
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Tea < Base
|
5
|
+
flexible :tea
|
6
|
+
|
7
|
+
class << self
|
8
|
+
##
|
9
|
+
# Produces a random variety or blend of tea.
|
10
|
+
#
|
11
|
+
# @param type [String, nil] the type of tea to query for (valid types: 'Black', 'Green', 'Oolong', 'White', and 'Herbal')
|
12
|
+
# @return [String] a variety of tea
|
13
|
+
#
|
14
|
+
# @example
|
15
|
+
# Faker::Tea.variety
|
16
|
+
# #=> "Earl Grey"
|
17
|
+
#
|
18
|
+
# @example
|
19
|
+
# Faker::Tea.variety(type: 'Green')
|
20
|
+
# #=> "Jasmine"
|
21
|
+
# @faker.version next
|
22
|
+
def variety(type: nil)
|
23
|
+
type ||= fetch('tea.type')
|
24
|
+
fetch "tea.variety.#{type.downcase}"
|
25
|
+
end
|
26
|
+
|
27
|
+
##
|
28
|
+
# Produces a random type of tea.
|
29
|
+
#
|
30
|
+
# @return [String] a type of tea
|
31
|
+
#
|
32
|
+
# @example
|
33
|
+
# Faker::Tea.type
|
34
|
+
# #=> "Green"
|
35
|
+
# @faker.version next
|
36
|
+
def type
|
37
|
+
fetch 'tea.type'
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|