faker 2.1.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 +1192 -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 +253 -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 +58 -0
- data/lib/faker/books/lovecraft.rb +73 -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 +103 -0
- data/lib/faker/default/alphanumeric.rb +24 -0
- data/lib/faker/default/ancient.rb +23 -0
- data/lib/faker/default/app.rb +23 -0
- data/lib/faker/default/appliance.rb +15 -0
- data/lib/faker/default/artist.rb +11 -0
- data/lib/faker/default/avatar.rb +18 -0
- data/lib/faker/default/bank.rb +100 -0
- data/lib/faker/default/beer.rb +41 -0
- data/lib/faker/default/boolean.rb +11 -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 +44 -0
- data/lib/faker/default/chuck_norris.rb +14 -0
- data/lib/faker/default/code.rb +188 -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 +66 -0
- data/lib/faker/default/company.rb +256 -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 +37 -0
- data/lib/faker/default/currency.rb +19 -0
- data/lib/faker/default/date.rb +69 -0
- data/lib/faker/default/dc_comics.rb +25 -0
- data/lib/faker/default/demographic.rb +37 -0
- data/lib/faker/default/dessert.rb +21 -0
- data/lib/faker/default/device.rb +31 -0
- data/lib/faker/default/driving_licence.rb +59 -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 +32 -0
- data/lib/faker/default/fillmurray.rb +15 -0
- data/lib/faker/default/finance.rb +40 -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 +58 -0
- data/lib/faker/default/house.rb +15 -0
- data/lib/faker/default/id_number.rb +119 -0
- data/lib/faker/default/industry_segments.rb +25 -0
- data/lib/faker/default/internet.rb +207 -0
- data/lib/faker/default/invoice.rb +96 -0
- data/lib/faker/default/job.rb +25 -0
- data/lib/faker/default/json.rb +70 -0
- data/lib/faker/default/kpop.rb +31 -0
- data/lib/faker/default/lorem.rb +80 -0
- data/lib/faker/default/lorem_flickr.rb +45 -0
- data/lib/faker/default/lorem_pixel.rb +38 -0
- data/lib/faker/default/markdown.rb +79 -0
- data/lib/faker/default/marketing.rb +13 -0
- data/lib/faker/default/measurement.rb +84 -0
- data/lib/faker/default/military.rb +27 -0
- data/lib/faker/default/name.rb +54 -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 +34 -0
- data/lib/faker/default/number.rb +105 -0
- data/lib/faker/default/omniauth.rb +330 -0
- data/lib/faker/default/phone_number.rb +50 -0
- data/lib/faker/default/placeholdit.rb +31 -0
- data/lib/faker/default/programming_language.rb +15 -0
- data/lib/faker/default/relationship.rb +42 -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 +20 -0
- data/lib/faker/default/south_africa.rb +51 -0
- data/lib/faker/default/space.rb +64 -0
- data/lib/faker/default/string.rb +45 -0
- data/lib/faker/default/stripe.rb +65 -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 +69 -0
- data/lib/faker/default/twitter.rb +174 -0
- data/lib/faker/default/types.rb +79 -0
- data/lib/faker/default/university.rb +30 -0
- data/lib/faker/default/vehicle.rb +149 -0
- data/lib/faker/default/verb.rb +27 -0
- data/lib/faker/default/world_cup.rb +27 -0
- data/lib/faker/games/dota.rb +29 -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 +105 -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 +60 -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,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class LoremFlickr < Base
|
5
|
+
class << self
|
6
|
+
SUPPORTED_COLORIZATIONS = %w[red green blue].freeze
|
7
|
+
|
8
|
+
def image(size: '300x300', search_terms: [], match_all: false)
|
9
|
+
build_url(size, nil, search_terms, match_all)
|
10
|
+
end
|
11
|
+
|
12
|
+
def grayscale_image(size: '300x300', search_terms: ['all'], match_all: false)
|
13
|
+
raise ArgumentError, 'Search terms must be specified for grayscale images' unless search_terms.any?
|
14
|
+
|
15
|
+
build_url(size, 'g', search_terms, match_all)
|
16
|
+
end
|
17
|
+
|
18
|
+
def pixelated_image(size: '300x300', search_terms: ['all'], match_all: false)
|
19
|
+
raise ArgumentError, 'Search terms must be specified for pixelated images' unless search_terms.any?
|
20
|
+
|
21
|
+
build_url(size, 'p', search_terms, match_all)
|
22
|
+
end
|
23
|
+
|
24
|
+
def colorized_image(size: '300x300', color: 'red', search_terms: ['all'], match_all: false)
|
25
|
+
raise ArgumentError, 'Search terms must be specified for colorized images' unless search_terms.any?
|
26
|
+
raise ArgumentError, "Supported colorizations are #{SUPPORTED_COLORIZATIONS.join(', ')}" unless SUPPORTED_COLORIZATIONS.include?(color)
|
27
|
+
|
28
|
+
build_url(size, color, search_terms, match_all)
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def build_url(size, format, search_terms, match_all)
|
34
|
+
raise ArgumentError, 'Size should be specified in format 300x300' unless size =~ /^[0-9]+x[0-9]+$/
|
35
|
+
|
36
|
+
url_parts = ['http://loremflickr.com']
|
37
|
+
url_parts << format
|
38
|
+
url_parts += size.split('x')
|
39
|
+
url_parts << search_terms.compact.join(',') if search_terms.any?
|
40
|
+
url_parts << 'all' if match_all
|
41
|
+
url_parts.compact.join('/')
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,38 @@
|
|
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(size: '300x300', is_gray: false, category: nil, number: nil, text: nil, secure: true)
|
22
|
+
raise ArgumentError, 'Size should be specified in format 300x300' unless size =~ /^[0-9]+x[0-9]+$/
|
23
|
+
raise ArgumentError, "Supported categories are #{SUPPORTED_CATEGORIES.join(', ')}" unless category.nil? || SUPPORTED_CATEGORIES.include?(category)
|
24
|
+
raise ArgumentError, 'Category required when number is passed' if !number.nil? && category.nil?
|
25
|
+
raise ArgumentError, 'Number must be between 1 and 10' unless number.nil? || (1..10).cover?(number)
|
26
|
+
raise ArgumentError, 'Category and number must be passed when text is passed' if !text.nil? && number.nil? && category.nil?
|
27
|
+
|
28
|
+
url_parts = secure ? ['https:/'] : ['http:/']
|
29
|
+
url_parts << ['lorempixel.com']
|
30
|
+
url_parts << 'g' if is_gray
|
31
|
+
url_parts += size.split('x')
|
32
|
+
url_parts += [category, number, text].compact
|
33
|
+
url_parts.join('/')
|
34
|
+
end
|
35
|
+
# rubocop:enable Metrics/ParameterLists
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,79 @@
|
|
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(sentences: 3, repeat: 1)
|
63
|
+
text_block = []
|
64
|
+
text_block << headers
|
65
|
+
repeat.times do
|
66
|
+
text_block << Faker::Lorem.paragraph(sentence_count: sentences)
|
67
|
+
text_block << random
|
68
|
+
end
|
69
|
+
text_block.join("\n")
|
70
|
+
end
|
71
|
+
|
72
|
+
private
|
73
|
+
|
74
|
+
def available_methods
|
75
|
+
Markdown.public_methods(false) - Base.methods
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,84 @@
|
|
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(amount: rand(10))
|
10
|
+
define_measurement_locale(amount, 'height')
|
11
|
+
end
|
12
|
+
|
13
|
+
def length(amount: rand(10))
|
14
|
+
define_measurement_locale(amount, 'length')
|
15
|
+
end
|
16
|
+
|
17
|
+
def volume(amount: rand(10))
|
18
|
+
define_measurement_locale(amount, 'volume')
|
19
|
+
end
|
20
|
+
|
21
|
+
def weight(amount: rand(10))
|
22
|
+
define_measurement_locale(amount, 'weight')
|
23
|
+
end
|
24
|
+
|
25
|
+
def metric_height(amount: rand(10))
|
26
|
+
define_measurement_locale(amount, 'metric_height')
|
27
|
+
end
|
28
|
+
|
29
|
+
def metric_length(amount: rand(10))
|
30
|
+
define_measurement_locale(amount, 'metric_length')
|
31
|
+
end
|
32
|
+
|
33
|
+
def metric_volume(amount: rand(10))
|
34
|
+
define_measurement_locale(amount, 'metric_volume')
|
35
|
+
end
|
36
|
+
|
37
|
+
def metric_weight(amount: rand(10))
|
38
|
+
define_measurement_locale(amount, 'metric_weight')
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def check_for_plural(text, number)
|
44
|
+
if number && number != 1
|
45
|
+
make_plural(text)
|
46
|
+
else
|
47
|
+
text
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def define_measurement_locale(amount, locale)
|
52
|
+
ensure_valid_amount(amount)
|
53
|
+
if amount == ALL
|
54
|
+
make_plural(fetch("measurement.#{locale}"))
|
55
|
+
elsif amount == NONE
|
56
|
+
fetch("measurement.#{locale}")
|
57
|
+
else
|
58
|
+
locale = check_for_plural(fetch("measurement.#{locale}"), amount)
|
59
|
+
|
60
|
+
"#{amount} #{locale}"
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def ensure_valid_amount(amount)
|
65
|
+
raise ArgumentError, 'invalid amount' unless amount == NONE || amount == ALL || amount.is_a?(Integer) || amount.is_a?(Float)
|
66
|
+
end
|
67
|
+
|
68
|
+
def make_plural(text)
|
69
|
+
case text
|
70
|
+
when 'foot'
|
71
|
+
'feet'
|
72
|
+
when 'inch'
|
73
|
+
'inches'
|
74
|
+
when 'fluid ounce'
|
75
|
+
'fluid ounces'
|
76
|
+
when 'metric ton'
|
77
|
+
'metric tons'
|
78
|
+
else
|
79
|
+
"#{text}s"
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
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,54 @@
|
|
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(number: 3)
|
50
|
+
(0...number).map { rand(65..90).chr }.join
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
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,34 @@
|
|
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(number: 0)
|
19
|
+
sum = 0
|
20
|
+
number.to_s.chars.each_with_index do |digit, idx|
|
21
|
+
position = idx + 1
|
22
|
+
sum += (digit.to_i * (11 - position))
|
23
|
+
end
|
24
|
+
result = 11 - (sum % 11)
|
25
|
+
|
26
|
+
# A value of 11 is considered the same as 0
|
27
|
+
# See https://en.wikipedia.org/wiki/NHS_number
|
28
|
+
return 0 if result == 11
|
29
|
+
|
30
|
+
result
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,105 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Number < Base
|
5
|
+
class << self
|
6
|
+
def number(digits: 10)
|
7
|
+
return if digits < 1
|
8
|
+
return 0 if digits == 1
|
9
|
+
|
10
|
+
# Ensure the first digit is not zero
|
11
|
+
([non_zero_digit] + generate(digits - 1)).join.to_i
|
12
|
+
end
|
13
|
+
|
14
|
+
def leading_zero_number(digits: 10)
|
15
|
+
'0' + (2..digits).collect { digit }.join
|
16
|
+
end
|
17
|
+
|
18
|
+
def decimal_part(digits: 10)
|
19
|
+
num = ''
|
20
|
+
if digits > 1
|
21
|
+
num = non_zero_digit
|
22
|
+
digits -= 1
|
23
|
+
end
|
24
|
+
leading_zero_number(digits: digits) + num.to_s
|
25
|
+
end
|
26
|
+
|
27
|
+
def decimal(l_digits: 5, r_digits: 2)
|
28
|
+
l_d = number(digits: l_digits)
|
29
|
+
r_d = if r_digits == 1
|
30
|
+
generate(r_digits)
|
31
|
+
else
|
32
|
+
# Ensure the last digit is not zero
|
33
|
+
# so it does not get truncated on converting to float
|
34
|
+
generate(r_digits - 1).join + non_zero_digit.to_s
|
35
|
+
end
|
36
|
+
"#{l_d}.#{r_d}".to_f
|
37
|
+
end
|
38
|
+
|
39
|
+
def non_zero_digit
|
40
|
+
rand(1..9)
|
41
|
+
end
|
42
|
+
|
43
|
+
def digit
|
44
|
+
rand(10)
|
45
|
+
end
|
46
|
+
|
47
|
+
def hexadecimal(digits: 6)
|
48
|
+
hex = ''
|
49
|
+
digits.times { hex += rand(15).to_s(16) }
|
50
|
+
hex
|
51
|
+
end
|
52
|
+
|
53
|
+
def normal(mean: 1, standard_deviation: 1)
|
54
|
+
theta = 2 * Math::PI * rand
|
55
|
+
rho = Math.sqrt(-2 * Math.log(1 - rand))
|
56
|
+
scale = standard_deviation * rho
|
57
|
+
mean + scale * Math.cos(theta)
|
58
|
+
end
|
59
|
+
|
60
|
+
def between(from: 1.00, to: 5000.00)
|
61
|
+
Faker::Base.rand_in_range(from, to)
|
62
|
+
end
|
63
|
+
|
64
|
+
def within(range: 1.00..5000.00)
|
65
|
+
between(from: range.min, to: range.max)
|
66
|
+
end
|
67
|
+
|
68
|
+
def positive(from: 1.00, to: 5000.00)
|
69
|
+
random_number = between(from: from, to: to)
|
70
|
+
|
71
|
+
greater_than_zero(random_number)
|
72
|
+
end
|
73
|
+
|
74
|
+
def negative(from: -5000.00, to: -1.00)
|
75
|
+
random_number = between(from: from, to: to)
|
76
|
+
|
77
|
+
less_than_zero(random_number)
|
78
|
+
end
|
79
|
+
|
80
|
+
private
|
81
|
+
|
82
|
+
def generate(count)
|
83
|
+
return [] if count.zero?
|
84
|
+
|
85
|
+
Array.new(count) { digit }
|
86
|
+
end
|
87
|
+
|
88
|
+
def greater_than_zero(number)
|
89
|
+
should_be(number, :>)
|
90
|
+
end
|
91
|
+
|
92
|
+
def less_than_zero(number)
|
93
|
+
should_be(number, :<)
|
94
|
+
end
|
95
|
+
|
96
|
+
def should_be(number, method_to_compare)
|
97
|
+
if number.send(method_to_compare, 0)
|
98
|
+
number
|
99
|
+
else
|
100
|
+
number * -1
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|