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,61 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class IndustrySegments < Base
|
|
5
|
+
flexible :industry_segments
|
|
6
|
+
|
|
7
|
+
class << self
|
|
8
|
+
##
|
|
9
|
+
# Produces the name of an industry.
|
|
10
|
+
#
|
|
11
|
+
# @return [String]
|
|
12
|
+
#
|
|
13
|
+
# @example
|
|
14
|
+
# Faker::IndustrySegments.industry #=> "Basic Materials"
|
|
15
|
+
#
|
|
16
|
+
# @faker.version 1.9.2
|
|
17
|
+
def industry
|
|
18
|
+
fetch('industry_segments.industry')
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
##
|
|
22
|
+
# Produces the name of a super-sector of an industry.
|
|
23
|
+
#
|
|
24
|
+
# @return [String]
|
|
25
|
+
#
|
|
26
|
+
# @example
|
|
27
|
+
# Faker::IndustrySegments.super_sector #=> "Basic Resources"
|
|
28
|
+
#
|
|
29
|
+
# @faker.version 1.9.2
|
|
30
|
+
def super_sector
|
|
31
|
+
fetch('industry_segments.super_sector')
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
##
|
|
35
|
+
# Produces the name of a sector of an industry.
|
|
36
|
+
#
|
|
37
|
+
# @return [String]
|
|
38
|
+
#
|
|
39
|
+
# @example
|
|
40
|
+
# Faker::IndustrySegments.sector #=> "Industrial Metals & Mining"
|
|
41
|
+
#
|
|
42
|
+
# @faker.version 1.9.2
|
|
43
|
+
def sector
|
|
44
|
+
fetch('industry_segments.sector')
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
##
|
|
48
|
+
# Produces the name of a subsector of an industry.
|
|
49
|
+
#
|
|
50
|
+
# @return [String]
|
|
51
|
+
#
|
|
52
|
+
# @example
|
|
53
|
+
# Faker::IndustrySegments.industry #=> "Basic Materials"
|
|
54
|
+
#
|
|
55
|
+
# @faker.version 1.9.2
|
|
56
|
+
def sub_sector
|
|
57
|
+
fetch('industry_segments.sub_sector')
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class Internet < Base
|
|
5
|
+
class << self
|
|
6
|
+
def email(legacy_name = NOT_GIVEN, legacy_separators = NOT_GIVEN, name: nil, separators: nil)
|
|
7
|
+
warn_for_deprecated_arguments do |keywords|
|
|
8
|
+
keywords << :name if legacy_name != NOT_GIVEN
|
|
9
|
+
keywords << :separators if legacy_separators != NOT_GIVEN
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
if separators
|
|
13
|
+
[username(specifier: name, separators: separators), domain_name].join('@')
|
|
14
|
+
else
|
|
15
|
+
[username(specifier: name), domain_name].join('@')
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def free_email(legacy_name = NOT_GIVEN, name: nil)
|
|
20
|
+
warn_for_deprecated_arguments do |keywords|
|
|
21
|
+
keywords << :name if legacy_name != NOT_GIVEN
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
[username(specifier: name), fetch('internet.free_email')].join('@')
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def safe_email(legacy_name = NOT_GIVEN, name: nil)
|
|
28
|
+
warn_for_deprecated_arguments do |keywords|
|
|
29
|
+
keywords << :name if legacy_name != NOT_GIVEN
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
[username(specifier: name), 'example.' + sample(%w[org com net])].join('@')
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def username(legacy_specifier = NOT_GIVEN, legacy_separators = NOT_GIVEN, specifier: nil, separators: %w[. _])
|
|
36
|
+
warn_for_deprecated_arguments do |keywords|
|
|
37
|
+
keywords << :specifier if legacy_specifier != NOT_GIVEN
|
|
38
|
+
keywords << :separators if legacy_separators != NOT_GIVEN
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
with_locale(:en) do
|
|
42
|
+
return shuffle(specifier.scan(/[[:word:]]+/)).join(sample(separators)).downcase if specifier.respond_to?(:scan)
|
|
43
|
+
|
|
44
|
+
if specifier.is_a?(Integer)
|
|
45
|
+
# If specifier is Integer and has large value, Argument error exception is raised to overcome memory full error
|
|
46
|
+
raise ArgumentError, 'Given argument is too large' if specifier > 10**6
|
|
47
|
+
|
|
48
|
+
tries = 0 # Don't try forever in case we get something like 1_000_000.
|
|
49
|
+
result = nil
|
|
50
|
+
loop do
|
|
51
|
+
result = username(specifier: nil, separators: separators)
|
|
52
|
+
tries += 1
|
|
53
|
+
break unless result.length < specifier && tries < 7
|
|
54
|
+
end
|
|
55
|
+
return result * (specifier / result.length + 1) if specifier.positive?
|
|
56
|
+
elsif specifier.is_a?(Range)
|
|
57
|
+
tries = 0
|
|
58
|
+
result = nil
|
|
59
|
+
loop do
|
|
60
|
+
result = username(specifier: specifier.min, separators: separators)
|
|
61
|
+
tries += 1
|
|
62
|
+
break unless !specifier.include?(result.length) && tries < 7
|
|
63
|
+
end
|
|
64
|
+
return result[0...specifier.max]
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
sample([
|
|
68
|
+
Char.prepare(Name.first_name),
|
|
69
|
+
[Name.first_name, Name.last_name].map do |name|
|
|
70
|
+
Char.prepare(name)
|
|
71
|
+
end.join(sample(separators))
|
|
72
|
+
])
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
# rubocop:disable Metrics/ParameterLists
|
|
77
|
+
|
|
78
|
+
##
|
|
79
|
+
# Produces a randomized string of characters suitable for passwords
|
|
80
|
+
#
|
|
81
|
+
# @param min_length [Integer] The minimum length of the password
|
|
82
|
+
# @param max_length [Integer] The maximum length of the password
|
|
83
|
+
# @param mix_case [Boolean] Toggles if uppercased letters are allowed. If true, at least one will be added.
|
|
84
|
+
# @param special_characters [Boolean] Toggles if special characters are allowed. If true, at least one will be added.
|
|
85
|
+
#
|
|
86
|
+
# @return [String]
|
|
87
|
+
#
|
|
88
|
+
# @example
|
|
89
|
+
# Faker::Internet.password #=> "Vg5mSvY1UeRg7"
|
|
90
|
+
# @example
|
|
91
|
+
# Faker::Internet.password(min_length: 8) #=> "YfGjIk0hGzDqS0"
|
|
92
|
+
# @example
|
|
93
|
+
# Faker::Internet.password(min_length: 10, max_length: 20) #=> "EoC9ShWd1hWq4vBgFw"
|
|
94
|
+
# @example
|
|
95
|
+
# Faker::Internet.password(min_length: 10, max_length: 20, mix_case: true) #=> "3k5qS15aNmG"
|
|
96
|
+
# @example
|
|
97
|
+
# Faker::Internet.password(min_length: 10, max_length: 20, mix_case: true, special_characters: true) #=> "*%NkOnJsH4"
|
|
98
|
+
#
|
|
99
|
+
# @faker.version 2.1.3
|
|
100
|
+
def password(legacy_min_length = NOT_GIVEN, legacy_max_length = NOT_GIVEN, legacy_mix_case = NOT_GIVEN, legacy_special_characters = NOT_GIVEN, min_length: 8, max_length: 16, mix_case: true, special_characters: false)
|
|
101
|
+
# rubocop:enable Metrics/ParameterLists
|
|
102
|
+
warn_for_deprecated_arguments do |keywords|
|
|
103
|
+
keywords << :min_length if legacy_min_length != NOT_GIVEN
|
|
104
|
+
keywords << :max_length if legacy_max_length != NOT_GIVEN
|
|
105
|
+
keywords << :mix_case if legacy_mix_case != NOT_GIVEN
|
|
106
|
+
keywords << :special_characters if legacy_special_characters != NOT_GIVEN
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
min_alpha = mix_case ? 2 : 0
|
|
110
|
+
temp = Lorem.characters(number: min_length, min_alpha: min_alpha)
|
|
111
|
+
diff_length = max_length - min_length
|
|
112
|
+
|
|
113
|
+
if diff_length.positive?
|
|
114
|
+
diff_rand = rand(diff_length + 1)
|
|
115
|
+
temp += Lorem.characters(number: diff_rand)
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
if mix_case
|
|
119
|
+
alpha_count = 0
|
|
120
|
+
temp.chars.each_with_index do |char, index|
|
|
121
|
+
if char =~ /[[:alpha:]]/
|
|
122
|
+
temp[index] = char.upcase if alpha_count.even?
|
|
123
|
+
alpha_count += 1
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
if special_characters
|
|
129
|
+
chars = %w[! @ # $ % ^ & *]
|
|
130
|
+
rand(1..min_length).times do |i|
|
|
131
|
+
temp[i] = chars[rand(chars.length)]
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
temp
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
def domain_name(legacy_subdomain = NOT_GIVEN, subdomain: false)
|
|
139
|
+
warn_for_deprecated_arguments do |keywords|
|
|
140
|
+
keywords << :subdomain if legacy_subdomain != NOT_GIVEN
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
with_locale(:en) do
|
|
144
|
+
domain_elements = [Char.prepare(domain_word), domain_suffix]
|
|
145
|
+
domain_elements.unshift(Char.prepare(domain_word)) if subdomain
|
|
146
|
+
domain_elements.join('.')
|
|
147
|
+
end
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
def fix_umlauts(legacy_string = NOT_GIVEN, string: '')
|
|
151
|
+
warn_for_deprecated_arguments do |keywords|
|
|
152
|
+
keywords << :string if legacy_string != NOT_GIVEN
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
Char.fix_umlauts(string)
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
def domain_word
|
|
159
|
+
with_locale(:en) { Char.prepare(Company.name.split(' ').first) }
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
def domain_suffix
|
|
163
|
+
fetch('internet.domain_suffix')
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
def mac_address(legacy_prefix = NOT_GIVEN, prefix: '')
|
|
167
|
+
warn_for_deprecated_arguments do |keywords|
|
|
168
|
+
keywords << :prefix if legacy_prefix != NOT_GIVEN
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
prefix_digits = prefix.split(':').map { |d| d.to_i(16) }
|
|
172
|
+
address_digits = Array.new((6 - prefix_digits.size)) { rand(256) }
|
|
173
|
+
(prefix_digits + address_digits).map { |d| format('%02x', d) }.join(':')
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
def ip_v4_address
|
|
177
|
+
[rand_in_range(0, 255), rand_in_range(0, 255),
|
|
178
|
+
rand_in_range(0, 255), rand_in_range(0, 255)].join('.')
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
def private_ip_v4_address
|
|
182
|
+
addr = nil
|
|
183
|
+
loop do
|
|
184
|
+
addr = ip_v4_address
|
|
185
|
+
break if private_net_checker[addr]
|
|
186
|
+
end
|
|
187
|
+
addr
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
def public_ip_v4_address
|
|
191
|
+
addr = nil
|
|
192
|
+
loop do
|
|
193
|
+
addr = ip_v4_address
|
|
194
|
+
break unless reserved_net_checker[addr]
|
|
195
|
+
end
|
|
196
|
+
addr
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
def private_nets_regex
|
|
200
|
+
[
|
|
201
|
+
/^10\./, # 10.0.0.0 - 10.255.255.255
|
|
202
|
+
/^100\.(6[4-9]|[7-9]\d|1[0-1]\d|12[0-7])\./, # 100.64.0.0 - 100.127.255.255
|
|
203
|
+
/^127\./, # 127.0.0.0 - 127.255.255.255
|
|
204
|
+
/^169\.254\./, # 169.254.0.0 - 169.254.255.255
|
|
205
|
+
/^172\.(1[6-9]|2\d|3[0-1])\./, # 172.16.0.0 - 172.31.255.255
|
|
206
|
+
/^192\.0\.0\./, # 192.0.0.0 - 192.0.0.255
|
|
207
|
+
/^192\.168\./, # 192.168.0.0 - 192.168.255.255
|
|
208
|
+
/^198\.(1[8-9])\./ # 198.18.0.0 - 198.19.255.255
|
|
209
|
+
]
|
|
210
|
+
end
|
|
211
|
+
|
|
212
|
+
def private_net_checker
|
|
213
|
+
->(addr) { private_nets_regex.any? { |net| net =~ addr } }
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
def reserved_nets_regex
|
|
217
|
+
[
|
|
218
|
+
/^0\./, # 0.0.0.0 - 0.255.255.255
|
|
219
|
+
/^192\.0\.2\./, # 192.0.2.0 - 192.0.2.255
|
|
220
|
+
/^192\.88\.99\./, # 192.88.99.0 - 192.88.99.255
|
|
221
|
+
/^198\.51\.100\./, # 198.51.100.0 - 198.51.100.255
|
|
222
|
+
/^203\.0\.113\./, # 203.0.113.0 - 203.0.113.255
|
|
223
|
+
/^(22[4-9]|23\d)\./, # 224.0.0.0 - 239.255.255.255
|
|
224
|
+
/^(24\d|25[0-5])\./ # 240.0.0.0 - 255.255.255.254 and 255.255.255.255
|
|
225
|
+
]
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
def reserved_net_checker
|
|
229
|
+
->(addr) { (private_nets_regex + reserved_nets_regex).any? { |net| net =~ addr } }
|
|
230
|
+
end
|
|
231
|
+
|
|
232
|
+
def ip_v4_cidr
|
|
233
|
+
"#{ip_v4_address}/#{rand(1..31)}"
|
|
234
|
+
end
|
|
235
|
+
|
|
236
|
+
def ip_v6_address
|
|
237
|
+
(1..8).map { rand(65_536).to_s(16) }.join(':')
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
def ip_v6_cidr
|
|
241
|
+
"#{ip_v6_address}/#{rand(1..127)}"
|
|
242
|
+
end
|
|
243
|
+
|
|
244
|
+
# rubocop:disable Metrics/ParameterLists
|
|
245
|
+
def url(legacy_host = NOT_GIVEN, legacy_path = NOT_GIVEN, legacy_scheme = NOT_GIVEN, host: domain_name, path: "/#{username}", scheme: 'http')
|
|
246
|
+
# rubocop:enable Metrics/ParameterLists
|
|
247
|
+
warn_for_deprecated_arguments do |keywords|
|
|
248
|
+
keywords << :host if legacy_host != NOT_GIVEN
|
|
249
|
+
keywords << :path if legacy_path != NOT_GIVEN
|
|
250
|
+
keywords << :scheme if legacy_scheme != NOT_GIVEN
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
"#{scheme}://#{host}#{path}"
|
|
254
|
+
end
|
|
255
|
+
|
|
256
|
+
def slug(legacy_words = NOT_GIVEN, legacy_glue = NOT_GIVEN, words: nil, glue: nil)
|
|
257
|
+
warn_for_deprecated_arguments do |keywords|
|
|
258
|
+
keywords << :words if legacy_words != NOT_GIVEN
|
|
259
|
+
keywords << :glue if legacy_glue != NOT_GIVEN
|
|
260
|
+
end
|
|
261
|
+
|
|
262
|
+
glue ||= sample(%w[- _])
|
|
263
|
+
(words || Faker::Lorem.words(number: 2).join(' ')).delete(',.').gsub(' ', glue).downcase
|
|
264
|
+
end
|
|
265
|
+
|
|
266
|
+
def device_token
|
|
267
|
+
shuffle(rand(16**64).to_s(16).rjust(64, '0').chars.to_a).join
|
|
268
|
+
end
|
|
269
|
+
|
|
270
|
+
def user_agent(legacy_vendor = NOT_GIVEN, vendor: nil)
|
|
271
|
+
warn_for_deprecated_arguments do |keywords|
|
|
272
|
+
keywords << :vendor if legacy_vendor != NOT_GIVEN
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
agent_hash = translate('faker.internet.user_agent')
|
|
276
|
+
agents = vendor.respond_to?(:to_sym) && agent_hash[vendor.to_sym] || agent_hash[sample(agent_hash.keys)]
|
|
277
|
+
sample(agents)
|
|
278
|
+
end
|
|
279
|
+
|
|
280
|
+
def uuid
|
|
281
|
+
# borrowed from: https://github.com/ruby/ruby/blob/d48783bb0236db505fe1205d1d9822309de53a36/lib/securerandom.rb#L250
|
|
282
|
+
ary = Faker::Config.random.bytes(16).unpack('NnnnnN')
|
|
283
|
+
ary[2] = (ary[2] & 0x0fff) | 0x4000
|
|
284
|
+
ary[3] = (ary[3] & 0x3fff) | 0x8000
|
|
285
|
+
'%08x-%04x-%04x-%04x-%04x%08x' % ary # rubocop:disable Style/FormatString
|
|
286
|
+
end
|
|
287
|
+
|
|
288
|
+
alias user_name username
|
|
289
|
+
end
|
|
290
|
+
end
|
|
291
|
+
end
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class Invoice < Base
|
|
5
|
+
flexible :invoice
|
|
6
|
+
|
|
7
|
+
class << self
|
|
8
|
+
# Generate random amount between values with 2 decimals
|
|
9
|
+
def amount_between(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: 0, to: 0)
|
|
10
|
+
warn_for_deprecated_arguments do |keywords|
|
|
11
|
+
keywords << :from if legacy_from != NOT_GIVEN
|
|
12
|
+
keywords << :to if legacy_to != NOT_GIVEN
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
Faker::Base.rand_in_range(from, to).round(2)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# International bank slip reference https://en.wikipedia.org/wiki/Creditor_Reference
|
|
19
|
+
# ref is optional so that we can create unit tests
|
|
20
|
+
def creditor_reference(legacy_ref = NOT_GIVEN, ref: '')
|
|
21
|
+
warn_for_deprecated_arguments do |keywords|
|
|
22
|
+
keywords << :ref if legacy_ref != NOT_GIVEN
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
ref = reference if ref.empty?
|
|
26
|
+
|
|
27
|
+
'RF' + iban_checksum('RF', ref) + ref
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Payment references have some rules in certain countries
|
|
31
|
+
# ref is optional so that we can create unit tests
|
|
32
|
+
def reference(legacy_ref = NOT_GIVEN, ref: '')
|
|
33
|
+
warn_for_deprecated_arguments do |keywords|
|
|
34
|
+
keywords << :ref if legacy_ref != NOT_GIVEN
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
pattern = fetch('invoice.reference.pattern')
|
|
38
|
+
|
|
39
|
+
ref = Base.regexify(/#{pattern}/) if ref.empty?
|
|
40
|
+
|
|
41
|
+
# If reference contains reserved '#' characters we need to calculate check_digits as well
|
|
42
|
+
check_digit_match = ref.match(/#+/)
|
|
43
|
+
if check_digit_match
|
|
44
|
+
# Get the method for selected language
|
|
45
|
+
check_digit_method = fetch('invoice.reference.check_digit_method')
|
|
46
|
+
|
|
47
|
+
# Calculate the check digit with matching method name
|
|
48
|
+
# Trim all '#' from the reference before calculating that
|
|
49
|
+
check_digit = send(check_digit_method, ref.tr('#', ''))
|
|
50
|
+
|
|
51
|
+
# Make sure that our check digit is as long as all of the '###' we found
|
|
52
|
+
check_digit = check_digit.to_s.rjust(check_digit_match[0].length, '0')
|
|
53
|
+
|
|
54
|
+
# Replace all of the
|
|
55
|
+
ref = ref.sub(check_digit_match[0], check_digit)
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
ref
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
private
|
|
62
|
+
|
|
63
|
+
# Calculates the mandatory checksum in 3rd and 4th characters in IBAN format
|
|
64
|
+
# source: https://en.wikipedia.org/wiki/International_Bank_Account_Number#Validating_the_IBAN
|
|
65
|
+
def iban_checksum(country_code, account)
|
|
66
|
+
# Converts letters to numbers according the iban rules, A=10..Z=35
|
|
67
|
+
account_to_number = "#{account}#{country_code}00".upcase.chars.map do |d|
|
|
68
|
+
d =~ /[A-Z]/ ? (d.ord - 55).to_s : d
|
|
69
|
+
end.join.to_i
|
|
70
|
+
|
|
71
|
+
# This is answer to (iban_to_num + checksum) % 97 == 1
|
|
72
|
+
checksum = (1 - account_to_number) % 97
|
|
73
|
+
|
|
74
|
+
# Use leftpad to make the size always to 2
|
|
75
|
+
checksum.to_s.rjust(2, '0')
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# 731 Method
|
|
79
|
+
# Source: https://wiki.xmldation.com/support/fk/finnish_reference_number
|
|
80
|
+
def method_731(base)
|
|
81
|
+
weighted_sum = calculate_weighted_sum(base, [7, 3, 1])
|
|
82
|
+
mod10_remainder(weighted_sum)
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# Norsk Modulus 10 - KIDMOD10
|
|
86
|
+
def kidmod10(base)
|
|
87
|
+
weighted_sum = calculate_weighted_sum(base, [1, 2])
|
|
88
|
+
mod10_remainder(weighted_sum)
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
# Calculates weigthed sum
|
|
92
|
+
#
|
|
93
|
+
# For example with 12345678, [1,2]
|
|
94
|
+
# Ref.num. 1 2 3 4 5 6 7 8
|
|
95
|
+
# Multipl. 1 2 1 2 1 2 1 2
|
|
96
|
+
# Total 1+ 4+ 3+ 8+ 5+1+2+ 7+1+6 = 38
|
|
97
|
+
def calculate_weighted_sum(base, weight_factors)
|
|
98
|
+
base.to_s.reverse.each_char.with_index.map do |digit, index|
|
|
99
|
+
digit.to_i * weight_factors.at(index % weight_factors.length)
|
|
100
|
+
end.reduce(:+) # reduce(:+) = sum() but with better ruby version support
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
# MOD-10 - remainder
|
|
104
|
+
def mod10_remainder(number)
|
|
105
|
+
-number % 10
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|