faker 2.2.2
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 +1282 -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/bitcoin.rb +34 -0
- data/lib/faker/blockchain/ethereum.rb +16 -0
- data/lib/faker/blockchain/tezos.rb +51 -0
- data/lib/faker/books/book.rb +25 -0
- data/lib/faker/books/culture_series.rb +34 -0
- data/lib/faker/books/dune.rb +66 -0
- data/lib/faker/books/lovecraft.rb +104 -0
- data/lib/faker/creature/animal.rb +13 -0
- data/lib/faker/creature/cat.rb +23 -0
- data/lib/faker/creature/dog.rb +43 -0
- data/lib/faker/creature/horse.rb +19 -0
- data/lib/faker/default/address.rb +123 -0
- data/lib/faker/default/alphanumeric.rb +56 -0
- data/lib/faker/default/ancient.rb +23 -0
- data/lib/faker/default/app.rb +31 -0
- data/lib/faker/default/appliance.rb +15 -0
- data/lib/faker/default/artist.rb +11 -0
- data/lib/faker/default/avatar.rb +28 -0
- data/lib/faker/default/bank.rb +108 -0
- data/lib/faker/default/beer.rb +41 -0
- data/lib/faker/default/boolean.rb +15 -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 +101 -0
- data/lib/faker/default/dc_comics.rb +25 -0
- data/lib/faker/default/demographic.rb +41 -0
- data/lib/faker/default/dessert.rb +21 -0
- data/lib/faker/default/device.rb +31 -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 +21 -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 +15 -0
- data/lib/faker/default/greek_philosophers.rb +15 -0
- data/lib/faker/default/hacker.rb +45 -0
- data/lib/faker/default/hipster.rb +97 -0
- data/lib/faker/default/house.rb +15 -0
- data/lib/faker/default/id_number.rb +164 -0
- data/lib/faker/default/industry_segments.rb +25 -0
- data/lib/faker/default/internet.rb +283 -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 +150 -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 +13 -0
- data/lib/faker/default/measurement.rb +116 -0
- data/lib/faker/default/military.rb +27 -0
- data/lib/faker/default/name.rb +58 -0
- data/lib/faker/default/nation.rb +33 -0
- data/lib/faker/default/nato_phonetic_alphabet.rb +11 -0
- data/lib/faker/default/nhs.rb +38 -0
- data/lib/faker/default/number.rb +150 -0
- data/lib/faker/default/omniauth.rb +371 -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 +15 -0
- data/lib/faker/default/relationship.rb +46 -0
- data/lib/faker/default/restaurant.rb +11 -0
- data/lib/faker/default/science.rb +19 -0
- data/lib/faker/default/slack_emoji.rb +43 -0
- data/lib/faker/default/source.rb +35 -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 +25 -0
- data/lib/faker/default/superhero.rb +27 -0
- data/lib/faker/default/team.rb +29 -0
- data/lib/faker/default/time.rb +102 -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 +36 -0
- data/lib/faker/games/dota.rb +33 -0
- data/lib/faker/games/elder_scrolls.rb +41 -0
- data/lib/faker/games/fallout.rb +25 -0
- data/lib/faker/games/game.rb +21 -0
- data/lib/faker/games/half_life.rb +21 -0
- data/lib/faker/games/heroes.rb +21 -0
- data/lib/faker/games/heroes_of_the_storm.rb +25 -0
- data/lib/faker/games/league_of_legends.rb +33 -0
- data/lib/faker/games/myst.rb +29 -0
- data/lib/faker/games/overwatch.rb +21 -0
- data/lib/faker/games/pokemon.rb +21 -0
- data/lib/faker/games/sonic_the_hedgehog.rb +21 -0
- data/lib/faker/games/super_smash_bros.rb +17 -0
- data/lib/faker/games/witcher.rb +33 -0
- data/lib/faker/games/world_of_warcraft.rb +17 -0
- data/lib/faker/games/zelda.rb +26 -0
- data/lib/faker/japanese_media/dragon_ball.rb +13 -0
- data/lib/faker/japanese_media/one_piece.rb +33 -0
- data/lib/faker/japanese_media/sword_art_online.rb +25 -0
- data/lib/faker/movies/back_to_the_future.rb +21 -0
- data/lib/faker/movies/ghostbusters.rb +21 -0
- data/lib/faker/movies/harry_potter.rb +33 -0
- data/lib/faker/movies/hitchhikers_guide_to_the_galaxy.rb +37 -0
- data/lib/faker/movies/hobbit.rb +25 -0
- data/lib/faker/movies/lebowski.rb +21 -0
- data/lib/faker/movies/lord_of_the_rings.rb +21 -0
- data/lib/faker/movies/movie.rb +11 -0
- data/lib/faker/movies/princess_bride.rb +17 -0
- data/lib/faker/movies/star_wars.rb +107 -0
- data/lib/faker/movies/v_for_vendetta.rb +21 -0
- data/lib/faker/music/grateful_dead.rb +19 -0
- data/lib/faker/music/music.rb +47 -0
- data/lib/faker/music/opera.rb +26 -0
- data/lib/faker/music/phish.rb +13 -0
- data/lib/faker/music/rock_band.rb +13 -0
- data/lib/faker/music/umphreys_mcgee.rb +13 -0
- data/lib/faker/quotes/quote.rb +32 -0
- data/lib/faker/quotes/shakespeare.rb +41 -0
- data/lib/faker/sports/basketball.rb +25 -0
- data/lib/faker/sports/football.rb +29 -0
- data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +15 -0
- data/lib/faker/tv_shows/bojack_horseman.rb +23 -0
- data/lib/faker/tv_shows/breaking_bad.rb +19 -0
- data/lib/faker/tv_shows/buffy.rb +31 -0
- data/lib/faker/tv_shows/community.rb +19 -0
- data/lib/faker/tv_shows/dr_who.rb +39 -0
- data/lib/faker/tv_shows/dumb_and_dumber.rb +23 -0
- data/lib/faker/tv_shows/family_guy.rb +23 -0
- data/lib/faker/tv_shows/friends.rb +23 -0
- data/lib/faker/tv_shows/game_of_thrones.rb +31 -0
- data/lib/faker/tv_shows/hey_arnold.rb +23 -0
- data/lib/faker/tv_shows/how_i_met_your_mother.rb +27 -0
- data/lib/faker/tv_shows/michael_scott.rb +13 -0
- data/lib/faker/tv_shows/new_girl.rb +19 -0
- data/lib/faker/tv_shows/parks_and_rec.rb +19 -0
- data/lib/faker/tv_shows/rick_and_morty.rb +23 -0
- data/lib/faker/tv_shows/ru_paul.rb +19 -0
- data/lib/faker/tv_shows/seinfeld.rb +23 -0
- data/lib/faker/tv_shows/silicon_valley.rb +43 -0
- data/lib/faker/tv_shows/simpsons.rb +23 -0
- data/lib/faker/tv_shows/south_park.rb +19 -0
- data/lib/faker/tv_shows/star_trek.rb +27 -0
- data/lib/faker/tv_shows/stargate.rb +23 -0
- data/lib/faker/tv_shows/stranger_things.rb +19 -0
- data/lib/faker/tv_shows/the_expanse.rb +27 -0
- data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +23 -0
- data/lib/faker/tv_shows/the_it_crowd.rb +27 -0
- data/lib/faker/tv_shows/the_thick_of_it.rb +23 -0
- data/lib/faker/tv_shows/twin_peaks.rb +23 -0
- data/lib/faker/tv_shows/venture_bros.rb +27 -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-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 +98 -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/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 +543 -0
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class LoremPixel < Base
|
5
|
+
class << self
|
6
|
+
SUPPORTED_CATEGORIES = %w[abstract
|
7
|
+
animals
|
8
|
+
business
|
9
|
+
cats
|
10
|
+
city
|
11
|
+
food
|
12
|
+
nightlife
|
13
|
+
fashion
|
14
|
+
people
|
15
|
+
nature
|
16
|
+
sports
|
17
|
+
technics
|
18
|
+
transport].freeze
|
19
|
+
|
20
|
+
# rubocop:disable Metrics/ParameterLists
|
21
|
+
def image(legacy_size = NOT_GIVEN, legacy_is_gray = NOT_GIVEN, legacy_category = NOT_GIVEN, legacy_number = NOT_GIVEN, legacy_text = NOT_GIVEN, legacy_secure = NOT_GIVEN, size: '300x300', is_gray: false, category: nil, number: nil, text: nil, secure: true)
|
22
|
+
warn_for_deprecated_arguments do |keywords|
|
23
|
+
keywords << :size if legacy_size != NOT_GIVEN
|
24
|
+
keywords << :is_gray if legacy_is_gray != NOT_GIVEN
|
25
|
+
keywords << :category if legacy_category != NOT_GIVEN
|
26
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
27
|
+
keywords << :text if legacy_text != NOT_GIVEN
|
28
|
+
keywords << :secure if legacy_secure != NOT_GIVEN
|
29
|
+
end
|
30
|
+
|
31
|
+
raise ArgumentError, 'Size should be specified in format 300x300' unless size =~ /^[0-9]+x[0-9]+$/
|
32
|
+
raise ArgumentError, "Supported categories are #{SUPPORTED_CATEGORIES.join(', ')}" unless category.nil? || SUPPORTED_CATEGORIES.include?(category)
|
33
|
+
raise ArgumentError, 'Category required when number is passed' if !number.nil? && category.nil?
|
34
|
+
raise ArgumentError, 'Number must be between 1 and 10' unless number.nil? || (1..10).cover?(number)
|
35
|
+
raise ArgumentError, 'Category and number must be passed when text is passed' if !text.nil? && number.nil? && category.nil?
|
36
|
+
|
37
|
+
url_parts = secure ? ['https:/'] : ['http:/']
|
38
|
+
url_parts << ['lorempixel.com']
|
39
|
+
url_parts << 'g' if is_gray
|
40
|
+
url_parts += size.split('x')
|
41
|
+
url_parts += [category, number, text].compact
|
42
|
+
url_parts.join('/')
|
43
|
+
end
|
44
|
+
# rubocop:enable Metrics/ParameterLists
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Markdown < Base
|
5
|
+
class << self
|
6
|
+
def headers
|
7
|
+
"#{fetch('markdown.headers')} #{Lorem.word.capitalize}"
|
8
|
+
end
|
9
|
+
|
10
|
+
def emphasis
|
11
|
+
paragraph = Faker::Lorem.paragraph(sentence_count: 3)
|
12
|
+
words = paragraph.split(' ')
|
13
|
+
position = rand(0..words.length - 1)
|
14
|
+
formatting = fetch('markdown.emphasis')
|
15
|
+
words[position] = "#{formatting}#{words[position]}#{formatting}"
|
16
|
+
words.join(' ')
|
17
|
+
end
|
18
|
+
|
19
|
+
def ordered_list
|
20
|
+
number = rand(1..10)
|
21
|
+
|
22
|
+
result = []
|
23
|
+
number.times do |i|
|
24
|
+
result << "#{i}. #{Faker::Lorem.sentence(word_count: 1)} \n"
|
25
|
+
end
|
26
|
+
result.join('')
|
27
|
+
end
|
28
|
+
|
29
|
+
def unordered_list
|
30
|
+
number = rand(1..10)
|
31
|
+
|
32
|
+
result = []
|
33
|
+
number.times do |_i|
|
34
|
+
result << "* #{Faker::Lorem.sentence(word_count: 1)} \n"
|
35
|
+
end
|
36
|
+
result.join('')
|
37
|
+
end
|
38
|
+
|
39
|
+
def inline_code
|
40
|
+
"`#{Faker::Lorem.sentence(word_count: 1)}`"
|
41
|
+
end
|
42
|
+
|
43
|
+
def block_code
|
44
|
+
"```ruby\n#{Lorem.sentence(word_count: 1)}\n```"
|
45
|
+
end
|
46
|
+
|
47
|
+
def table
|
48
|
+
table = []
|
49
|
+
3.times do
|
50
|
+
table << "#{Lorem.word} | #{Lorem.word} | #{Lorem.word}"
|
51
|
+
end
|
52
|
+
table.insert(1, '---- | ---- | ----')
|
53
|
+
table.join("\n")
|
54
|
+
end
|
55
|
+
|
56
|
+
def random(*args)
|
57
|
+
method_list = available_methods
|
58
|
+
args&.each { |ex| method_list.delete_if { |meth| meth == ex.to_sym } }
|
59
|
+
send(method_list[rand(0..method_list.length - 1)])
|
60
|
+
end
|
61
|
+
|
62
|
+
def sandwich(legacy_sentences = NOT_GIVEN, legacy_repeat = NOT_GIVEN, sentences: 3, repeat: 1)
|
63
|
+
warn_for_deprecated_arguments do |keywords|
|
64
|
+
keywords << :sentences if legacy_sentences != NOT_GIVEN
|
65
|
+
keywords << :repeat if legacy_repeat != NOT_GIVEN
|
66
|
+
end
|
67
|
+
|
68
|
+
text_block = []
|
69
|
+
text_block << headers
|
70
|
+
repeat.times do
|
71
|
+
text_block << Faker::Lorem.paragraph(sentence_count: sentences)
|
72
|
+
text_block << random
|
73
|
+
end
|
74
|
+
text_block.join("\n")
|
75
|
+
end
|
76
|
+
|
77
|
+
private
|
78
|
+
|
79
|
+
def available_methods
|
80
|
+
Markdown.public_methods(false) - Base.methods
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
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,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Military < Base
|
5
|
+
class << self
|
6
|
+
def army_rank
|
7
|
+
fetch('military.army_rank')
|
8
|
+
end
|
9
|
+
|
10
|
+
def marines_rank
|
11
|
+
fetch('military.marines_rank')
|
12
|
+
end
|
13
|
+
|
14
|
+
def navy_rank
|
15
|
+
fetch('military.navy_rank')
|
16
|
+
end
|
17
|
+
|
18
|
+
def air_force_rank
|
19
|
+
fetch('military.air_force_rank')
|
20
|
+
end
|
21
|
+
|
22
|
+
def dod_paygrade
|
23
|
+
fetch('military.dod_paygrade')
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
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,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Nation < Base
|
5
|
+
flexible :nation
|
6
|
+
class << self
|
7
|
+
# Fetch random nationality
|
8
|
+
def nationality
|
9
|
+
fetch('nation.nationality')
|
10
|
+
end
|
11
|
+
|
12
|
+
# Fetch random national flag emoji
|
13
|
+
def flag
|
14
|
+
sample(translate('faker.nation.flag')).pack('C*').force_encoding('utf-8')
|
15
|
+
end
|
16
|
+
|
17
|
+
# Fetch random language
|
18
|
+
def language
|
19
|
+
fetch('nation.language')
|
20
|
+
end
|
21
|
+
|
22
|
+
# Fetch random capital city
|
23
|
+
def capital_city
|
24
|
+
fetch('nation.capital_city')
|
25
|
+
end
|
26
|
+
|
27
|
+
# Fetch random natinal sport
|
28
|
+
def national_sport
|
29
|
+
fetch('team.sport')
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
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,150 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Number < Base
|
5
|
+
class << self
|
6
|
+
def number(legacy_digits = NOT_GIVEN, digits: 10)
|
7
|
+
warn_for_deprecated_arguments do |keywords|
|
8
|
+
keywords << :digits if legacy_digits != NOT_GIVEN
|
9
|
+
end
|
10
|
+
|
11
|
+
return if digits < 1
|
12
|
+
return rand(0..9).round if digits == 1
|
13
|
+
|
14
|
+
# Ensure the first digit is not zero
|
15
|
+
([non_zero_digit] + generate(digits - 1)).join.to_i
|
16
|
+
end
|
17
|
+
|
18
|
+
def leading_zero_number(legacy_digits = NOT_GIVEN, digits: 10)
|
19
|
+
warn_for_deprecated_arguments do |keywords|
|
20
|
+
keywords << :digits if legacy_digits != NOT_GIVEN
|
21
|
+
end
|
22
|
+
|
23
|
+
'0' + (2..digits).collect { digit }.join
|
24
|
+
end
|
25
|
+
|
26
|
+
def decimal_part(legacy_digits = NOT_GIVEN, digits: 10)
|
27
|
+
warn_for_deprecated_arguments do |keywords|
|
28
|
+
keywords << :digits if legacy_digits != NOT_GIVEN
|
29
|
+
end
|
30
|
+
|
31
|
+
num = ''
|
32
|
+
if digits > 1
|
33
|
+
num = non_zero_digit
|
34
|
+
digits -= 1
|
35
|
+
end
|
36
|
+
leading_zero_number(digits: digits) + num.to_s
|
37
|
+
end
|
38
|
+
|
39
|
+
def decimal(legacy_l_digits = NOT_GIVEN, legacy_r_digits = NOT_GIVEN, l_digits: 5, r_digits: 2)
|
40
|
+
warn_for_deprecated_arguments do |keywords|
|
41
|
+
keywords << :l_digits if legacy_l_digits != NOT_GIVEN
|
42
|
+
keywords << :r_digits if legacy_r_digits != NOT_GIVEN
|
43
|
+
end
|
44
|
+
|
45
|
+
l_d = number(digits: l_digits)
|
46
|
+
r_d = if r_digits == 1
|
47
|
+
generate(r_digits)
|
48
|
+
else
|
49
|
+
# Ensure the last digit is not zero
|
50
|
+
# so it does not get truncated on converting to float
|
51
|
+
generate(r_digits - 1).join + non_zero_digit.to_s
|
52
|
+
end
|
53
|
+
"#{l_d}.#{r_d}".to_f
|
54
|
+
end
|
55
|
+
|
56
|
+
def non_zero_digit
|
57
|
+
rand(1..9)
|
58
|
+
end
|
59
|
+
|
60
|
+
def digit
|
61
|
+
rand(10)
|
62
|
+
end
|
63
|
+
|
64
|
+
def hexadecimal(legacy_digits = NOT_GIVEN, digits: 6)
|
65
|
+
warn_for_deprecated_arguments do |keywords|
|
66
|
+
keywords << :digits if legacy_digits != NOT_GIVEN
|
67
|
+
end
|
68
|
+
|
69
|
+
hex = ''
|
70
|
+
digits.times { hex += rand(15).to_s(16) }
|
71
|
+
hex
|
72
|
+
end
|
73
|
+
|
74
|
+
def normal(legacy_mean = NOT_GIVEN, legacy_standard_deviation = NOT_GIVEN, mean: 1, standard_deviation: 1)
|
75
|
+
warn_for_deprecated_arguments do |keywords|
|
76
|
+
keywords << :mean if legacy_mean != NOT_GIVEN
|
77
|
+
keywords << :standard_deviation if legacy_standard_deviation != NOT_GIVEN
|
78
|
+
end
|
79
|
+
|
80
|
+
theta = 2 * Math::PI * rand
|
81
|
+
rho = Math.sqrt(-2 * Math.log(1 - rand))
|
82
|
+
scale = standard_deviation * rho
|
83
|
+
mean + scale * Math.cos(theta)
|
84
|
+
end
|
85
|
+
|
86
|
+
def between(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: 1.00, to: 5000.00)
|
87
|
+
warn_for_deprecated_arguments do |keywords|
|
88
|
+
keywords << :from if legacy_from != NOT_GIVEN
|
89
|
+
keywords << :to if legacy_to != NOT_GIVEN
|
90
|
+
end
|
91
|
+
|
92
|
+
Faker::Base.rand_in_range(from, to)
|
93
|
+
end
|
94
|
+
|
95
|
+
def within(legacy_range = NOT_GIVEN, range: 1.00..5000.00)
|
96
|
+
warn_for_deprecated_arguments do |keywords|
|
97
|
+
keywords << :range if legacy_range != NOT_GIVEN
|
98
|
+
end
|
99
|
+
|
100
|
+
between(from: range.min, to: range.max)
|
101
|
+
end
|
102
|
+
|
103
|
+
def positive(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: 1.00, to: 5000.00)
|
104
|
+
warn_for_deprecated_arguments do |keywords|
|
105
|
+
keywords << :from if legacy_from != NOT_GIVEN
|
106
|
+
keywords << :to if legacy_to != NOT_GIVEN
|
107
|
+
end
|
108
|
+
|
109
|
+
random_number = between(from: from, to: to)
|
110
|
+
|
111
|
+
greater_than_zero(random_number)
|
112
|
+
end
|
113
|
+
|
114
|
+
def negative(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: -5000.00, to: -1.00)
|
115
|
+
warn_for_deprecated_arguments do |keywords|
|
116
|
+
keywords << :from if legacy_from != NOT_GIVEN
|
117
|
+
keywords << :to if legacy_to != NOT_GIVEN
|
118
|
+
end
|
119
|
+
|
120
|
+
random_number = between(from: from, to: to)
|
121
|
+
|
122
|
+
less_than_zero(random_number)
|
123
|
+
end
|
124
|
+
|
125
|
+
private
|
126
|
+
|
127
|
+
def generate(count)
|
128
|
+
return [] if count.zero?
|
129
|
+
|
130
|
+
Array.new(count) { digit }
|
131
|
+
end
|
132
|
+
|
133
|
+
def greater_than_zero(number)
|
134
|
+
should_be(number, :>)
|
135
|
+
end
|
136
|
+
|
137
|
+
def less_than_zero(number)
|
138
|
+
should_be(number, :<)
|
139
|
+
end
|
140
|
+
|
141
|
+
def should_be(number, method_to_compare)
|
142
|
+
if number.send(method_to_compare, 0)
|
143
|
+
number
|
144
|
+
else
|
145
|
+
number * -1
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|