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,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class Job < Base
|
|
5
|
+
flexible :job
|
|
6
|
+
|
|
7
|
+
class << self
|
|
8
|
+
def title
|
|
9
|
+
parse('job.title')
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def position
|
|
13
|
+
fetch('job.position')
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def field
|
|
17
|
+
fetch('job.field')
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def key_skill
|
|
21
|
+
fetch('job.key_skills')
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
module Faker
|
|
2
|
+
class Json < Base
|
|
3
|
+
require 'json'
|
|
4
|
+
|
|
5
|
+
class << self
|
|
6
|
+
def shallow_json(legacy_width = NOT_GIVEN, legacy_options = NOT_GIVEN, width: 3, options: { key: 'Name.first_name', value: 'Name.first_name' })
|
|
7
|
+
warn_for_deprecated_arguments do |keywords|
|
|
8
|
+
keywords << :width if legacy_width != NOT_GIVEN
|
|
9
|
+
keywords << :options if legacy_options != NOT_GIVEN
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
options[:key] = 'Faker::' + options[:key]
|
|
13
|
+
options[:value] = 'Faker::' + options[:value]
|
|
14
|
+
|
|
15
|
+
hash = build_shallow_hash(width, options)
|
|
16
|
+
JSON.generate(hash)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# rubocop:disable Metrics/ParameterLists
|
|
20
|
+
def add_depth_to_json(legacy_json = NOT_GIVEN, legacy_width = NOT_GIVEN, legacy_options = NOT_GIVEN, json: shallow_json, width: 3, options: { key: 'Name.first_name', value: 'Name.first_name' })
|
|
21
|
+
# rubocop:enable Metrics/ParameterLists
|
|
22
|
+
warn_for_deprecated_arguments do |keywords|
|
|
23
|
+
keywords << :json if legacy_json != NOT_GIVEN
|
|
24
|
+
end
|
|
25
|
+
warn_for_deprecated_arguments do |keywords|
|
|
26
|
+
keywords << :width if legacy_width != NOT_GIVEN
|
|
27
|
+
end
|
|
28
|
+
warn_for_deprecated_arguments do |keywords|
|
|
29
|
+
keywords << :options if legacy_options != NOT_GIVEN
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
options[:key] = 'Faker::' + options[:key]
|
|
33
|
+
options[:value] = 'Faker::' + options[:value]
|
|
34
|
+
|
|
35
|
+
hash = JSON.parse(json)
|
|
36
|
+
hash.each do |key, _|
|
|
37
|
+
add_hash_to_bottom(hash, [key], width, options)
|
|
38
|
+
end
|
|
39
|
+
JSON.generate(hash)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
private
|
|
43
|
+
|
|
44
|
+
def build_shallow_hash(width, options)
|
|
45
|
+
key = options[:key]
|
|
46
|
+
value = options[:value]
|
|
47
|
+
|
|
48
|
+
hash = {}
|
|
49
|
+
width.times do
|
|
50
|
+
hash[eval(key)] = eval(value)
|
|
51
|
+
end
|
|
52
|
+
hash
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def add_hash_to_bottom(hash, key_array, width, options)
|
|
56
|
+
key_string = build_keys_from_array(key_array)
|
|
57
|
+
if eval("hash#{key_string}").is_a?(::Hash)
|
|
58
|
+
eval("hash#{key_string}").each do |key, _|
|
|
59
|
+
key_array << key
|
|
60
|
+
add_hash_to_bottom(hash, key_array, width, options)
|
|
61
|
+
end
|
|
62
|
+
else
|
|
63
|
+
add_hash(key_array, hash, width, options)
|
|
64
|
+
key_array.pop
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def add_hash(key_array, hash, width, options)
|
|
69
|
+
string_to_eval = 'hash'
|
|
70
|
+
key_array.length.times do |index|
|
|
71
|
+
string_to_eval << "['#{key_array[index]}']"
|
|
72
|
+
end
|
|
73
|
+
string_to_eval << " = #{build_shallow_hash(width, options)}"
|
|
74
|
+
eval(string_to_eval)
|
|
75
|
+
hash
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def build_keys_from_array(key_array)
|
|
79
|
+
key_string = ''
|
|
80
|
+
key_array.each do |value|
|
|
81
|
+
key_string << "['#{value}']"
|
|
82
|
+
end
|
|
83
|
+
key_string
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class Kpop < Base
|
|
5
|
+
class << self
|
|
6
|
+
def i_groups
|
|
7
|
+
fetch('kpop.i_groups')
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def ii_groups
|
|
11
|
+
fetch('kpop.ii_groups')
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def iii_groups
|
|
15
|
+
fetch('kpop.iii_groups')
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def girl_groups
|
|
19
|
+
fetch('kpop.girl_groups')
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def boy_bands
|
|
23
|
+
fetch('kpop.boy_bands')
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def solo
|
|
27
|
+
fetch('kpop.solo')
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
# Based on Perl's Text::Lorem
|
|
5
|
+
class Lorem < Base
|
|
6
|
+
class << self
|
|
7
|
+
def word
|
|
8
|
+
sample(translate('faker.lorem.words'))
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def words(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 3, supplemental: false)
|
|
12
|
+
warn_for_deprecated_arguments do |keywords|
|
|
13
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
|
14
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
resolved_num = resolve(number)
|
|
18
|
+
word_list = (
|
|
19
|
+
translate('faker.lorem.words') +
|
|
20
|
+
(supplemental ? translate('faker.lorem.supplemental') : [])
|
|
21
|
+
)
|
|
22
|
+
word_list *= ((resolved_num / word_list.length) + 1)
|
|
23
|
+
shuffle(word_list)[0, resolved_num]
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def character
|
|
27
|
+
sample(Types::CHARACTERS)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
##
|
|
31
|
+
# Produces a random string of alphanumeric characters
|
|
32
|
+
#
|
|
33
|
+
# @param number [Integer] The number of characters to generate
|
|
34
|
+
# @param min_alpha [Integer] The minimum number of alphabetic to add to the string
|
|
35
|
+
# @param min_numeric [Integer] The minimum number of numbers to add to the string
|
|
36
|
+
#
|
|
37
|
+
# @return [String]
|
|
38
|
+
#
|
|
39
|
+
# @example
|
|
40
|
+
# Faker::Lorem.characters #=> "uw1ep04lhs0c4d931n1jmrspprf5w..."
|
|
41
|
+
# Faker::Lorem.characters(number: 10) #=> "ang9cbhoa8"
|
|
42
|
+
# Faker::Lorem.characters(number: 10, min_alpha: 4) #=> "ang9cbhoa8"
|
|
43
|
+
# Faker::Lorem.characters(number: 10, min_alpha: 4, min_numeric: 1) #=> "ang9cbhoa8"
|
|
44
|
+
#
|
|
45
|
+
# @faker.version 2.1.3
|
|
46
|
+
def characters(legacy_number = NOT_GIVEN, number: 255, min_alpha: 0, min_numeric: 0)
|
|
47
|
+
warn_for_deprecated_arguments do |keywords|
|
|
48
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
Alphanumeric.alphanumeric(number: number, min_alpha: min_alpha, min_numeric: min_numeric)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def multibyte
|
|
55
|
+
sample(translate('faker.lorem.multibyte')).pack('C*').force_encoding('utf-8')
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# rubocop:disable Metrics/ParameterLists
|
|
59
|
+
def sentence(legacy_word_count = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, legacy_random_words_to_add = NOT_GIVEN, word_count: 4, supplemental: false, random_words_to_add: 0)
|
|
60
|
+
# rubocop:enable Metrics/ParameterLists
|
|
61
|
+
warn_for_deprecated_arguments do |keywords|
|
|
62
|
+
keywords << :word_count if legacy_word_count != NOT_GIVEN
|
|
63
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
|
64
|
+
keywords << :random_words_to_add if legacy_random_words_to_add != NOT_GIVEN
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
words(number: word_count + rand(random_words_to_add.to_i), supplemental: supplemental).join(' ').capitalize + locale_period
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def sentences(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 3, supplemental: false)
|
|
71
|
+
warn_for_deprecated_arguments do |keywords|
|
|
72
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
|
73
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
1.upto(resolve(number)).collect { sentence(word_count: 3, supplemental: supplemental) }
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
# rubocop:disable Metrics/ParameterLists
|
|
80
|
+
def paragraph(legacy_sentence_count = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, legacy_random_sentences_to_add = NOT_GIVEN, sentence_count: 3, supplemental: false, random_sentences_to_add: 0)
|
|
81
|
+
# rubocop:enable Metrics/ParameterLists
|
|
82
|
+
warn_for_deprecated_arguments do |keywords|
|
|
83
|
+
keywords << :sentence_count if legacy_sentence_count != NOT_GIVEN
|
|
84
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
|
85
|
+
keywords << :random_sentences_to_add if legacy_random_sentences_to_add != NOT_GIVEN
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
sentences(number: resolve(sentence_count) + rand(random_sentences_to_add.to_i), supplemental: supplemental).join(locale_space)
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def paragraphs(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 3, supplemental: false)
|
|
92
|
+
warn_for_deprecated_arguments do |keywords|
|
|
93
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
|
94
|
+
end
|
|
95
|
+
warn_for_deprecated_arguments do |keywords|
|
|
96
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
1.upto(resolve(number)).collect { paragraph(sentence_count: 3, supplemental: supplemental) }
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def paragraph_by_chars(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 256, supplemental: false)
|
|
103
|
+
warn_for_deprecated_arguments do |keywords|
|
|
104
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
|
105
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
paragraph = paragraph(sentence_count: 3, supplemental: supplemental)
|
|
109
|
+
|
|
110
|
+
paragraph += ' ' + paragraph(sentence_count: 3, supplemental: supplemental) while paragraph.length < number
|
|
111
|
+
|
|
112
|
+
paragraph[0...number - 1] + '.'
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
# rubocop:disable Metrics/ParameterLists
|
|
116
|
+
def question(legacy_word_count = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, legacy_random_words_to_add = NOT_GIVEN, word_count: 4, supplemental: false, random_words_to_add: 0)
|
|
117
|
+
# rubocop:enable Metrics/ParameterLists
|
|
118
|
+
warn_for_deprecated_arguments do |keywords|
|
|
119
|
+
keywords << :word_count if legacy_word_count != NOT_GIVEN
|
|
120
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
|
121
|
+
keywords << :random_words_to_add if legacy_random_words_to_add != NOT_GIVEN
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
words(number: word_count + rand(random_words_to_add), supplemental: supplemental).join(' ').capitalize + locale_question_mark
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
def questions(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 3, supplemental: false)
|
|
128
|
+
warn_for_deprecated_arguments do |keywords|
|
|
129
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
|
130
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
1.upto(resolve(number)).collect { question(word_count: 3, supplemental: supplemental) }
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
private
|
|
137
|
+
|
|
138
|
+
def locale_period
|
|
139
|
+
translate('faker.lorem.punctuation.period') || '.'
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
def locale_space
|
|
143
|
+
translate('faker.lorem.punctuation.space') || ' '
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
def locale_question_mark
|
|
147
|
+
translate('faker.lorem.punctuation.question_mark') || '?'
|
|
148
|
+
end
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
end
|
|
@@ -0,0 +1,78 @@
|
|
|
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
|
+
# rubocop:disable Metrics/ParameterLists
|
|
9
|
+
def image(legacy_size = NOT_GIVEN, legacy_search_terms = NOT_GIVEN, legacy_match_all = NOT_GIVEN, size: '300x300', search_terms: [], match_all: false)
|
|
10
|
+
# rubocop:enable Metrics/ParameterLists
|
|
11
|
+
warn_for_deprecated_arguments do |keywords|
|
|
12
|
+
keywords << :size if legacy_size != NOT_GIVEN
|
|
13
|
+
keywords << :search_terms if legacy_search_terms != NOT_GIVEN
|
|
14
|
+
keywords << :match_all if legacy_match_all != NOT_GIVEN
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
build_url(size, nil, search_terms, match_all)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# rubocop:disable Metrics/ParameterLists
|
|
21
|
+
def grayscale_image(legacy_size = NOT_GIVEN, legacy_search_terms = NOT_GIVEN, legacy_match_all = NOT_GIVEN, size: '300x300', search_terms: ['all'], match_all: false)
|
|
22
|
+
# rubocop:enable Metrics/ParameterLists
|
|
23
|
+
warn_for_deprecated_arguments do |keywords|
|
|
24
|
+
keywords << :size if legacy_size != NOT_GIVEN
|
|
25
|
+
keywords << :search_terms if legacy_search_terms != NOT_GIVEN
|
|
26
|
+
keywords << :match_all if legacy_match_all != NOT_GIVEN
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
raise ArgumentError, 'Search terms must be specified for grayscale images' unless search_terms.any?
|
|
30
|
+
|
|
31
|
+
build_url(size, 'g', search_terms, match_all)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# rubocop:disable Metrics/ParameterLists
|
|
35
|
+
def pixelated_image(legacy_size = NOT_GIVEN, legacy_search_terms = NOT_GIVEN, legacy_match_all = NOT_GIVEN, size: '300x300', search_terms: ['all'], match_all: false)
|
|
36
|
+
# rubocop:enable Metrics/ParameterLists
|
|
37
|
+
warn_for_deprecated_arguments do |keywords|
|
|
38
|
+
keywords << :size if legacy_size != NOT_GIVEN
|
|
39
|
+
keywords << :search_terms if legacy_search_terms != NOT_GIVEN
|
|
40
|
+
keywords << :match_all if legacy_match_all != NOT_GIVEN
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
raise ArgumentError, 'Search terms must be specified for pixelated images' unless search_terms.any?
|
|
44
|
+
|
|
45
|
+
build_url(size, 'p', search_terms, match_all)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# rubocop:disable Metrics/ParameterLists
|
|
49
|
+
def colorized_image(legacy_size = NOT_GIVEN, legacy_color = NOT_GIVEN, legacy_search_terms = NOT_GIVEN, legacy_match_all = NOT_GIVEN, size: '300x300', color: 'red', search_terms: ['all'], match_all: false)
|
|
50
|
+
# rubocop:enable Metrics/ParameterLists
|
|
51
|
+
warn_for_deprecated_arguments do |keywords|
|
|
52
|
+
keywords << :size if legacy_size != NOT_GIVEN
|
|
53
|
+
keywords << :color if legacy_color != NOT_GIVEN
|
|
54
|
+
keywords << :search_terms if legacy_search_terms != NOT_GIVEN
|
|
55
|
+
keywords << :match_all if legacy_match_all != NOT_GIVEN
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
raise ArgumentError, 'Search terms must be specified for colorized images' unless search_terms.any?
|
|
59
|
+
raise ArgumentError, "Supported colorizations are #{SUPPORTED_COLORIZATIONS.join(', ')}" unless SUPPORTED_COLORIZATIONS.include?(color)
|
|
60
|
+
|
|
61
|
+
build_url(size, color, search_terms, match_all)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
private
|
|
65
|
+
|
|
66
|
+
def build_url(size, format, search_terms, match_all)
|
|
67
|
+
raise ArgumentError, 'Size should be specified in format 300x300' unless size =~ /^[0-9]+x[0-9]+$/
|
|
68
|
+
|
|
69
|
+
url_parts = ['https://loremflickr.com']
|
|
70
|
+
url_parts << format
|
|
71
|
+
url_parts += size.split('x')
|
|
72
|
+
url_parts << search_terms.compact.join(',') if search_terms.any?
|
|
73
|
+
url_parts << 'all' if match_all
|
|
74
|
+
url_parts.compact.join('/')
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
@@ -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
|