faker 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +1384 -0
- data/History.md +176 -0
- data/License.txt +20 -0
- data/README.md +364 -0
- data/bin/faker +5 -0
- data/lib/faker.rb +308 -0
- data/lib/faker/blockchain/aeternity.rb +70 -0
- data/lib/faker/blockchain/bitcoin.rb +60 -0
- data/lib/faker/blockchain/ethereum.rb +26 -0
- data/lib/faker/blockchain/tezos.rb +107 -0
- data/lib/faker/books/book.rb +61 -0
- data/lib/faker/books/culture_series.rb +83 -0
- data/lib/faker/books/dune.rb +119 -0
- data/lib/faker/books/lovecraft.rb +276 -0
- data/lib/faker/creature/animal.rb +22 -0
- data/lib/faker/creature/cat.rb +50 -0
- data/lib/faker/creature/dog.rb +115 -0
- data/lib/faker/creature/horse.rb +37 -0
- data/lib/faker/default/address.rb +123 -0
- data/lib/faker/default/alphanumeric.rb +73 -0
- data/lib/faker/default/ancient.rb +23 -0
- data/lib/faker/default/app.rb +77 -0
- data/lib/faker/default/appliance.rb +33 -0
- data/lib/faker/default/artist.rb +20 -0
- data/lib/faker/default/avatar.rb +60 -0
- data/lib/faker/default/bank.rb +108 -0
- data/lib/faker/default/beer.rb +41 -0
- data/lib/faker/default/boolean.rb +26 -0
- data/lib/faker/default/bossa_nova.rb +15 -0
- data/lib/faker/default/business.rb +23 -0
- data/lib/faker/default/cannabis.rb +45 -0
- data/lib/faker/default/chile_rut.rb +54 -0
- data/lib/faker/default/chuck_norris.rb +14 -0
- data/lib/faker/default/code.rb +201 -0
- data/lib/faker/default/coffee.rb +37 -0
- data/lib/faker/default/coin.rb +15 -0
- data/lib/faker/default/color.rb +32 -0
- data/lib/faker/default/commerce.rb +80 -0
- data/lib/faker/default/company.rb +264 -0
- data/lib/faker/default/compass.rb +67 -0
- data/lib/faker/default/construction.rb +29 -0
- data/lib/faker/default/cosmere.rb +48 -0
- data/lib/faker/default/crypto.rb +21 -0
- data/lib/faker/default/crypto_coin.rb +49 -0
- data/lib/faker/default/currency.rb +19 -0
- data/lib/faker/default/date.rb +182 -0
- data/lib/faker/default/dc_comics.rb +25 -0
- data/lib/faker/default/demographic.rb +41 -0
- data/lib/faker/default/dessert.rb +48 -0
- data/lib/faker/default/device.rb +85 -0
- data/lib/faker/default/driving_licence.rb +65 -0
- data/lib/faker/default/educator.rb +35 -0
- data/lib/faker/default/electrical_components.rb +48 -0
- data/lib/faker/default/esport.rb +27 -0
- data/lib/faker/default/file.rb +49 -0
- data/lib/faker/default/fillmurray.rb +23 -0
- data/lib/faker/default/finance.rb +44 -0
- data/lib/faker/default/food.rb +49 -0
- data/lib/faker/default/funny_name.rb +45 -0
- data/lib/faker/default/gender.rb +33 -0
- data/lib/faker/default/greek_philosophers.rb +33 -0
- data/lib/faker/default/hacker.rb +103 -0
- data/lib/faker/default/hipster.rb +97 -0
- data/lib/faker/default/house.rb +33 -0
- data/lib/faker/default/id_number.rb +164 -0
- data/lib/faker/default/industry_segments.rb +61 -0
- data/lib/faker/default/internet.rb +291 -0
- data/lib/faker/default/invoice.rb +109 -0
- data/lib/faker/default/job.rb +25 -0
- data/lib/faker/default/json.rb +87 -0
- data/lib/faker/default/kpop.rb +31 -0
- data/lib/faker/default/lorem.rb +151 -0
- data/lib/faker/default/lorem_flickr.rb +78 -0
- data/lib/faker/default/lorem_pixel.rb +47 -0
- data/lib/faker/default/markdown.rb +84 -0
- data/lib/faker/default/marketing.rb +22 -0
- data/lib/faker/default/measurement.rb +116 -0
- data/lib/faker/default/military.rb +72 -0
- data/lib/faker/default/name.rb +58 -0
- data/lib/faker/default/nation.rb +76 -0
- data/lib/faker/default/nato_phonetic_alphabet.rb +20 -0
- data/lib/faker/default/nhs.rb +38 -0
- data/lib/faker/default/number.rb +274 -0
- data/lib/faker/default/omniauth.rb +413 -0
- data/lib/faker/default/phone_number.rb +54 -0
- data/lib/faker/default/placeholdit.rb +41 -0
- data/lib/faker/default/programming_language.rb +33 -0
- data/lib/faker/default/relationship.rb +46 -0
- data/lib/faker/default/restaurant.rb +63 -0
- data/lib/faker/default/science.rb +46 -0
- data/lib/faker/default/slack_emoji.rb +43 -0
- data/lib/faker/default/source.rb +76 -0
- data/lib/faker/default/south_africa.rb +51 -0
- data/lib/faker/default/space.rb +64 -0
- data/lib/faker/default/string.rb +49 -0
- data/lib/faker/default/stripe.rb +81 -0
- data/lib/faker/default/subscription.rb +70 -0
- data/lib/faker/default/superhero.rb +72 -0
- data/lib/faker/default/team.rb +29 -0
- data/lib/faker/default/time.rb +179 -0
- data/lib/faker/default/twitter.rb +188 -0
- data/lib/faker/default/types.rb +101 -0
- data/lib/faker/default/university.rb +30 -0
- data/lib/faker/default/vehicle.rb +162 -0
- data/lib/faker/default/verb.rb +27 -0
- data/lib/faker/default/world_cup.rb +86 -0
- data/lib/faker/games/dota.rb +80 -0
- data/lib/faker/games/elder_scrolls.rb +113 -0
- data/lib/faker/games/fallout.rb +62 -0
- data/lib/faker/games/game.rb +48 -0
- data/lib/faker/games/half_life.rb +48 -0
- data/lib/faker/games/heroes.rb +48 -0
- data/lib/faker/games/heroes_of_the_storm.rb +61 -0
- data/lib/faker/games/league_of_legends.rb +87 -0
- data/lib/faker/games/myst.rb +74 -0
- data/lib/faker/games/overwatch.rb +48 -0
- data/lib/faker/games/pokemon.rb +48 -0
- data/lib/faker/games/sonic_the_hedgehog.rb +48 -0
- data/lib/faker/games/super_smash_bros.rb +35 -0
- data/lib/faker/games/witcher.rb +87 -0
- data/lib/faker/games/world_of_warcraft.rb +35 -0
- data/lib/faker/games/zelda.rb +62 -0
- data/lib/faker/japanese_media/dragon_ball.rb +22 -0
- data/lib/faker/japanese_media/one_piece.rb +87 -0
- data/lib/faker/japanese_media/sword_art_online.rb +61 -0
- data/lib/faker/movies/back_to_the_future.rb +49 -0
- data/lib/faker/movies/ghostbusters.rb +49 -0
- data/lib/faker/movies/harry_potter.rb +87 -0
- data/lib/faker/movies/hitchhikers_guide_to_the_galaxy.rb +106 -0
- data/lib/faker/movies/hobbit.rb +62 -0
- data/lib/faker/movies/lebowski.rb +48 -0
- data/lib/faker/movies/lord_of_the_rings.rb +49 -0
- data/lib/faker/movies/movie.rb +20 -0
- data/lib/faker/movies/princess_bride.rb +36 -0
- data/lib/faker/movies/star_wars.rb +201 -0
- data/lib/faker/movies/v_for_vendetta.rb +50 -0
- data/lib/faker/music/grateful_dead.rb +37 -0
- data/lib/faker/music/music.rb +47 -0
- data/lib/faker/music/opera.rb +26 -0
- data/lib/faker/music/phish.rb +22 -0
- data/lib/faker/music/rock_band.rb +22 -0
- data/lib/faker/music/umphreys_mcgee.rb +22 -0
- data/lib/faker/quotes/quote.rb +32 -0
- data/lib/faker/quotes/shakespeare.rb +41 -0
- data/lib/faker/sports/basketball.rb +61 -0
- data/lib/faker/sports/football.rb +74 -0
- data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +24 -0
- data/lib/faker/tv_shows/bojack_horseman.rb +51 -0
- data/lib/faker/tv_shows/breaking_bad.rb +37 -0
- data/lib/faker/tv_shows/buffy.rb +76 -0
- data/lib/faker/tv_shows/community.rb +38 -0
- data/lib/faker/tv_shows/dr_who.rb +115 -0
- data/lib/faker/tv_shows/dumb_and_dumber.rb +51 -0
- data/lib/faker/tv_shows/family_guy.rb +51 -0
- data/lib/faker/tv_shows/friends.rb +50 -0
- data/lib/faker/tv_shows/game_of_thrones.rb +77 -0
- data/lib/faker/tv_shows/hey_arnold.rb +50 -0
- data/lib/faker/tv_shows/how_i_met_your_mother.rb +64 -0
- data/lib/faker/tv_shows/michael_scott.rb +26 -0
- data/lib/faker/tv_shows/new_girl.rb +38 -0
- data/lib/faker/tv_shows/parks_and_rec.rb +37 -0
- data/lib/faker/tv_shows/rick_and_morty.rb +51 -0
- data/lib/faker/tv_shows/ru_paul.rb +37 -0
- data/lib/faker/tv_shows/seinfeld.rb +51 -0
- data/lib/faker/tv_shows/silicon_valley.rb +118 -0
- data/lib/faker/tv_shows/simpsons.rb +51 -0
- data/lib/faker/tv_shows/south_park.rb +38 -0
- data/lib/faker/tv_shows/star_trek.rb +63 -0
- data/lib/faker/tv_shows/stargate.rb +51 -0
- data/lib/faker/tv_shows/stranger_things.rb +38 -0
- data/lib/faker/tv_shows/the_expanse.rb +63 -0
- data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +51 -0
- data/lib/faker/tv_shows/the_it_crowd.rb +64 -0
- data/lib/faker/tv_shows/the_thick_of_it.rb +51 -0
- data/lib/faker/tv_shows/twin_peaks.rb +51 -0
- data/lib/faker/tv_shows/venture_bros.rb +65 -0
- data/lib/faker/version.rb +5 -0
- data/lib/helpers/base58.rb +22 -0
- data/lib/helpers/char.rb +66 -0
- data/lib/helpers/unique_generator.rb +56 -0
- data/lib/locales/README.md +40 -0
- data/lib/locales/ar.yml +102 -0
- data/lib/locales/bg.yml +44 -0
- data/lib/locales/ca-CAT.yml +24 -0
- data/lib/locales/ca.yml +31 -0
- data/lib/locales/da-DK.yml +73 -0
- data/lib/locales/de-AT.yml +56 -0
- data/lib/locales/de-CH.yml +19 -0
- data/lib/locales/de.yml +174 -0
- data/lib/locales/ee.yml +61 -0
- data/lib/locales/en-AU.yml +28 -0
- data/lib/locales/en-BORK.yml +4 -0
- data/lib/locales/en-CA.yml +36 -0
- data/lib/locales/en-GB.yml +14 -0
- data/lib/locales/en-IND.yml +25 -0
- data/lib/locales/en-MS.yml +47 -0
- data/lib/locales/en-NEP.yml +49 -0
- data/lib/locales/en-NG.yml +77 -0
- data/lib/locales/en-NZ.yml +39 -0
- data/lib/locales/en-PAK.yml +18 -0
- data/lib/locales/en-SG.yml +35 -0
- data/lib/locales/en-TH.yml +360 -0
- data/lib/locales/en-UG.yml +128 -0
- data/lib/locales/en-US.yml +103 -0
- data/lib/locales/en-ZA.yml +148 -0
- data/lib/locales/en-au-ocker.yml +33 -0
- data/lib/locales/en.yml +11 -0
- data/lib/locales/en/README.md +13 -0
- data/lib/locales/en/address.yml +581 -0
- data/lib/locales/en/ancient.yml +7 -0
- data/lib/locales/en/animal.yml +6 -0
- data/lib/locales/en/app.yml +8 -0
- data/lib/locales/en/appliance.yml +5 -0
- data/lib/locales/en/aqua_teen_hunger_force.yml +4 -0
- data/lib/locales/en/artist.yml +4 -0
- data/lib/locales/en/back_to_the_future.yml +120 -0
- data/lib/locales/en/bank.yml +302 -0
- data/lib/locales/en/basketball.yml +99 -0
- data/lib/locales/en/beer.yml +9 -0
- data/lib/locales/en/bojack_horseman.yml +6 -0
- data/lib/locales/en/book.yml +7 -0
- data/lib/locales/en/bossa_nova.yml +6 -0
- data/lib/locales/en/breaking_bad.yml +28 -0
- data/lib/locales/en/buffy.yml +260 -0
- data/lib/locales/en/business.yml +5 -0
- data/lib/locales/en/cannabis.yml +13 -0
- data/lib/locales/en/cat.yml +7 -0
- data/lib/locales/en/chuck_norris.yml +82 -0
- data/lib/locales/en/code.yml +4 -0
- data/lib/locales/en/coffee.yml +31 -0
- data/lib/locales/en/coin.yml +6 -0
- data/lib/locales/en/color.yml +4 -0
- data/lib/locales/en/commerce.yml +11 -0
- data/lib/locales/en/community.yml +33 -0
- data/lib/locales/en/company.yml +22 -0
- data/lib/locales/en/compass.yml +34 -0
- data/lib/locales/en/construction.yml +425 -0
- data/lib/locales/en/cosmere.yml +57 -0
- data/lib/locales/en/crypto_coin.yml +25 -0
- data/lib/locales/en/culture_series.yml +307 -0
- data/lib/locales/en/currency.yml +6 -0
- data/lib/locales/en/dc_comics.yml +52 -0
- data/lib/locales/en/demographic.yml +8 -0
- data/lib/locales/en/dessert.yml +6 -0
- data/lib/locales/en/device.yml +7 -0
- data/lib/locales/en/dog.yml +11 -0
- data/lib/locales/en/dota.yml +105 -0
- data/lib/locales/en/dr_who.yml +96 -0
- data/lib/locales/en/dragon_ball.yml +4 -0
- data/lib/locales/en/dumb_and_dumber.yml +59 -0
- data/lib/locales/en/dune.yml +159 -0
- data/lib/locales/en/educator.yml +11 -0
- data/lib/locales/en/elder_scrolls.yml +11 -0
- data/lib/locales/en/electrical_components.yml +6 -0
- data/lib/locales/en/esport.yml +8 -0
- data/lib/locales/en/fallout.yml +137 -0
- data/lib/locales/en/family_guy.yml +7 -0
- data/lib/locales/en/file.yml +5 -0
- data/lib/locales/en/finance.yml +113 -0
- data/lib/locales/en/food.yml +13 -0
- data/lib/locales/en/football.yml +8 -0
- data/lib/locales/en/fresh_prince_of_bel_air.yml +73 -0
- data/lib/locales/en/friends.yml +6 -0
- data/lib/locales/en/funny_name.yml +4 -0
- data/lib/locales/en/game.yml +283 -0
- data/lib/locales/en/game_of_thrones.yml +8 -0
- data/lib/locales/en/gender.yml +5 -0
- data/lib/locales/en/ghostbusters.yml +91 -0
- data/lib/locales/en/grateful_dead.yml +48 -0
- data/lib/locales/en/greek_philosophers.yml +26 -0
- data/lib/locales/en/hacker.yml +8 -0
- data/lib/locales/en/half_life.yml +7 -0
- data/lib/locales/en/harry_potter.yml +9 -0
- data/lib/locales/en/heroes.yml +6 -0
- data/lib/locales/en/heroes_of_the_storm.yml +7 -0
- data/lib/locales/en/hey_arnold.yml +24 -0
- data/lib/locales/en/hipster.yml +4 -0
- data/lib/locales/en/hitchhikers_guide_to_the_galaxy.yml +45 -0
- data/lib/locales/en/hobbit.yml +19 -0
- data/lib/locales/en/horse.yml +6 -0
- data/lib/locales/en/house.yml +5 -0
- data/lib/locales/en/how_i_met_your_mother.yml +28 -0
- data/lib/locales/en/id_number.yml +5 -0
- data/lib/locales/en/industry_segments.yml +7 -0
- data/lib/locales/en/internet.yml +21 -0
- data/lib/locales/en/invoice.yml +6 -0
- data/lib/locales/en/job.yml +15 -0
- data/lib/locales/en/kpop.yml +83 -0
- data/lib/locales/en/league_of_legends.yml +10 -0
- data/lib/locales/en/lebowski.yml +43 -0
- data/lib/locales/en/lord_of_the_rings.yml +6 -0
- data/lib/locales/en/lorem.yml +11 -0
- data/lib/locales/en/lovecraft.yml +9 -0
- data/lib/locales/en/markdown.yml +5 -0
- data/lib/locales/en/marketing.yml +4 -0
- data/lib/locales/en/measurement.yml +11 -0
- data/lib/locales/en/michael_scott.yml +45 -0
- data/lib/locales/en/military.yml +8 -0
- data/lib/locales/en/movie.yml +5 -0
- data/lib/locales/en/music.yml +32 -0
- data/lib/locales/en/myst.yml +48 -0
- data/lib/locales/en/name.yml +25 -0
- data/lib/locales/en/nation.yml +11 -0
- data/lib/locales/en/nato_phonetic_alphabet.yml +4 -0
- data/lib/locales/en/new_girl.yml +40 -0
- data/lib/locales/en/one_piece.yml +9 -0
- data/lib/locales/en/opera.yml +172 -0
- data/lib/locales/en/overwatch.yml +41 -0
- data/lib/locales/en/parks_and_rec.yml +7 -0
- data/lib/locales/en/phish.yml +4 -0
- data/lib/locales/en/phone_number.yml +7 -0
- data/lib/locales/en/pokemon.yml +8 -0
- data/lib/locales/en/princess_bride.yml +5 -0
- data/lib/locales/en/programming_language.yml +6 -0
- data/lib/locales/en/quote.yml +166 -0
- data/lib/locales/en/relationship.yml +10 -0
- data/lib/locales/en/restaurant.yml +129 -0
- data/lib/locales/en/rick_and_morty.yml +6 -0
- data/lib/locales/en/rock_band.yml +4 -0
- data/lib/locales/en/rupaul.yml +125 -0
- data/lib/locales/en/science.yml +6 -0
- data/lib/locales/en/seinfeld.yml +6 -0
- data/lib/locales/en/shakespeare.yml +56 -0
- data/lib/locales/en/silicon_valley.yml +53 -0
- data/lib/locales/en/simpsons.yml +26 -0
- data/lib/locales/en/slack_emoji.yml +20 -0
- data/lib/locales/en/sonic_the_hedgehog.yml +410 -0
- data/lib/locales/en/source.yml +16 -0
- data/lib/locales/en/south_park.yml +5 -0
- data/lib/locales/en/space.yml +17 -0
- data/lib/locales/en/star_trek.yml +7 -0
- data/lib/locales/en/star_wars.yml +258 -0
- data/lib/locales/en/stargate.yml +21 -0
- data/lib/locales/en/stranger_thing.yml +36 -0
- data/lib/locales/en/stripe.yml +42 -0
- data/lib/locales/en/subscription.yml +8 -0
- data/lib/locales/en/super_smash_bros.yml +205 -0
- data/lib/locales/en/superhero.yml +12 -0
- data/lib/locales/en/sword_art_online.yml +334 -0
- data/lib/locales/en/team.yml +8 -0
- data/lib/locales/en/the_expanse.yml +7 -0
- data/lib/locales/en/the_it_crowd.yml +155 -0
- data/lib/locales/en/the_thick_of_it.yml +6 -0
- data/lib/locales/en/twin_peaks.yml +6 -0
- data/lib/locales/en/umphreys_mcgee.yml +4 -0
- data/lib/locales/en/university.yml +10 -0
- data/lib/locales/en/v_for_vendetta.yml +163 -0
- data/lib/locales/en/vehicle.yml +80 -0
- data/lib/locales/en/venture_bros.yml +7 -0
- data/lib/locales/en/verbs.yml +8 -0
- data/lib/locales/en/witcher.yml +11 -0
- data/lib/locales/en/world_cup.yml +271 -0
- data/lib/locales/en/world_of_warcraft.yml +8 -0
- data/lib/locales/en/yoda.yml +4 -0
- data/lib/locales/en/zelda.yml +8 -0
- data/lib/locales/es-MX.yml +102 -0
- data/lib/locales/es.yml +94 -0
- data/lib/locales/fa.yml +10 -0
- data/lib/locales/fi-FI.yml +35 -0
- data/lib/locales/fr-CA.yml +90 -0
- data/lib/locales/fr-CH.yml +78 -0
- data/lib/locales/fr.yml +114 -0
- data/lib/locales/he.yml +27 -0
- data/lib/locales/hy.yml +416 -0
- data/lib/locales/id.yml +23 -0
- data/lib/locales/it.yml +70 -0
- data/lib/locales/ja.yml +97 -0
- data/lib/locales/ko.yml +40 -0
- data/lib/locales/lv.yml +55 -0
- data/lib/locales/nb-NO.yml +62 -0
- data/lib/locales/nl.yml +92 -0
- data/lib/locales/no.yml +7 -0
- data/lib/locales/pl.yml +77 -0
- data/lib/locales/pt-BR.yml +697 -0
- data/lib/locales/pt.yml +66 -0
- data/lib/locales/ru.yml +76 -0
- data/lib/locales/sk.yml +78 -0
- data/lib/locales/sv.yml +81 -0
- data/lib/locales/th.yml +380 -0
- data/lib/locales/tr.yml +40 -0
- data/lib/locales/uk.yml +86 -0
- data/lib/locales/vi.yml +68 -0
- data/lib/locales/zh-CN.yml +56 -0
- data/lib/locales/zh-TW.yml +29 -0
- metadata +568 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class Marketing < Base
|
|
5
|
+
flexible :marketing
|
|
6
|
+
|
|
7
|
+
class << self
|
|
8
|
+
##
|
|
9
|
+
# Produces the name of a video game console or platform.
|
|
10
|
+
#
|
|
11
|
+
# @return [String]
|
|
12
|
+
#
|
|
13
|
+
# @example
|
|
14
|
+
# Faker::Marketing.buzzwords #=> "rubber meets the road"
|
|
15
|
+
#
|
|
16
|
+
# @faker.version 1.9.4
|
|
17
|
+
def buzzwords
|
|
18
|
+
fetch('marketing.buzzwords')
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class Measurement < Base
|
|
5
|
+
class << self
|
|
6
|
+
ALL = 'all'
|
|
7
|
+
NONE = 'none'
|
|
8
|
+
|
|
9
|
+
def height(legacy_amount = NOT_GIVEN, amount: rand(10))
|
|
10
|
+
warn_for_deprecated_arguments do |keywords|
|
|
11
|
+
keywords << :amount if legacy_amount != NOT_GIVEN
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
define_measurement_locale(amount, 'height')
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def length(legacy_amount = NOT_GIVEN, amount: rand(10))
|
|
18
|
+
warn_for_deprecated_arguments do |keywords|
|
|
19
|
+
keywords << :amount if legacy_amount != NOT_GIVEN
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
define_measurement_locale(amount, 'length')
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def volume(legacy_amount = NOT_GIVEN, amount: rand(10))
|
|
26
|
+
warn_for_deprecated_arguments do |keywords|
|
|
27
|
+
keywords << :amount if legacy_amount != NOT_GIVEN
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
define_measurement_locale(amount, 'volume')
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def weight(legacy_amount = NOT_GIVEN, amount: rand(10))
|
|
34
|
+
warn_for_deprecated_arguments do |keywords|
|
|
35
|
+
keywords << :amount if legacy_amount != NOT_GIVEN
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
define_measurement_locale(amount, 'weight')
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def metric_height(legacy_amount = NOT_GIVEN, amount: rand(10))
|
|
42
|
+
warn_for_deprecated_arguments do |keywords|
|
|
43
|
+
keywords << :amount if legacy_amount != NOT_GIVEN
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
define_measurement_locale(amount, 'metric_height')
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def metric_length(legacy_amount = NOT_GIVEN, amount: rand(10))
|
|
50
|
+
warn_for_deprecated_arguments do |keywords|
|
|
51
|
+
keywords << :amount if legacy_amount != NOT_GIVEN
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
define_measurement_locale(amount, 'metric_length')
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def metric_volume(legacy_amount = NOT_GIVEN, amount: rand(10))
|
|
58
|
+
warn_for_deprecated_arguments do |keywords|
|
|
59
|
+
keywords << :amount if legacy_amount != NOT_GIVEN
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
define_measurement_locale(amount, 'metric_volume')
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def metric_weight(legacy_amount = NOT_GIVEN, amount: rand(10))
|
|
66
|
+
warn_for_deprecated_arguments do |keywords|
|
|
67
|
+
keywords << :amount if legacy_amount != NOT_GIVEN
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
define_measurement_locale(amount, 'metric_weight')
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
private
|
|
74
|
+
|
|
75
|
+
def check_for_plural(text, number)
|
|
76
|
+
if number && number != 1
|
|
77
|
+
make_plural(text)
|
|
78
|
+
else
|
|
79
|
+
text
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def define_measurement_locale(amount, locale)
|
|
84
|
+
ensure_valid_amount(amount)
|
|
85
|
+
if amount == ALL
|
|
86
|
+
make_plural(fetch("measurement.#{locale}"))
|
|
87
|
+
elsif amount == NONE
|
|
88
|
+
fetch("measurement.#{locale}")
|
|
89
|
+
else
|
|
90
|
+
locale = check_for_plural(fetch("measurement.#{locale}"), amount)
|
|
91
|
+
|
|
92
|
+
"#{amount} #{locale}"
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def ensure_valid_amount(amount)
|
|
97
|
+
raise ArgumentError, 'invalid amount' unless amount == NONE || amount == ALL || amount.is_a?(Integer) || amount.is_a?(Float)
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def make_plural(text)
|
|
101
|
+
case text
|
|
102
|
+
when 'foot'
|
|
103
|
+
'feet'
|
|
104
|
+
when 'inch'
|
|
105
|
+
'inches'
|
|
106
|
+
when 'fluid ounce'
|
|
107
|
+
'fluid ounces'
|
|
108
|
+
when 'metric ton'
|
|
109
|
+
'metric tons'
|
|
110
|
+
else
|
|
111
|
+
"#{text}s"
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class Military < Base
|
|
5
|
+
class << self
|
|
6
|
+
##
|
|
7
|
+
# Produces a rank in the U.S. Army.
|
|
8
|
+
#
|
|
9
|
+
# @return [String]
|
|
10
|
+
#
|
|
11
|
+
# @example
|
|
12
|
+
# Faker::Military.army_rank #=> "Staff Sergeant"
|
|
13
|
+
#
|
|
14
|
+
# @faker.version 1.9.0
|
|
15
|
+
def army_rank
|
|
16
|
+
fetch('military.army_rank')
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
##
|
|
20
|
+
# Produces a rank in the U.S. Marines.
|
|
21
|
+
#
|
|
22
|
+
# @return [String]
|
|
23
|
+
#
|
|
24
|
+
# @example
|
|
25
|
+
# Faker::Military.marines_rank #=> "Gunnery Sergeant"
|
|
26
|
+
#
|
|
27
|
+
# @faker.version 1.9.0
|
|
28
|
+
def marines_rank
|
|
29
|
+
fetch('military.marines_rank')
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
##
|
|
33
|
+
# Produces a rank in the U.S. Navy.
|
|
34
|
+
#
|
|
35
|
+
# @return [String]
|
|
36
|
+
#
|
|
37
|
+
# @example
|
|
38
|
+
# Faker::Military.navy_rank #=> "Seaman"
|
|
39
|
+
#
|
|
40
|
+
# @faker.version 1.9.0
|
|
41
|
+
def navy_rank
|
|
42
|
+
fetch('military.navy_rank')
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
##
|
|
46
|
+
# Produces a rank in the U.S. Air Force.
|
|
47
|
+
#
|
|
48
|
+
# @return [String]
|
|
49
|
+
#
|
|
50
|
+
# @example
|
|
51
|
+
# Faker::Military.air_force_rank #=> "Captain"
|
|
52
|
+
#
|
|
53
|
+
# @faker.version 1.9.0
|
|
54
|
+
def air_force_rank
|
|
55
|
+
fetch('military.air_force_rank')
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
##
|
|
59
|
+
# Produces a U.S. Department of Defense Paygrade.
|
|
60
|
+
#
|
|
61
|
+
# @return [String]
|
|
62
|
+
#
|
|
63
|
+
# @example
|
|
64
|
+
# Faker::Military.dod_paygrade #=> "E-6"
|
|
65
|
+
#
|
|
66
|
+
# @faker.version 1.9.0
|
|
67
|
+
def dod_paygrade
|
|
68
|
+
fetch('military.dod_paygrade')
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class Name < Base
|
|
5
|
+
flexible :name
|
|
6
|
+
|
|
7
|
+
class << self
|
|
8
|
+
def name
|
|
9
|
+
parse('name.name')
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def name_with_middle
|
|
13
|
+
parse('name.name_with_middle')
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def first_name
|
|
17
|
+
if parse('name.first_name').empty?
|
|
18
|
+
fetch('name.first_name')
|
|
19
|
+
else
|
|
20
|
+
parse('name.first_name')
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def male_first_name
|
|
25
|
+
fetch('name.male_first_name')
|
|
26
|
+
end
|
|
27
|
+
alias first_name_men male_first_name
|
|
28
|
+
alias masculine_name male_first_name
|
|
29
|
+
|
|
30
|
+
def female_first_name
|
|
31
|
+
fetch('name.female_first_name')
|
|
32
|
+
end
|
|
33
|
+
alias first_name_women female_first_name
|
|
34
|
+
alias feminine_name female_first_name
|
|
35
|
+
|
|
36
|
+
def last_name
|
|
37
|
+
parse('name.last_name')
|
|
38
|
+
end
|
|
39
|
+
alias middle_name last_name
|
|
40
|
+
|
|
41
|
+
def prefix
|
|
42
|
+
fetch('name.prefix')
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def suffix
|
|
46
|
+
fetch('name.suffix')
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def initials(legacy_number = NOT_GIVEN, number: 3)
|
|
50
|
+
warn_for_deprecated_arguments do |keywords|
|
|
51
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
(0...number).map { rand(65..90).chr }.join
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class Nation < Base
|
|
5
|
+
flexible :nation
|
|
6
|
+
class << self
|
|
7
|
+
##
|
|
8
|
+
# Produces a random nationality.
|
|
9
|
+
#
|
|
10
|
+
# @return [String]
|
|
11
|
+
#
|
|
12
|
+
# @example
|
|
13
|
+
# Faker::Nation.nationality #=> "Nepalese"
|
|
14
|
+
#
|
|
15
|
+
# @faker.version 1.9.0
|
|
16
|
+
def nationality
|
|
17
|
+
fetch('nation.nationality')
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# rubocop:disable Style/AsciiComments
|
|
21
|
+
|
|
22
|
+
##
|
|
23
|
+
# Produces a random national flag emoji.
|
|
24
|
+
#
|
|
25
|
+
# @return [String]
|
|
26
|
+
#
|
|
27
|
+
# @example
|
|
28
|
+
# Faker::Nation.flag #=> "🇫🇮"
|
|
29
|
+
#
|
|
30
|
+
# @faker.version 1.9.0
|
|
31
|
+
def flag
|
|
32
|
+
sample(translate('faker.nation.flag')).pack('C*').force_encoding('utf-8')
|
|
33
|
+
end
|
|
34
|
+
# rubocop:enable Style/AsciiComments
|
|
35
|
+
|
|
36
|
+
##
|
|
37
|
+
# Produces a random national language.
|
|
38
|
+
#
|
|
39
|
+
# @return [String]
|
|
40
|
+
#
|
|
41
|
+
# @example
|
|
42
|
+
# Faker::Nation.language #=> "Nepali"
|
|
43
|
+
#
|
|
44
|
+
# @faker.version 1.9.0
|
|
45
|
+
def language
|
|
46
|
+
fetch('nation.language')
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
##
|
|
50
|
+
# Produces a random capital city.
|
|
51
|
+
#
|
|
52
|
+
# @return [String]
|
|
53
|
+
#
|
|
54
|
+
# @example
|
|
55
|
+
# Faker::Nation.capital_city #=> "Kathmandu"
|
|
56
|
+
#
|
|
57
|
+
# @faker.version 1.9.0
|
|
58
|
+
def capital_city
|
|
59
|
+
fetch('nation.capital_city')
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
##
|
|
63
|
+
# Produces a random national sport.
|
|
64
|
+
#
|
|
65
|
+
# @return [String]
|
|
66
|
+
#
|
|
67
|
+
# @example
|
|
68
|
+
# Faker::Nation.national_sport #=> "dandi biyo"
|
|
69
|
+
#
|
|
70
|
+
# @faker.version 1.9.0
|
|
71
|
+
def national_sport
|
|
72
|
+
fetch('team.sport')
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class NatoPhoneticAlphabet < Base
|
|
5
|
+
class << self
|
|
6
|
+
##
|
|
7
|
+
# Produces a code word from the NATO phonetic alphabet.
|
|
8
|
+
#
|
|
9
|
+
# @return [String]
|
|
10
|
+
#
|
|
11
|
+
# @example
|
|
12
|
+
# Faker::NatoPhoneticAlphabet.code_word #=> "Hotel"
|
|
13
|
+
#
|
|
14
|
+
# @faker.version 1.9.0
|
|
15
|
+
def code_word
|
|
16
|
+
fetch('nato_phonetic_alphabet.code_word')
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class NationalHealthService < Base
|
|
5
|
+
class << self
|
|
6
|
+
def british_number
|
|
7
|
+
base_number = rand(400_000_001...499_999_999)
|
|
8
|
+
# If the check digit is equivalent to 10, the number is invalid.
|
|
9
|
+
# See https://en.wikipedia.org/wiki/NHS_number
|
|
10
|
+
base_number -= 1 if check_digit(number: base_number) == 10
|
|
11
|
+
"#{base_number}#{check_digit(number: base_number)}".to_s
|
|
12
|
+
.chars
|
|
13
|
+
.insert(3, ' ')
|
|
14
|
+
.insert(7, ' ')
|
|
15
|
+
.join('')
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def check_digit(legacy_number = NOT_GIVEN, number: 0)
|
|
19
|
+
warn_for_deprecated_arguments do |keywords|
|
|
20
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
sum = 0
|
|
24
|
+
number.to_s.chars.each_with_index do |digit, idx|
|
|
25
|
+
position = idx + 1
|
|
26
|
+
sum += (digit.to_i * (11 - position))
|
|
27
|
+
end
|
|
28
|
+
result = 11 - (sum % 11)
|
|
29
|
+
|
|
30
|
+
# A value of 11 is considered the same as 0
|
|
31
|
+
# See https://en.wikipedia.org/wiki/NHS_number
|
|
32
|
+
return 0 if result == 11
|
|
33
|
+
|
|
34
|
+
result
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class Number < Base
|
|
5
|
+
class << self
|
|
6
|
+
##
|
|
7
|
+
# Produce a random number.
|
|
8
|
+
#
|
|
9
|
+
# @param digits [Integer] Number of digits that the generated number should have.
|
|
10
|
+
# @return [Integer]
|
|
11
|
+
#
|
|
12
|
+
# @example
|
|
13
|
+
# Faker::Number.number(digits: 10) #=> 1968353479
|
|
14
|
+
#
|
|
15
|
+
# @faker.version 1.0.0
|
|
16
|
+
def number(legacy_digits = NOT_GIVEN, digits: 10)
|
|
17
|
+
warn_for_deprecated_arguments do |keywords|
|
|
18
|
+
keywords << :digits if legacy_digits != NOT_GIVEN
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
return if digits < 1
|
|
22
|
+
return rand(0..9).round if digits == 1
|
|
23
|
+
|
|
24
|
+
# Ensure the first digit is not zero
|
|
25
|
+
([non_zero_digit] + generate(digits - 1)).join.to_i
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
##
|
|
29
|
+
# Produce a random number with a leading zero.
|
|
30
|
+
#
|
|
31
|
+
# @param digits [Integer] Number of digits that the generated number should have.
|
|
32
|
+
# @return [String]
|
|
33
|
+
#
|
|
34
|
+
# @example
|
|
35
|
+
# Faker::Number.leading_zero_number(digits: 10) #=> "0669336915"
|
|
36
|
+
#
|
|
37
|
+
# @faker.version 1.0.0
|
|
38
|
+
def leading_zero_number(legacy_digits = NOT_GIVEN, digits: 10)
|
|
39
|
+
warn_for_deprecated_arguments do |keywords|
|
|
40
|
+
keywords << :digits if legacy_digits != NOT_GIVEN
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
'0' + (2..digits).collect { digit }.join
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
##
|
|
47
|
+
# Produce a number with a number of digits, preserves leading zeroes.
|
|
48
|
+
#
|
|
49
|
+
# @param digits [Integer] Number of digits that the generated number should have.
|
|
50
|
+
# @return [String]
|
|
51
|
+
#
|
|
52
|
+
# @example
|
|
53
|
+
# Faker::Number.decimal_part(digits: 2) #=> "09"
|
|
54
|
+
#
|
|
55
|
+
# @faker.version 1.0.0
|
|
56
|
+
def decimal_part(legacy_digits = NOT_GIVEN, digits: 10)
|
|
57
|
+
warn_for_deprecated_arguments do |keywords|
|
|
58
|
+
keywords << :digits if legacy_digits != NOT_GIVEN
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
num = ''
|
|
62
|
+
if digits > 1
|
|
63
|
+
num = non_zero_digit
|
|
64
|
+
digits -= 1
|
|
65
|
+
end
|
|
66
|
+
leading_zero_number(digits: digits) + num.to_s
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
##
|
|
70
|
+
# Produces a float.
|
|
71
|
+
#
|
|
72
|
+
# @param l_digits [Integer] Number of digits that the generated decimal should have to the left of the decimal point.
|
|
73
|
+
# @param r_digits [Integer] Number of digits that the generated decimal should have to the right of the decimal point.
|
|
74
|
+
# @return [Float]
|
|
75
|
+
#
|
|
76
|
+
# @example
|
|
77
|
+
# Faker::Number.decimal(l_digits: 2) #=> 11.88
|
|
78
|
+
# Faker::Number.decimal(l_digits: 3, r_digits: 3) #=> 181.843
|
|
79
|
+
#
|
|
80
|
+
# @faker.version 1.0.0
|
|
81
|
+
def decimal(legacy_l_digits = NOT_GIVEN, legacy_r_digits = NOT_GIVEN, l_digits: 5, r_digits: 2)
|
|
82
|
+
warn_for_deprecated_arguments do |keywords|
|
|
83
|
+
keywords << :l_digits if legacy_l_digits != NOT_GIVEN
|
|
84
|
+
keywords << :r_digits if legacy_r_digits != NOT_GIVEN
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
l_d = number(digits: l_digits)
|
|
88
|
+
r_d = if r_digits == 1
|
|
89
|
+
generate(r_digits)
|
|
90
|
+
else
|
|
91
|
+
# Ensure the last digit is not zero
|
|
92
|
+
# so it does not get truncated on converting to float
|
|
93
|
+
generate(r_digits - 1).join + non_zero_digit.to_s
|
|
94
|
+
end
|
|
95
|
+
"#{l_d}.#{r_d}".to_f
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
##
|
|
99
|
+
# Produces a non-zero single-digit integer.
|
|
100
|
+
#
|
|
101
|
+
# @return [Integer]
|
|
102
|
+
#
|
|
103
|
+
# @example
|
|
104
|
+
# Faker::Number.non_zero_digit #=> 8
|
|
105
|
+
#
|
|
106
|
+
# @faker.version 1.0.0
|
|
107
|
+
def non_zero_digit
|
|
108
|
+
rand(1..9)
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
##
|
|
112
|
+
# Produces a single-digit integer.
|
|
113
|
+
#
|
|
114
|
+
# @return [Integer]
|
|
115
|
+
#
|
|
116
|
+
# @example
|
|
117
|
+
# Faker::Number.digit #=> 1
|
|
118
|
+
#
|
|
119
|
+
# @faker.version 1.0.0
|
|
120
|
+
def digit
|
|
121
|
+
rand(10)
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
##
|
|
125
|
+
# Produces a number in hexadecimal format.
|
|
126
|
+
#
|
|
127
|
+
# @param digits [Integer] Number of digits in the he
|
|
128
|
+
# @return [String]
|
|
129
|
+
#
|
|
130
|
+
# @example
|
|
131
|
+
# Faker::Number.hexadecimal(digits: 3) #=> "e74"
|
|
132
|
+
#
|
|
133
|
+
# @faker.version 1.0.0
|
|
134
|
+
def hexadecimal(legacy_digits = NOT_GIVEN, digits: 6)
|
|
135
|
+
warn_for_deprecated_arguments do |keywords|
|
|
136
|
+
keywords << :digits if legacy_digits != NOT_GIVEN
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
hex = ''
|
|
140
|
+
digits.times { hex += rand(15).to_s(16) }
|
|
141
|
+
hex
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
##
|
|
145
|
+
# Produces a float given a mean and standard deviation.
|
|
146
|
+
#
|
|
147
|
+
# @param mean [Integer]
|
|
148
|
+
# @param standard_deviation [Integer, Float]
|
|
149
|
+
# @return [Float]
|
|
150
|
+
#
|
|
151
|
+
# @example
|
|
152
|
+
# Faker::Number.normal(mean: 50, standard_deviation: 3.5) #=> 47.14669604069156
|
|
153
|
+
#
|
|
154
|
+
# @faker.version 1.0.0
|
|
155
|
+
def normal(legacy_mean = NOT_GIVEN, legacy_standard_deviation = NOT_GIVEN, mean: 1, standard_deviation: 1)
|
|
156
|
+
warn_for_deprecated_arguments do |keywords|
|
|
157
|
+
keywords << :mean if legacy_mean != NOT_GIVEN
|
|
158
|
+
keywords << :standard_deviation if legacy_standard_deviation != NOT_GIVEN
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
theta = 2 * Math::PI * rand
|
|
162
|
+
rho = Math.sqrt(-2 * Math.log(1 - rand))
|
|
163
|
+
scale = standard_deviation * rho
|
|
164
|
+
mean + scale * Math.cos(theta)
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
##
|
|
168
|
+
# Produces a number between two provided values. Boundaries are inclusive.
|
|
169
|
+
#
|
|
170
|
+
# @param from [Integer] The lowest number to include.
|
|
171
|
+
# @param to [Integer] The highest number to include.
|
|
172
|
+
# @return [Integer]
|
|
173
|
+
#
|
|
174
|
+
# @example
|
|
175
|
+
# Faker::Number.between(from: 1, to: 10) #=> 7
|
|
176
|
+
#
|
|
177
|
+
# @faker.version 1.0.0
|
|
178
|
+
def between(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: 1.00, to: 5000.00)
|
|
179
|
+
warn_for_deprecated_arguments do |keywords|
|
|
180
|
+
keywords << :from if legacy_from != NOT_GIVEN
|
|
181
|
+
keywords << :to if legacy_to != NOT_GIVEN
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
Faker::Base.rand_in_range(from, to)
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
##
|
|
188
|
+
# Produces a number within two provided values. Boundaries are inclusive or exclusive depending on the range passed.
|
|
189
|
+
#
|
|
190
|
+
# @param range [Range] The range from which to generate a number.
|
|
191
|
+
# @return [Integer]
|
|
192
|
+
#
|
|
193
|
+
# @example
|
|
194
|
+
# Faker::Number.within(range: 1..10) #=> 7
|
|
195
|
+
#
|
|
196
|
+
# @faker.version 1.0.0
|
|
197
|
+
def within(legacy_range = NOT_GIVEN, range: 1.00..5000.00)
|
|
198
|
+
warn_for_deprecated_arguments do |keywords|
|
|
199
|
+
keywords << :range if legacy_range != NOT_GIVEN
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
between(from: range.min, to: range.max)
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
##
|
|
206
|
+
# Produces a positive float.
|
|
207
|
+
#
|
|
208
|
+
# @param from [Integer] The lower boundary.
|
|
209
|
+
# @param to [Integer] The higher boundary.
|
|
210
|
+
# @return [Float]
|
|
211
|
+
#
|
|
212
|
+
# @example
|
|
213
|
+
# Faker::Number.positive #=> 235.59238499107653
|
|
214
|
+
#
|
|
215
|
+
# @faker.version 1.0.0
|
|
216
|
+
def positive(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: 1.00, to: 5000.00)
|
|
217
|
+
warn_for_deprecated_arguments do |keywords|
|
|
218
|
+
keywords << :from if legacy_from != NOT_GIVEN
|
|
219
|
+
keywords << :to if legacy_to != NOT_GIVEN
|
|
220
|
+
end
|
|
221
|
+
|
|
222
|
+
random_number = between(from: from, to: to)
|
|
223
|
+
|
|
224
|
+
greater_than_zero(random_number)
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
##
|
|
228
|
+
# Produces a negative float.
|
|
229
|
+
#
|
|
230
|
+
# @param from [Integer] The lower boundary.
|
|
231
|
+
# @param to [Integer] The higher boundary.
|
|
232
|
+
# @return [Float]
|
|
233
|
+
#
|
|
234
|
+
# @example
|
|
235
|
+
# Faker::Number.negative #=> -4480.042585669558
|
|
236
|
+
#
|
|
237
|
+
# @faker.version 1.0.0
|
|
238
|
+
def negative(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: -5000.00, to: -1.00)
|
|
239
|
+
warn_for_deprecated_arguments do |keywords|
|
|
240
|
+
keywords << :from if legacy_from != NOT_GIVEN
|
|
241
|
+
keywords << :to if legacy_to != NOT_GIVEN
|
|
242
|
+
end
|
|
243
|
+
|
|
244
|
+
random_number = between(from: from, to: to)
|
|
245
|
+
|
|
246
|
+
less_than_zero(random_number)
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
private
|
|
250
|
+
|
|
251
|
+
def generate(count)
|
|
252
|
+
return [] if count.zero?
|
|
253
|
+
|
|
254
|
+
Array.new(count) { digit }
|
|
255
|
+
end
|
|
256
|
+
|
|
257
|
+
def greater_than_zero(number)
|
|
258
|
+
should_be(number, :>)
|
|
259
|
+
end
|
|
260
|
+
|
|
261
|
+
def less_than_zero(number)
|
|
262
|
+
should_be(number, :<)
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
def should_be(number, method_to_compare)
|
|
266
|
+
if number.send(method_to_compare, 0)
|
|
267
|
+
number
|
|
268
|
+
else
|
|
269
|
+
number * -1
|
|
270
|
+
end
|
|
271
|
+
end
|
|
272
|
+
end
|
|
273
|
+
end
|
|
274
|
+
end
|