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,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Ancient < Base
|
5
|
+
class << self
|
6
|
+
def god
|
7
|
+
fetch('ancient.god')
|
8
|
+
end
|
9
|
+
|
10
|
+
def primordial
|
11
|
+
fetch('ancient.primordial')
|
12
|
+
end
|
13
|
+
|
14
|
+
def titan
|
15
|
+
fetch('ancient.titan')
|
16
|
+
end
|
17
|
+
|
18
|
+
def hero
|
19
|
+
fetch('ancient.hero')
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class App < Base
|
5
|
+
class << self
|
6
|
+
def name
|
7
|
+
fetch('app.name')
|
8
|
+
end
|
9
|
+
|
10
|
+
def version
|
11
|
+
parse('app.version')
|
12
|
+
end
|
13
|
+
|
14
|
+
def author
|
15
|
+
parse('app.author')
|
16
|
+
end
|
17
|
+
|
18
|
+
# rubocop:disable Metrics/ParameterLists
|
19
|
+
def semantic_version(legacy_major = NOT_GIVEN, legacy_minor = NOT_GIVEN, legacy_patch = NOT_GIVEN, major: 0..9, minor: 0..9, patch: 1..9)
|
20
|
+
# rubocop:enable Metrics/ParameterLists
|
21
|
+
warn_for_deprecated_arguments do |keywords|
|
22
|
+
keywords << :major if legacy_major != NOT_GIVEN
|
23
|
+
keywords << :minor if legacy_minor != NOT_GIVEN
|
24
|
+
keywords << :patch if legacy_patch != NOT_GIVEN
|
25
|
+
end
|
26
|
+
|
27
|
+
[major, minor, patch].map { |chunk| sample(Array(chunk)) }.join('.')
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Avatar < Base
|
5
|
+
class << self
|
6
|
+
SUPPORTED_FORMATS = %w[png jpg bmp].freeze
|
7
|
+
|
8
|
+
# rubocop:disable Metrics/ParameterLists
|
9
|
+
def image(legacy_slug = NOT_GIVEN, legacy_size = NOT_GIVEN, legacy_format = NOT_GIVEN, legacy_set = NOT_GIVEN, legacy_bgset = NOT_GIVEN, slug: nil, size: '300x300', format: 'png', set: 'set1', bgset: nil)
|
10
|
+
# rubocop:enable Metrics/ParameterLists
|
11
|
+
warn_for_deprecated_arguments do |keywords|
|
12
|
+
keywords << :slug if legacy_slug != NOT_GIVEN
|
13
|
+
keywords << :size if legacy_size != NOT_GIVEN
|
14
|
+
keywords << :format if legacy_format != NOT_GIVEN
|
15
|
+
keywords << :set if legacy_set != NOT_GIVEN
|
16
|
+
keywords << :bgset if legacy_bgset != NOT_GIVEN
|
17
|
+
end
|
18
|
+
|
19
|
+
raise ArgumentError, 'Size should be specified in format 300x300' unless size =~ /^[0-9]+x[0-9]+$/
|
20
|
+
raise ArgumentError, "Supported formats are #{SUPPORTED_FORMATS.join(', ')}" unless SUPPORTED_FORMATS.include?(format)
|
21
|
+
|
22
|
+
slug ||= Faker::Lorem.words.join
|
23
|
+
bgset_query = "&bgset=#{bgset}" if bgset
|
24
|
+
"https://robohash.org/#{slug}.#{format}?size=#{size}&set=#{set}#{bgset_query}"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,108 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Bank < Base
|
5
|
+
flexible :bank
|
6
|
+
|
7
|
+
class << self
|
8
|
+
def account_number(legacy_digits = NOT_GIVEN, digits: 10)
|
9
|
+
warn_for_deprecated_arguments do |keywords|
|
10
|
+
keywords << :digits if legacy_digits != NOT_GIVEN
|
11
|
+
end
|
12
|
+
|
13
|
+
output = ''
|
14
|
+
|
15
|
+
output += rand.to_s[2..-1] while output.length < digits
|
16
|
+
|
17
|
+
output[0...digits]
|
18
|
+
end
|
19
|
+
|
20
|
+
def iban(legacy_country_code = NOT_GIVEN, country_code: 'GB')
|
21
|
+
# Each country has it's own format for bank accounts
|
22
|
+
# Many of them use letters in certain parts of the account
|
23
|
+
# Using regex patterns we can create virtually any type of bank account
|
24
|
+
warn_for_deprecated_arguments do |keywords|
|
25
|
+
keywords << :country_code if legacy_country_code != NOT_GIVEN
|
26
|
+
end
|
27
|
+
|
28
|
+
begin
|
29
|
+
pattern = fetch("bank.iban_details.#{country_code.downcase}.bban_pattern")
|
30
|
+
rescue I18n::MissingTranslationData
|
31
|
+
raise ArgumentError, "Could not find iban details for #{country_code}"
|
32
|
+
end
|
33
|
+
|
34
|
+
# Use Faker::Base.regexify for creating a sample from bank account format regex
|
35
|
+
account = Base.regexify(/#{pattern}/)
|
36
|
+
|
37
|
+
# Add country code and checksum to the generated account to form valid IBAN
|
38
|
+
country_code.upcase + iban_checksum(country_code, account) + account
|
39
|
+
end
|
40
|
+
|
41
|
+
def name
|
42
|
+
fetch('bank.name')
|
43
|
+
end
|
44
|
+
|
45
|
+
def routing_number
|
46
|
+
valid_routing_number
|
47
|
+
end
|
48
|
+
|
49
|
+
def routing_number_with_format
|
50
|
+
compile_fraction(valid_routing_number)
|
51
|
+
end
|
52
|
+
|
53
|
+
def swift_bic
|
54
|
+
fetch('bank.swift_bic')
|
55
|
+
end
|
56
|
+
|
57
|
+
private
|
58
|
+
|
59
|
+
def checksum(num_string)
|
60
|
+
num_array = num_string.split('').map(&:to_i)
|
61
|
+
digit = (7 * (num_array[0] + num_array[3] + num_array[6]) + 3 * (num_array[1] + num_array[4] + num_array[7]) + 9 * (num_array[2] + num_array[5])) % 10
|
62
|
+
digit == num_array[8]
|
63
|
+
end
|
64
|
+
|
65
|
+
def compile_routing_number
|
66
|
+
digit_one_two = %w[00 01 02 03 04 05 06 07 08 09 10 11 12]
|
67
|
+
((21..32).to_a + (61..72).to_a + [80]).each { |x| digit_one_two << x.to_s }
|
68
|
+
routing_num = digit_one_two.sample + rand_numstring + rand_numstring + rand_numstring + rand_numstring + rand_numstring + rand_numstring + rand_numstring
|
69
|
+
routing_num
|
70
|
+
end
|
71
|
+
|
72
|
+
# Calculates the mandatory checksum in 3rd and 4th characters in IBAN format
|
73
|
+
# source: https://en.wikipedia.org/wiki/International_Bank_Account_Number#Validating_the_IBAN
|
74
|
+
def iban_checksum(country_code, account)
|
75
|
+
# Converts letters to numbers according the iban rules, A=10..Z=35
|
76
|
+
account_to_number = "#{account}#{country_code}00".upcase.chars.map do |d|
|
77
|
+
d =~ /[A-Z]/ ? (d.ord - 55).to_s : d
|
78
|
+
end.join.to_i
|
79
|
+
|
80
|
+
# This is answer to (iban_to_num + checksum) % 97 == 1
|
81
|
+
checksum = (1 - account_to_number) % 97
|
82
|
+
|
83
|
+
# Use leftpad to make the size always to 2
|
84
|
+
checksum.to_s.rjust(2, '0')
|
85
|
+
end
|
86
|
+
|
87
|
+
def valid_routing_number
|
88
|
+
for _ in 0..50
|
89
|
+
micr = compile_routing_number
|
90
|
+
|
91
|
+
break if checksum(micr)
|
92
|
+
end
|
93
|
+
micr
|
94
|
+
end
|
95
|
+
|
96
|
+
def compile_fraction(routing_num)
|
97
|
+
prefix = (1..50).to_a.map(&:to_s).sample
|
98
|
+
numerator = routing_num.split('')[5..8].join.to_i.to_s
|
99
|
+
denominator = routing_num.split('')[0..4].join.to_i.to_s
|
100
|
+
prefix + '-' + numerator + '/' + denominator
|
101
|
+
end
|
102
|
+
|
103
|
+
def rand_numstring
|
104
|
+
(0..9).to_a.map(&:to_s).sample
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Beer < Base
|
5
|
+
flexible :beer
|
6
|
+
|
7
|
+
class << self
|
8
|
+
def name
|
9
|
+
fetch('beer.name')
|
10
|
+
end
|
11
|
+
|
12
|
+
def style
|
13
|
+
fetch('beer.style')
|
14
|
+
end
|
15
|
+
|
16
|
+
def hop
|
17
|
+
fetch('beer.hop')
|
18
|
+
end
|
19
|
+
|
20
|
+
def yeast
|
21
|
+
fetch('beer.yeast')
|
22
|
+
end
|
23
|
+
|
24
|
+
def malts
|
25
|
+
fetch('beer.malt')
|
26
|
+
end
|
27
|
+
|
28
|
+
def ibu
|
29
|
+
rand(10..100).to_s + ' IBU'
|
30
|
+
end
|
31
|
+
|
32
|
+
def alcohol
|
33
|
+
rand(2.0..10.0).round(1).to_s + '%'
|
34
|
+
end
|
35
|
+
|
36
|
+
def blg
|
37
|
+
rand(5.0..20.0).round(1).to_s + '°Blg'
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Boolean < Base
|
5
|
+
class << self
|
6
|
+
def boolean(legacy_true_ratio = NOT_GIVEN, true_ratio: 0.5)
|
7
|
+
warn_for_deprecated_arguments do |keywords|
|
8
|
+
keywords << :true_ratio if legacy_true_ratio != NOT_GIVEN
|
9
|
+
end
|
10
|
+
|
11
|
+
(rand < true_ratio)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'date'
|
4
|
+
|
5
|
+
module Faker
|
6
|
+
class Business < Base
|
7
|
+
flexible :business
|
8
|
+
|
9
|
+
class << self
|
10
|
+
def credit_card_number
|
11
|
+
fetch('business.credit_card_numbers')
|
12
|
+
end
|
13
|
+
|
14
|
+
def credit_card_expiry_date
|
15
|
+
::Date.today + (365 * rand(1..4))
|
16
|
+
end
|
17
|
+
|
18
|
+
def credit_card_type
|
19
|
+
fetch('business.credit_card_types')
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Cannabis < Base
|
5
|
+
def self.strain
|
6
|
+
fetch('cannabis.strains')
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.cannabinoid_abbreviation
|
10
|
+
fetch('cannabis.cannabinoid_abbreviations')
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.cannabinoid
|
14
|
+
fetch('cannabis.cannabinoids')
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.terpene
|
18
|
+
fetch('cannabis.terpenes')
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.medical_use
|
22
|
+
fetch('cannabis.medical_uses')
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.health_benefit
|
26
|
+
fetch('cannabis.health_benefits')
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.category
|
30
|
+
fetch('cannabis.categories')
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.type
|
34
|
+
fetch('cannabis.types')
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.buzzword
|
38
|
+
fetch('cannabis.buzzwords')
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.brand
|
42
|
+
fetch('cannabis.brands')
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class ChileRut < Base
|
5
|
+
class << self
|
6
|
+
@last_rut = nil
|
7
|
+
|
8
|
+
# Fixed param added for testing a specific RUT and check digit combination.
|
9
|
+
def rut(legacy_min_rut = NOT_GIVEN, legacy_fixed = NOT_GIVEN, min_rut: 1, fixed: false)
|
10
|
+
warn_for_deprecated_arguments do |keywords|
|
11
|
+
keywords << :min_rut if legacy_min_rut != NOT_GIVEN
|
12
|
+
keywords << :fixed if legacy_fixed != NOT_GIVEN
|
13
|
+
end
|
14
|
+
|
15
|
+
@last_rut = fixed ? min_rut : rand_in_range(min_rut, 99_999_999)
|
16
|
+
end
|
17
|
+
|
18
|
+
def dv
|
19
|
+
split_reversed_rut = @last_rut.to_s.reverse.split('')
|
20
|
+
seq = [2, 3, 4, 5, 6, 7]
|
21
|
+
i = 0
|
22
|
+
digit_sum = split_reversed_rut.reduce(0) do |sum, n|
|
23
|
+
partial_result = sum.to_i + (n.to_i * seq[i])
|
24
|
+
i = i == 5 ? 0 : i + 1
|
25
|
+
partial_result
|
26
|
+
end
|
27
|
+
partial_check_digit = 11 - (digit_sum % 11)
|
28
|
+
if partial_check_digit == 11
|
29
|
+
'0'
|
30
|
+
elsif partial_check_digit == 10
|
31
|
+
'k'
|
32
|
+
else
|
33
|
+
partial_check_digit.to_s
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
# Alias for english speaking devs.
|
38
|
+
def check_digit
|
39
|
+
dv
|
40
|
+
end
|
41
|
+
|
42
|
+
def full_rut(legacy_min_rut = NOT_GIVEN, legacy_fixed = NOT_GIVEN, min_rut: 0, fixed: false)
|
43
|
+
warn_for_deprecated_arguments do |keywords|
|
44
|
+
keywords << :min_rut if legacy_min_rut != NOT_GIVEN
|
45
|
+
keywords << :fixed if legacy_fixed != NOT_GIVEN
|
46
|
+
end
|
47
|
+
|
48
|
+
"#{rut(min_rut: min_rut, fixed: fixed)}-#{dv}"
|
49
|
+
end
|
50
|
+
|
51
|
+
attr_reader :last_rut
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class ChuckNorris < Base
|
5
|
+
flexible :name
|
6
|
+
|
7
|
+
class << self
|
8
|
+
# from: https://github.com/jenkinsci/chucknorris-plugin/blob/master/src/main/java/hudson/plugins/chucknorris/FactGenerator.java
|
9
|
+
def fact
|
10
|
+
fetch('chuck_norris.fact')
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,201 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Code < Base
|
5
|
+
flexible :code
|
6
|
+
class << self
|
7
|
+
# Generates a 10 digit NPI (National Provider Identifier
|
8
|
+
# issued to health care providers in the United States)
|
9
|
+
def npi
|
10
|
+
rand(10**10).to_s.rjust(10, '0')
|
11
|
+
end
|
12
|
+
|
13
|
+
# By default generates 10 sign isbn code in format 123456789-X
|
14
|
+
# You can pass 13 to generate new 13 sign code
|
15
|
+
def isbn(legacy_base = NOT_GIVEN, base: 10)
|
16
|
+
warn_for_deprecated_arguments do |keywords|
|
17
|
+
keywords << :base if legacy_base != NOT_GIVEN
|
18
|
+
end
|
19
|
+
|
20
|
+
base == 13 ? generate_base13_isbn : generate_base10_isbn
|
21
|
+
end
|
22
|
+
|
23
|
+
# By default generates 13 sign ean code in format 1234567890123
|
24
|
+
# You can pass 8 to generate ean8 code
|
25
|
+
def ean(legacy_base = NOT_GIVEN, base: 13)
|
26
|
+
warn_for_deprecated_arguments do |keywords|
|
27
|
+
keywords << :base if legacy_base != NOT_GIVEN
|
28
|
+
end
|
29
|
+
|
30
|
+
base == 8 ? generate_base8_ean : generate_base13_ean
|
31
|
+
end
|
32
|
+
|
33
|
+
def rut
|
34
|
+
value = Number.number(digits: 8).to_s
|
35
|
+
vd = rut_verificator_digit(value)
|
36
|
+
value << "-#{vd}"
|
37
|
+
end
|
38
|
+
|
39
|
+
# By default generates a Singaporean NRIC ID for someone
|
40
|
+
# who is born between the age of 18 and 65.
|
41
|
+
def nric(legacy_min_age = NOT_GIVEN, legacy_max_age = NOT_GIVEN, min_age: 18, max_age: 65)
|
42
|
+
warn_for_deprecated_arguments do |keywords|
|
43
|
+
keywords << :min_age if legacy_min_age != NOT_GIVEN
|
44
|
+
keywords << :max_age if legacy_max_age != NOT_GIVEN
|
45
|
+
end
|
46
|
+
|
47
|
+
birthyear = Date.birthday(min_age: min_age, max_age: max_age).year
|
48
|
+
prefix = birthyear < 2000 ? 'S' : 'T'
|
49
|
+
values = birthyear.to_s[-2..-1]
|
50
|
+
values << regexify(/\d{5}/)
|
51
|
+
check_alpha = generate_nric_check_alphabet(values, prefix)
|
52
|
+
"#{prefix}#{values}#{check_alpha}"
|
53
|
+
end
|
54
|
+
|
55
|
+
# Generate GSM modem, device or mobile phone 15 digit IMEI number.
|
56
|
+
def imei
|
57
|
+
generate_imei
|
58
|
+
end
|
59
|
+
|
60
|
+
# Retrieves a real Amazon ASIN code list taken from
|
61
|
+
# https://archive.org/details/asin_listing
|
62
|
+
def asin
|
63
|
+
fetch('code.asin')
|
64
|
+
end
|
65
|
+
|
66
|
+
# Generates Social Insurance Number issued in Canada
|
67
|
+
# https://en.wikipedia.org/wiki/Social_Insurance_Number
|
68
|
+
def sin
|
69
|
+
# 1 - province or temporary resident
|
70
|
+
# 2-8 - random numbers
|
71
|
+
# 9 - checksum
|
72
|
+
|
73
|
+
# 1st digit. 8,0 are not used
|
74
|
+
registry = Faker::Base.sample([1, 2, 3, 4, 5, 6, 7, 9]).to_s
|
75
|
+
|
76
|
+
# generate 2nd to 8th
|
77
|
+
partial = Array.new(7) { Faker::Config.random.rand(0..9) }.join
|
78
|
+
|
79
|
+
# Generate 9th digit
|
80
|
+
check_digit = generate_sin_check_digit(registry + partial + '0').to_s
|
81
|
+
|
82
|
+
registry + partial + check_digit
|
83
|
+
end
|
84
|
+
|
85
|
+
private
|
86
|
+
|
87
|
+
# Reporting body identifier
|
88
|
+
RBI = %w[01 10 30 33 35 44 45 49 50 51 52 53 54 86 91 98 99].freeze
|
89
|
+
|
90
|
+
def generate_imei
|
91
|
+
str = Array.new(15, 0)
|
92
|
+
sum = 0
|
93
|
+
t = 0
|
94
|
+
len_offset = 0
|
95
|
+
len = 15
|
96
|
+
|
97
|
+
# Fill in the first two values of the string based with the specified prefix.
|
98
|
+
# Reporting Body Identifier list: http://en.wikipedia.org/wiki/Reporting_Body_Identifier
|
99
|
+
arr = sample(RBI)
|
100
|
+
str[0] = arr[0].to_i
|
101
|
+
str[1] = arr[1].to_i
|
102
|
+
pos = 2
|
103
|
+
|
104
|
+
# Fill all the remaining numbers except for the last one with random values.
|
105
|
+
while pos < (len - 1)
|
106
|
+
str[pos] = rand(0..9)
|
107
|
+
pos += 1
|
108
|
+
end
|
109
|
+
|
110
|
+
# Calculate the Luhn checksum of the values thus far
|
111
|
+
len_offset = (len + 1) % 2
|
112
|
+
(0..(len - 1)).each do |position|
|
113
|
+
if (position + len_offset).odd?
|
114
|
+
t = str[position] * 2
|
115
|
+
|
116
|
+
t -= 9 if t > 9
|
117
|
+
|
118
|
+
sum += t
|
119
|
+
else
|
120
|
+
sum += str[position]
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
# Choose the last digit so that it causes the entire string to pass the checksum.
|
125
|
+
str[len - 1] = (10 - (sum % 10)) % 10
|
126
|
+
|
127
|
+
# Output the IMEI value.
|
128
|
+
str.join('')
|
129
|
+
end
|
130
|
+
|
131
|
+
def generate_base10_isbn
|
132
|
+
values = regexify(/\d{9}/)
|
133
|
+
remainder = sum(values) { |value, index| (index + 1) * value.to_i } % 11
|
134
|
+
values << "-#{remainder == 10 ? 'X' : remainder}"
|
135
|
+
end
|
136
|
+
|
137
|
+
def generate_base13_isbn
|
138
|
+
values = regexify(/\d{12}/)
|
139
|
+
remainder = sum(values) { |value, index| index.even? ? value.to_i : value.to_i * 3 } % 10
|
140
|
+
values << "-#{((10 - remainder) % 10)}"
|
141
|
+
end
|
142
|
+
|
143
|
+
def sum(values)
|
144
|
+
values.split(//).each_with_index.inject(0) do |sum, (value, index)|
|
145
|
+
sum + yield(value, index)
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
def generate_base8_ean
|
150
|
+
values = regexify(/\d{7}/)
|
151
|
+
check_digit = 10 - values.split(//).each_with_index.inject(0) { |s, (v, i)| s + v.to_i * EAN_CHECK_DIGIT8[i] } % 10
|
152
|
+
values << (check_digit == 10 ? 0 : check_digit).to_s
|
153
|
+
end
|
154
|
+
|
155
|
+
def generate_base13_ean
|
156
|
+
values = regexify(/\d{12}/)
|
157
|
+
check_digit = 10 - values.split(//).each_with_index.inject(0) { |s, (v, i)| s + v.to_i * EAN_CHECK_DIGIT13[i] } % 10
|
158
|
+
values << (check_digit == 10 ? 0 : check_digit).to_s
|
159
|
+
end
|
160
|
+
|
161
|
+
EAN_CHECK_DIGIT8 = [3, 1, 3, 1, 3, 1, 3].freeze
|
162
|
+
EAN_CHECK_DIGIT13 = [1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3].freeze
|
163
|
+
|
164
|
+
def rut_verificator_digit(rut)
|
165
|
+
total = rut.to_s.rjust(8, '0').split(//).zip(%w[3 2 7 6 5 4 3 2]).collect { |a, b| a.to_i * b.to_i }.inject(:+)
|
166
|
+
(11 - total % 11).to_s.gsub(/10/, 'k').gsub(/11/, '0')
|
167
|
+
end
|
168
|
+
|
169
|
+
def generate_nric_check_alphabet(values, prefix)
|
170
|
+
weight = %w[2 7 6 5 4 3 2]
|
171
|
+
total = values.split(//).zip(weight).collect { |a, b| a.to_i * b.to_i }.inject(:+)
|
172
|
+
total += 4 if prefix == 'T'
|
173
|
+
%w[A B C D E F G H I Z J][10 - total % 11]
|
174
|
+
end
|
175
|
+
|
176
|
+
def generate_sin_check_digit(digits)
|
177
|
+
# Fast Luhn checksum code from luhn.js:
|
178
|
+
# https://gist.github.com/ShirtlessKirk/2134376
|
179
|
+
|
180
|
+
len = 9
|
181
|
+
mul = 0
|
182
|
+
|
183
|
+
luhn_arr = [
|
184
|
+
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
|
185
|
+
[0, 2, 4, 6, 8, 1, 3, 5, 7, 9]
|
186
|
+
]
|
187
|
+
sum = 0
|
188
|
+
|
189
|
+
while len.positive?
|
190
|
+
len -= 1
|
191
|
+
num = digits[len].to_i
|
192
|
+
sum += luhn_arr[mul][num]
|
193
|
+
mul ^= 1
|
194
|
+
end
|
195
|
+
|
196
|
+
checksum = sum % 10
|
197
|
+
checksum.zero? ? checksum : (10 - checksum)
|
198
|
+
end
|
199
|
+
end
|
200
|
+
end
|
201
|
+
end
|