faker 2.15.1 → 3.4.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 +4 -4
- data/CHANGELOG.md +848 -34
- data/README.md +225 -103
- data/lib/faker/blockchain/aeternity.rb +1 -1
- data/lib/faker/blockchain/bitcoin.rb +2 -2
- data/lib/faker/blockchain/ethereum.rb +1 -1
- data/lib/faker/blockchain/tezos.rb +31 -3
- data/lib/faker/books/dune.rb +2 -10
- data/lib/faker/books/lovecraft.rb +9 -41
- data/lib/faker/books/the_kingkiller_chronicle.rb +61 -0
- data/lib/faker/creature/bird.rb +203 -0
- data/lib/faker/default/address.rb +7 -27
- data/lib/faker/default/alphanumeric.rb +2 -8
- data/lib/faker/default/app.rb +1 -10
- data/lib/faker/default/avatar.rb +1 -12
- data/lib/faker/default/bank.rb +25 -17
- data/lib/faker/default/barcode.rb +33 -22
- data/lib/faker/default/boolean.rb +1 -4
- data/lib/faker/default/cannabis.rb +10 -0
- data/lib/faker/default/chile_rut.rb +25 -25
- data/lib/faker/default/chuck_norris.rb +1 -0
- data/lib/faker/default/code.rb +71 -42
- data/lib/faker/default/color.rb +77 -6
- data/lib/faker/default/commerce.rb +31 -17
- data/lib/faker/default/company.rb +137 -22
- data/lib/faker/default/crypto.rb +26 -4
- data/lib/faker/default/crypto_coin.rb +3 -15
- data/lib/faker/default/date.rb +65 -42
- data/lib/faker/default/demographic.rb +1 -5
- data/lib/faker/default/driving_licence.rb +20 -18
- data/lib/faker/default/drone.rb +1 -1
- data/lib/faker/default/educator.rb +13 -0
- data/lib/faker/default/emotion.rb +33 -0
- data/lib/faker/default/file.rb +5 -22
- data/lib/faker/default/finance.rb +30 -7
- data/lib/faker/default/food.rb +27 -1
- data/lib/faker/default/hipster.rb +8 -48
- data/lib/faker/default/hobby.rb +22 -0
- data/lib/faker/default/html.rb +230 -0
- data/lib/faker/default/id_number.rb +175 -27
- data/lib/faker/default/internet.rb +333 -114
- data/lib/faker/default/invoice.rb +4 -17
- data/lib/faker/default/json.rb +4 -21
- data/lib/faker/default/lorem.rb +175 -73
- data/lib/faker/default/lorem_flickr.rb +4 -37
- data/lib/faker/default/markdown.rb +10 -13
- data/lib/faker/default/marketing.rb +1 -1
- data/lib/faker/default/measurement.rb +16 -48
- data/lib/faker/default/name.rb +1 -5
- data/lib/faker/default/nation.rb +0 -3
- data/lib/faker/default/{nhs.rb → national_health_service.rb} +9 -8
- data/lib/faker/default/number.rb +33 -61
- data/lib/faker/default/omniauth.rb +55 -52
- data/lib/faker/default/phone_number.rb +36 -21
- data/lib/faker/default/placeholdit.rb +10 -20
- data/lib/faker/default/relationship.rb +1 -5
- data/lib/faker/default/religion.rb +6 -0
- data/lib/faker/default/science.rb +108 -0
- data/lib/faker/default/source.rb +3 -16
- data/lib/faker/default/south_africa.rb +3 -3
- data/lib/faker/default/string.rb +1 -7
- data/lib/faker/default/stripe.rb +4 -20
- data/lib/faker/default/tea.rb +41 -0
- data/lib/faker/{music/show.rb → default/theater.rb} +11 -8
- data/lib/faker/default/time.rb +4 -34
- data/lib/faker/default/twitter.rb +7 -23
- data/lib/faker/default/types.rb +12 -34
- data/lib/faker/default/vehicle.rb +44 -54
- data/lib/faker/default/vulnerability_identifier.rb +23 -0
- data/lib/faker/default/world_cup.rb +2 -11
- data/lib/faker/games/clash_of_clans.rb +1 -1
- data/lib/faker/games/dnd.rb +49 -7
- data/lib/faker/games/dota.rb +14 -5
- data/lib/faker/games/final_fantasy_xiv.rb +73 -0
- data/lib/faker/games/minecraft.rb +1 -1
- data/lib/faker/games/myst.rb +1 -1
- data/lib/faker/games/tarkov.rb +205 -0
- data/lib/faker/games/touhou.rb +75 -0
- data/lib/faker/games/witcher.rb +39 -0
- data/lib/faker/japanese_media/cowboy_bebop.rb +61 -0
- data/lib/faker/japanese_media/fullmetal_alchemist_brotherhood.rb +51 -0
- data/lib/faker/japanese_media/kamen_rider.rb +102 -0
- data/lib/faker/japanese_media/one_piece.rb +1 -1
- data/lib/faker/locations/australia.rb +52 -0
- data/lib/faker/movies/avatar.rb +49 -0
- data/lib/faker/movies/hackers.rb +48 -0
- data/lib/faker/movies/star_wars.rb +73 -5
- data/lib/faker/movies/{room.rb → the_room.rb} +4 -4
- data/lib/faker/movies/tron.rb +161 -0
- data/lib/faker/music/hiphop.rb +3 -3
- data/lib/faker/music/music.rb +12 -0
- data/lib/faker/music/rock_band.rb +12 -0
- data/lib/faker/music/smashing_pumpkins.rb +64 -0
- data/lib/faker/quotes/quote.rb +13 -0
- data/lib/faker/quotes/rajnikanth.rb +1 -0
- data/lib/faker/quotes/shakespeare.rb +34 -0
- data/lib/faker/religion/bible.rb +50 -0
- data/lib/faker/sports/chess.rb +90 -0
- data/lib/faker/sports/mountaineering.rb +22 -0
- data/lib/faker/sports/sport.rb +116 -0
- data/lib/faker/travel/airport.rb +43 -0
- data/lib/faker/travel/train_station.rb +54 -0
- data/lib/faker/tv_shows/archer.rb +51 -0
- data/lib/faker/tv_shows/big_bang_theory.rb +1 -1
- data/lib/faker/tv_shows/brooklyn_nine_nine.rb +38 -0
- data/lib/faker/tv_shows/michael_scott.rb +0 -3
- data/lib/faker/tv_shows/south_park.rb +15 -0
- data/lib/faker/tv_shows/spongebob.rb +50 -0
- data/lib/faker/tv_shows/suits.rb +1 -1
- data/lib/faker/tv_shows/supernatural.rb +48 -0
- data/lib/faker/tv_shows/the_office.rb +37 -0
- data/lib/faker/version.rb +2 -2
- data/lib/faker.rb +26 -67
- data/lib/helpers/base58.rb +1 -1
- data/lib/helpers/deprecator.rb +53 -0
- data/lib/helpers/positional_generator.rb +480 -0
- data/lib/helpers/unique_generator.rb +13 -14
- data/lib/locales/README.md +18 -2
- data/lib/locales/ar.yml +6 -1
- data/lib/locales/bg.yml +1 -2
- data/lib/locales/da-DK.yml +529 -35
- data/lib/locales/de-AT.yml +3487 -27
- data/lib/locales/de-CH.yml +4328 -12
- data/lib/locales/de.yml +7185 -99
- data/lib/locales/ee.yml +0 -1
- data/lib/locales/en/address.yml +1826 -562
- data/lib/locales/en/airport.yml +381 -0
- data/lib/locales/en/animal.yml +1 -1
- data/lib/locales/en/archer.yml +75 -0
- data/lib/locales/en/australia.yml +108 -0
- data/lib/locales/en/avatar.yml +31 -0
- data/lib/locales/en/bank.yml +1 -1
- data/lib/locales/en/bible.yml +90 -0
- data/lib/locales/en/bird.yml +1281 -0
- data/lib/locales/en/book.yml +487 -3
- data/lib/locales/en/brooklyn_nine_nine.yml +35 -0
- data/lib/locales/en/cat.yml +1 -1
- data/lib/locales/en/chess.yml +103 -0
- data/lib/locales/en/coffee.yml +1 -1
- data/lib/locales/en/commerce.yml +17 -0
- data/lib/locales/en/community.yml +17 -17
- data/lib/locales/en/company.yml +1 -0
- data/lib/locales/en/computer.yml +23 -4
- data/lib/locales/en/cowboy_bebop.yml +163 -0
- data/lib/locales/en/device.yml +112 -4
- data/lib/locales/en/dnd.yml +186 -1
- data/lib/locales/en/dog.yml +262 -7
- data/lib/locales/en/dota.yml +173 -0
- data/lib/locales/en/dune.yml +266 -397
- data/lib/locales/en/educator.yml +6 -0
- data/lib/locales/en/emotion.yml +480 -0
- data/lib/locales/en/file.yml +9 -1
- data/lib/locales/en/final_fantasy_xiv.yml +754 -0
- data/lib/locales/en/finance.yml +27 -4
- data/lib/locales/en/food.yml +1067 -10
- data/lib/locales/en/football.yml +3 -3
- data/lib/locales/en/fullmetal_alchemist_brotherhood.yml +78 -0
- data/lib/locales/en/game.yml +11 -0
- data/lib/locales/en/hackers.yml +53 -0
- data/lib/locales/en/harry_potter.yml +1 -1
- data/lib/locales/en/heroes.yml +2 -2
- data/lib/locales/en/hobby.yml +171 -0
- data/lib/locales/en/horse.yml +2 -2
- data/lib/locales/en/id_number.yml +1 -1
- data/lib/locales/en/internet.yml +136 -3
- data/lib/locales/en/kamen_rider.yml +452 -0
- data/lib/locales/en/kpop.yml +7 -7
- data/lib/locales/en/lebowski.yml +1 -1
- data/lib/locales/en/lovecraft.yml +76 -6
- data/lib/locales/en/minecraft.yml +4 -4
- data/lib/locales/en/mitch_hedberg.yml +46 -0
- data/lib/locales/en/mountain.yml +14 -1
- data/lib/locales/en/mountaineering.yml +14 -0
- data/lib/locales/en/movie.yml +2 -1
- data/lib/locales/en/music.yml +152 -142
- data/lib/locales/en/naruto.yml +2 -3
- data/lib/locales/en/one_piece.yml +1 -1
- data/lib/locales/en/opera.yml +2 -2
- data/lib/locales/en/overwatch.yml +5 -7
- data/lib/locales/en/phone_number.yml +78 -3
- data/lib/locales/en/rock_band.yml +1 -0
- data/lib/locales/en/science.yml +481 -3
- data/lib/locales/en/shakespeare.yml +21 -24
- data/lib/locales/en/smashing_pumpkins.yml +382 -0
- data/lib/locales/en/source.yml +5 -0
- data/lib/locales/en/south_park.yml +360 -2
- data/lib/locales/en/space.yml +1 -1
- data/lib/locales/en/spongebob.yml +489 -0
- data/lib/locales/en/sport.yml +130 -0
- data/lib/locales/en/star_wars.yml +1 -1
- data/lib/locales/en/stranger_thing.yml +1 -1
- data/lib/locales/en/super_smash_bros.yml +7 -2
- data/lib/locales/en/supernatural.yml +141 -0
- data/lib/locales/en/tarkov.yml +593 -0
- data/lib/locales/en/tea.yml +172 -0
- data/lib/locales/en/the_kingkiller_chronicle.yml +56 -0
- data/lib/locales/en/the_office.yml +86 -0
- data/lib/locales/en/{room.yml → the_room.yml} +1 -1
- data/lib/locales/en/{show.yml → theater.yml} +1 -1
- data/lib/locales/en/touhou.yml +839 -0
- data/lib/locales/en/train_station.yml +280 -0
- data/lib/locales/en/tron.yml +227 -0
- data/lib/locales/en/vehicle.yml +2809 -75
- data/lib/locales/en/witcher.yml +37 -0
- data/lib/locales/en-AU.yml +718 -47
- data/lib/locales/en-CA.yml +373 -18
- data/lib/locales/en-GB.yml +116 -8
- data/lib/locales/en-IND.yml +1259 -17
- data/lib/locales/en-KE.yml +212 -0
- data/lib/locales/en-MS.yml +364 -17
- data/lib/locales/en-NEP.yml +212 -38
- data/lib/locales/en-NG.yml +1 -0
- data/lib/locales/en-NZ.yml +1153 -123
- data/lib/locales/en-PAK.yml +369 -10
- data/lib/locales/en-SG.yml +581 -16
- data/lib/locales/en-UG.yml +1 -0
- data/lib/locales/en-US.yml +6914 -74
- data/lib/locales/en-ZA.yml +1 -1
- data/lib/locales/en-au-ocker.yml +266 -22
- data/lib/locales/es-AR.yml +4570 -0
- data/lib/locales/es-MX.yml +1 -2
- data/lib/locales/es.yml +2 -3
- data/lib/locales/fi-FI.yml +3 -1
- data/lib/locales/fr/address.yml +20 -0
- data/lib/locales/fr/adjective.yml +266 -0
- data/lib/locales/fr/ancient.yml +141 -0
- data/lib/locales/fr/animal.yml +5 -0
- data/lib/locales/fr/appliance.yml +4 -0
- data/lib/locales/fr/book.yml +7 -0
- data/lib/locales/fr/color.yml +4 -0
- data/lib/locales/fr/company.yml +17 -0
- data/lib/locales/fr/compass.yml +23 -0
- data/lib/locales/fr/demographic.yml +4 -0
- data/lib/locales/fr/gender.yml +6 -0
- data/lib/locales/fr/internet.yml +4 -0
- data/lib/locales/fr/lorem.yml +5 -0
- data/lib/locales/fr/measurement.yml +7 -0
- data/lib/locales/fr/name.yml +22 -0
- data/lib/locales/fr/phone_number.yml +7 -0
- data/lib/locales/fr/pokemon.yml +7 -0
- data/lib/locales/fr-CA.yml +2733 -44
- data/lib/locales/fr-CH.yml +1 -2
- data/lib/locales/fr.yml +2 -118
- data/lib/locales/hy.yml +3624 -119
- data/lib/locales/id.yml +839 -12
- data/lib/locales/it.yml +1304 -32
- data/lib/locales/ja/README.md +13 -0
- data/lib/locales/ja/address.yml +120539 -0
- data/lib/locales/ja/adjective.yml +148 -0
- data/lib/locales/ja/ancient.yml +4 -0
- data/lib/locales/ja/animal.yml +5 -0
- data/lib/locales/ja/bank.yml +4 -0
- data/lib/locales/ja/book.yml +7 -0
- data/lib/locales/ja/cat.yml +5 -0
- data/lib/locales/ja/coffee.yml +4 -0
- data/lib/locales/ja/color.yml +4 -0
- data/lib/locales/ja/commerce.yml +11 -0
- data/lib/locales/ja/company.yml +8 -0
- data/lib/locales/ja/dog.yml +6 -0
- data/lib/locales/ja/emotion.yml +51 -0
- data/lib/locales/ja/food.yml +4 -0
- data/lib/locales/ja/football.yml +115 -0
- data/lib/locales/ja/gender.yml +4 -0
- data/lib/locales/ja/lorem.yml +9 -0
- data/lib/locales/ja/name.yml +13 -0
- data/lib/locales/ja/naruto.yml +230 -0
- data/lib/locales/ja/overwatch.yml +5 -0
- data/lib/locales/ja/phone_number.yml +7 -0
- data/lib/locales/ja/pokemon.yml +7 -0
- data/lib/locales/ja/relationship.yml +10 -0
- data/lib/locales/ja/restaurant.yml +11 -0
- data/lib/locales/ja/space.yml +5 -0
- data/lib/locales/ja/sport.yml +130 -0
- data/lib/locales/ja/studio_ghibli.yml +112 -0
- data/lib/locales/ja/subscription.yml +8 -0
- data/lib/locales/ja/super_mario.yml +9 -0
- data/lib/locales/ja/super_smash_bros.yml +8 -0
- data/lib/locales/ja/touhou.yml +466 -0
- data/lib/locales/ja/university.yml +9 -0
- data/lib/locales/ja/zelda.yml +5 -0
- data/lib/locales/ko.yml +1361 -20
- data/lib/locales/lt.yml +315 -0
- data/lib/locales/lv.yml +1 -2
- data/lib/locales/mi-NZ.yml +283 -0
- data/lib/locales/nb-NO.yml +518 -29
- data/lib/locales/nl.yml +1 -1
- data/lib/locales/pl.yml +1 -2
- data/lib/locales/pt-BR.yml +8157 -660
- data/lib/locales/pt.yml +844 -45
- data/lib/locales/ru.yml +1355 -32
- data/lib/locales/sk.yml +4410 -43
- data/lib/locales/sv.yml +100 -0
- data/lib/locales/th.yml +76 -76
- data/lib/locales/tr.yml +1 -2
- data/lib/locales/uk.yml +1808 -44
- data/lib/locales/vi.yml +1 -0
- data/lib/locales/zh-CN/bank.yml +17 -0
- data/lib/locales/zh-CN.yml +1 -0
- data/lib/locales/zh-TW.yml +1 -0
- metadata +134 -133
- data/History.md +0 -176
- data/lib/faker/default/fillmurray.rb +0 -45
- data/lib/faker/default/lorem_pixel.rb +0 -69
- data/lib/locales/ja.yml +0 -105
- /data/lib/faker/default/{faker_adjective.rb → adjective.rb} +0 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class Travel
|
|
5
|
+
class TrainStation < Base
|
|
6
|
+
class << self
|
|
7
|
+
##
|
|
8
|
+
# Produces random Train Station by name and takes optional arguments for region and type
|
|
9
|
+
#
|
|
10
|
+
# @param region [String] Train station region: germany, spain, united_kingdom, united_states
|
|
11
|
+
#
|
|
12
|
+
# @param type [String] Train station type: metro, railway
|
|
13
|
+
#
|
|
14
|
+
# @return [String]
|
|
15
|
+
#
|
|
16
|
+
# @examples
|
|
17
|
+
# Faker::Travel::TrainStation.name(region: 'united_kingdom', type: 'metro') => "Brockley"
|
|
18
|
+
# Faker::Travel::TrainStation.name(type: 'railway') => "Düsseldorf Hauptbahnhof"
|
|
19
|
+
# Faker::Travel::TrainStation.name(region: 'spain') => "Santa Eulàlia"
|
|
20
|
+
#
|
|
21
|
+
# @faker.version next
|
|
22
|
+
def name(region: nil, type: nil)
|
|
23
|
+
region, type = fill_missing_inputs_with_samples(region, type)
|
|
24
|
+
fetch("train_station.#{region}.#{type}")
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
private
|
|
28
|
+
|
|
29
|
+
def fill_missing_inputs_with_samples(region, type)
|
|
30
|
+
regions = %w[germany spain united_kingdom united_states]
|
|
31
|
+
types = %w[metro railway]
|
|
32
|
+
|
|
33
|
+
if region.nil? && type.nil?
|
|
34
|
+
region = sample(regions)
|
|
35
|
+
type = sample(types)
|
|
36
|
+
elsif region.nil?
|
|
37
|
+
validate_arguments(type, types, 'type')
|
|
38
|
+
region = sample(regions)
|
|
39
|
+
elsif type.nil?
|
|
40
|
+
validate_arguments(region, regions, 'region')
|
|
41
|
+
type = sample(types)
|
|
42
|
+
end
|
|
43
|
+
[region, type]
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def validate_arguments(argument, correct_values, argument_name)
|
|
47
|
+
return if correct_values.include?(argument)
|
|
48
|
+
|
|
49
|
+
raise ArgumentError, "'#{argument}' not found, #{argument_name} can be blank, or one of the following, as strings: #{correct_values.join(', ')}"
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class TvShows
|
|
5
|
+
class Archer < Base
|
|
6
|
+
flexible :archer
|
|
7
|
+
|
|
8
|
+
class << self
|
|
9
|
+
##
|
|
10
|
+
# Produces a character from Archer.
|
|
11
|
+
#
|
|
12
|
+
# @return [String]
|
|
13
|
+
#
|
|
14
|
+
# @example
|
|
15
|
+
# Faker::TvShows::Archer.character #=> "Sterling Archer"
|
|
16
|
+
#
|
|
17
|
+
# @faker.version next
|
|
18
|
+
def character
|
|
19
|
+
fetch('archer.characters')
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
##
|
|
23
|
+
# Produces a location from Archer.
|
|
24
|
+
#
|
|
25
|
+
# @return [String]
|
|
26
|
+
#
|
|
27
|
+
# @example
|
|
28
|
+
# Faker::TvShows::Archer.location #=> "The Tuntmore Towers"
|
|
29
|
+
#
|
|
30
|
+
# @faker.version next
|
|
31
|
+
def location
|
|
32
|
+
fetch('archer.locations')
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
##
|
|
36
|
+
# Produces a quote from Archer.
|
|
37
|
+
#
|
|
38
|
+
# @return [String]
|
|
39
|
+
#
|
|
40
|
+
# @example
|
|
41
|
+
# Faker::TvShows::Archer.quote
|
|
42
|
+
# #=> "You're not my supervisor!"
|
|
43
|
+
#
|
|
44
|
+
# @faker.version next
|
|
45
|
+
def quote
|
|
46
|
+
fetch('archer.quotes')
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -25,7 +25,7 @@ module Faker
|
|
|
25
25
|
# @return [String]
|
|
26
26
|
#
|
|
27
27
|
# @example
|
|
28
|
-
#
|
|
28
|
+
# Faker::TvShows::BigBangTheory.quote #=> "I'm not crazy. My mother had me tested."
|
|
29
29
|
#
|
|
30
30
|
# @faker.version 2.13.0
|
|
31
31
|
def quote
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class TvShows
|
|
5
|
+
class BrooklynNineNine < Base
|
|
6
|
+
flexible :brooklyn_nine_nine
|
|
7
|
+
|
|
8
|
+
class << self
|
|
9
|
+
##
|
|
10
|
+
# Produces a character from Brooklyn Nine Nine.
|
|
11
|
+
#
|
|
12
|
+
# @return [String]
|
|
13
|
+
#
|
|
14
|
+
# @example
|
|
15
|
+
# Faker::TvShows::BrooklynNineNine.character #=> "Jake Peralta"
|
|
16
|
+
#
|
|
17
|
+
# @faker.version next
|
|
18
|
+
def character
|
|
19
|
+
fetch('brooklyn_nine_nine.characters')
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
##
|
|
23
|
+
# Produces a quote from Brooklyn Nine Nine.
|
|
24
|
+
#
|
|
25
|
+
# @return [String]
|
|
26
|
+
#
|
|
27
|
+
# @example
|
|
28
|
+
# Faker::TvShows::BrooklynNineNine.quote
|
|
29
|
+
# #=> "Cool, cool, cool, cool, cool. No doubt, no doubt, no doubt."
|
|
30
|
+
#
|
|
31
|
+
# @faker.version next
|
|
32
|
+
def quote
|
|
33
|
+
fetch('brooklyn_nine_nine.quotes')
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -4,8 +4,6 @@ module Faker
|
|
|
4
4
|
class TvShows
|
|
5
5
|
class MichaelScott < Base
|
|
6
6
|
class << self
|
|
7
|
-
# rubocop:disable Style/AsciiComments
|
|
8
|
-
|
|
9
7
|
##
|
|
10
8
|
# Produces a quote from Michael Scott.
|
|
11
9
|
#
|
|
@@ -19,7 +17,6 @@ module Faker
|
|
|
19
17
|
def quote
|
|
20
18
|
fetch('michael_scott.quotes')
|
|
21
19
|
end
|
|
22
|
-
# rubocop:enable Style/AsciiComments
|
|
23
20
|
end
|
|
24
21
|
end
|
|
25
22
|
end
|
|
@@ -32,6 +32,21 @@ module Faker
|
|
|
32
32
|
def quote
|
|
33
33
|
fetch('south_park.quotes')
|
|
34
34
|
end
|
|
35
|
+
|
|
36
|
+
##
|
|
37
|
+
# Produces an episode name from South Park.
|
|
38
|
+
#
|
|
39
|
+
# @return [String]
|
|
40
|
+
#
|
|
41
|
+
# @example
|
|
42
|
+
# Faker::TvShows::SouthPark.episode_name
|
|
43
|
+
# #=> "Make Love, Not Warcraft"
|
|
44
|
+
#
|
|
45
|
+
# @faker.version next
|
|
46
|
+
|
|
47
|
+
def episode_name
|
|
48
|
+
fetch('south_park.episodes')
|
|
49
|
+
end
|
|
35
50
|
end
|
|
36
51
|
end
|
|
37
52
|
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class TvShows
|
|
5
|
+
class Spongebob < Base
|
|
6
|
+
flexible :spongebob
|
|
7
|
+
|
|
8
|
+
class << self
|
|
9
|
+
##
|
|
10
|
+
# Produces a character from Spongebob.
|
|
11
|
+
#
|
|
12
|
+
# @return [String]
|
|
13
|
+
#
|
|
14
|
+
# @example
|
|
15
|
+
# Faker::TvShows::Spongebob.character #=> "Patrick"
|
|
16
|
+
#
|
|
17
|
+
# @faker.version next
|
|
18
|
+
def character
|
|
19
|
+
fetch('spongebob.characters')
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
##
|
|
23
|
+
# Produces a quote from Spongebob.
|
|
24
|
+
#
|
|
25
|
+
# @return [String]
|
|
26
|
+
#
|
|
27
|
+
# @example
|
|
28
|
+
# Faker::TvShows::Spongebob.quote #=> "I'm ready! I'm ready!"
|
|
29
|
+
#
|
|
30
|
+
# @faker.version next
|
|
31
|
+
def quote
|
|
32
|
+
fetch('spongebob.quotes')
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
##
|
|
36
|
+
# Produces an episode from Spongebob.
|
|
37
|
+
#
|
|
38
|
+
# @return [String]
|
|
39
|
+
#
|
|
40
|
+
# @example
|
|
41
|
+
# Faker::TvShows::Spongebob.episode #=> "Reef Blower"
|
|
42
|
+
#
|
|
43
|
+
# @faker.version next
|
|
44
|
+
def episode
|
|
45
|
+
fetch('spongebob.episodes')
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
data/lib/faker/tv_shows/suits.rb
CHANGED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class TvShows
|
|
5
|
+
class Supernatural < Base
|
|
6
|
+
class << self
|
|
7
|
+
##
|
|
8
|
+
# Produces the name of a character from Supernatural.
|
|
9
|
+
#
|
|
10
|
+
# @return [String]
|
|
11
|
+
#
|
|
12
|
+
# @example
|
|
13
|
+
# Faker::TvShows::Supernatural.character #=> "Dean Winchester"
|
|
14
|
+
#
|
|
15
|
+
# @faker.version next
|
|
16
|
+
def character
|
|
17
|
+
fetch('supernatural.character')
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
##
|
|
21
|
+
# Produces the name of a hunted creature.
|
|
22
|
+
#
|
|
23
|
+
# @return [String]
|
|
24
|
+
#
|
|
25
|
+
# @example
|
|
26
|
+
# Faker::TvShows::Supernatural.creature #=> "Demon"
|
|
27
|
+
#
|
|
28
|
+
# @faker.version next
|
|
29
|
+
def creature
|
|
30
|
+
fetch('supernatural.creature')
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
##
|
|
34
|
+
# Produces the name of a weapon used by the hunters.
|
|
35
|
+
#
|
|
36
|
+
# @return [String]
|
|
37
|
+
#
|
|
38
|
+
# @example
|
|
39
|
+
# Faker::TvShows::Supernatural.weapon #=> "Colt"
|
|
40
|
+
#
|
|
41
|
+
# @faker.version next
|
|
42
|
+
def weapon
|
|
43
|
+
fetch('supernatural.weapon')
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class TvShows
|
|
5
|
+
class TheOffice < Base
|
|
6
|
+
flexible :the_office
|
|
7
|
+
|
|
8
|
+
class << self
|
|
9
|
+
##
|
|
10
|
+
# Produces a character from The Office.
|
|
11
|
+
#
|
|
12
|
+
# @return [String]
|
|
13
|
+
#
|
|
14
|
+
# @example
|
|
15
|
+
# Faker::TvShows::TheOffice.character #=> "Michael Scott"
|
|
16
|
+
#
|
|
17
|
+
# @faker.version next
|
|
18
|
+
def character
|
|
19
|
+
fetch('the_office.characters')
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
##
|
|
23
|
+
# Produces a quote from The Office.
|
|
24
|
+
#
|
|
25
|
+
# @return [String]
|
|
26
|
+
#
|
|
27
|
+
# @example
|
|
28
|
+
# Faker::TvShows::TheOffice.quote #=> "Identity theft is not a joke, Jim! Millions of families suffer every year."
|
|
29
|
+
#
|
|
30
|
+
# @faker.version next
|
|
31
|
+
def quote
|
|
32
|
+
fetch('the_office.quotes')
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
data/lib/faker/version.rb
CHANGED
data/lib/faker.rb
CHANGED
|
@@ -4,32 +4,37 @@ mydir = __dir__
|
|
|
4
4
|
|
|
5
5
|
require 'psych'
|
|
6
6
|
require 'i18n'
|
|
7
|
-
require 'set' # Fixes a bug in i18n 0.6.11
|
|
8
7
|
|
|
9
8
|
Dir.glob(File.join(mydir, 'helpers', '*.rb')).sort.each { |file| require file }
|
|
10
9
|
|
|
11
10
|
I18n.load_path += Dir[File.join(mydir, 'locales', '**/*.yml')]
|
|
12
|
-
I18n.reload! if I18n.backend.initialized?
|
|
13
11
|
|
|
14
12
|
module Faker
|
|
15
13
|
module Config
|
|
16
|
-
@
|
|
17
|
-
@random = nil
|
|
14
|
+
@default_locale = nil
|
|
18
15
|
|
|
19
16
|
class << self
|
|
20
|
-
attr_writer :
|
|
17
|
+
attr_writer :default_locale
|
|
18
|
+
|
|
19
|
+
def locale=(new_locale)
|
|
20
|
+
Thread.current[:faker_config_locale] = new_locale
|
|
21
|
+
end
|
|
21
22
|
|
|
22
23
|
def locale
|
|
23
24
|
# Because I18n.locale defaults to :en, if we don't have :en in our available_locales, errors will happen
|
|
24
|
-
@
|
|
25
|
+
Thread.current[:faker_config_locale] || @default_locale || (I18n.available_locales.include?(I18n.locale) ? I18n.locale : I18n.available_locales.first)
|
|
25
26
|
end
|
|
26
27
|
|
|
27
28
|
def own_locale
|
|
28
|
-
|
|
29
|
+
Thread.current[:faker_config_locale]
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def random=(new_random)
|
|
33
|
+
Thread.current[:faker_config_random] = new_random
|
|
29
34
|
end
|
|
30
35
|
|
|
31
36
|
def random
|
|
32
|
-
|
|
37
|
+
Thread.current[:faker_config_random] || Random
|
|
33
38
|
end
|
|
34
39
|
end
|
|
35
40
|
end
|
|
@@ -41,23 +46,29 @@ module Faker
|
|
|
41
46
|
Letters = ULetters + LLetters
|
|
42
47
|
|
|
43
48
|
class << self
|
|
49
|
+
attr_reader :flexible_key
|
|
50
|
+
|
|
44
51
|
NOT_GIVEN = Object.new
|
|
45
52
|
|
|
46
53
|
## by default numerify results do not start with a zero
|
|
47
54
|
def numerify(number_string, leading_zero: false)
|
|
48
|
-
return number_string.gsub(
|
|
55
|
+
return number_string.gsub('#') { rand(10).to_s } if leading_zero
|
|
49
56
|
|
|
50
|
-
number_string.sub(
|
|
57
|
+
number_string.sub('#') { rand(1..9).to_s }.gsub('#') { rand(10).to_s }
|
|
51
58
|
end
|
|
52
59
|
|
|
53
60
|
def letterify(letter_string)
|
|
54
|
-
letter_string.gsub(
|
|
61
|
+
letter_string.gsub('?') { sample(ULetters) }
|
|
55
62
|
end
|
|
56
63
|
|
|
57
64
|
def bothify(string)
|
|
58
65
|
letterify(numerify(string))
|
|
59
66
|
end
|
|
60
67
|
|
|
68
|
+
def generate(as_type, &block)
|
|
69
|
+
PositionalGenerator.new(as_type, &block).generate
|
|
70
|
+
end
|
|
71
|
+
|
|
61
72
|
# Given a regular expression, attempt to generate a string
|
|
62
73
|
# that would match it. This is a rather simple implementation,
|
|
63
74
|
# so don't be shocked if it blows up on you in a spectacular fashion.
|
|
@@ -81,13 +92,13 @@ module Faker
|
|
|
81
92
|
reg = reg.source if reg.respond_to?(:source) # Handle either a Regexp or a String that looks like a Regexp
|
|
82
93
|
reg
|
|
83
94
|
.gsub(%r{^/?\^?}, '').gsub(%r{\$?/?$}, '') # Ditch the anchors
|
|
84
|
-
.gsub(/\{(\d+)\}/, '{\1,\1}').gsub(
|
|
95
|
+
.gsub(/\{(\d+)\}/, '{\1,\1}').gsub('?', '{0,1}') # All {2} become {2,2} and ? become {0,1}
|
|
85
96
|
.gsub(/(\[[^\]]+\])\{(\d+),(\d+)\}/) { |_match| Regexp.last_match(1) * sample(Array(Range.new(Regexp.last_match(2).to_i, Regexp.last_match(3).to_i))) } # [12]{1,2} becomes [12] or [12][12]
|
|
86
97
|
.gsub(/(\([^)]+\))\{(\d+),(\d+)\}/) { |_match| Regexp.last_match(1) * sample(Array(Range.new(Regexp.last_match(2).to_i, Regexp.last_match(3).to_i))) } # (12|34){1,2} becomes (12|34) or (12|34)(12|34)
|
|
87
98
|
.gsub(/(\\?.)\{(\d+),(\d+)\}/) { |_match| Regexp.last_match(1) * sample(Array(Range.new(Regexp.last_match(2).to_i, Regexp.last_match(3).to_i))) } # A{1,2} becomes A or AA or \d{3} becomes \d\d\d
|
|
88
99
|
.gsub(/\((.*?)\)/) { |match| sample(match.gsub(/[()]/, '').split('|')) } # (this|that) becomes 'this' or 'that'
|
|
89
100
|
.gsub(/\[([^\]]+)\]/) { |match| match.gsub(/(\w-\w)/) { |range| sample(Array(Range.new(*range.split('-')))) } } # All A-Z inside of [] become C (or X, or whatever)
|
|
90
|
-
.gsub(/\[([^\]]+)\]/) { |_match| sample(Regexp.last_match(1).
|
|
101
|
+
.gsub(/\[([^\]]+)\]/) { |_match| sample(Regexp.last_match(1).chars) } # All [ABC] become B (or A or C)
|
|
91
102
|
.gsub('\d') { |_match| sample(Numbers) }
|
|
92
103
|
.gsub('\w') { |_match| sample(Letters) }
|
|
93
104
|
end
|
|
@@ -185,9 +196,9 @@ module Faker
|
|
|
185
196
|
# girls_name: ["Alice", "Cheryl", "Tatiana"]
|
|
186
197
|
# Then you can call Faker::Name.girls_name and it will act like #first_name
|
|
187
198
|
def method_missing(mth, *args, &block)
|
|
188
|
-
super unless
|
|
199
|
+
super unless flexible_key
|
|
189
200
|
|
|
190
|
-
if (translation = translate("faker.#{
|
|
201
|
+
if (translation = translate("faker.#{flexible_key}.#{mth}"))
|
|
191
202
|
sample(translation)
|
|
192
203
|
else
|
|
193
204
|
super
|
|
@@ -255,58 +266,6 @@ module Faker
|
|
|
255
266
|
ensure
|
|
256
267
|
I18n.enforce_available_locales = old_enforce_available_locales
|
|
257
268
|
end
|
|
258
|
-
|
|
259
|
-
private
|
|
260
|
-
|
|
261
|
-
def warn_for_deprecated_arguments
|
|
262
|
-
keywords = []
|
|
263
|
-
yield(keywords)
|
|
264
|
-
|
|
265
|
-
return if keywords.empty?
|
|
266
|
-
|
|
267
|
-
method_name = caller.first.match(/`(?<method_name>.*)'/)[:method_name]
|
|
268
|
-
|
|
269
|
-
keywords.each.with_index(1) do |keyword, index|
|
|
270
|
-
i = case index
|
|
271
|
-
when 1 then '1st'
|
|
272
|
-
when 2 then '2nd'
|
|
273
|
-
when 3 then '3rd'
|
|
274
|
-
else "#{index}th"
|
|
275
|
-
end
|
|
276
|
-
|
|
277
|
-
warn_with_uplevel(<<~MSG, uplevel: 5)
|
|
278
|
-
Passing `#{keyword}` with the #{i} argument of `#{method_name}` is deprecated. Use keyword argument like `#{method_name}(#{keyword}: ...)` instead.
|
|
279
|
-
MSG
|
|
280
|
-
end
|
|
281
|
-
|
|
282
|
-
warn(<<~MSG)
|
|
283
|
-
|
|
284
|
-
To automatically update from positional arguments to keyword arguments,
|
|
285
|
-
install rubocop-faker and run:
|
|
286
|
-
|
|
287
|
-
rubocop \\
|
|
288
|
-
--require rubocop-faker \\
|
|
289
|
-
--only Faker/DeprecatedArguments \\
|
|
290
|
-
--auto-correct
|
|
291
|
-
|
|
292
|
-
MSG
|
|
293
|
-
end
|
|
294
|
-
|
|
295
|
-
# Workaround for emulating `warn '...', uplevel: 1` in Ruby 2.4 or lower.
|
|
296
|
-
def warn_with_uplevel(message, uplevel: 1)
|
|
297
|
-
at = parse_caller(caller[uplevel]).join(':')
|
|
298
|
-
warn "#{at}: #{message}"
|
|
299
|
-
end
|
|
300
|
-
|
|
301
|
-
def parse_caller(at)
|
|
302
|
-
# rubocop:disable Style/GuardClause
|
|
303
|
-
if /^(.+?):(\d+)(?::in `.*')?/ =~ at
|
|
304
|
-
file = Regexp.last_match(1)
|
|
305
|
-
line = Regexp.last_match(2).to_i
|
|
306
|
-
[file, line]
|
|
307
|
-
end
|
|
308
|
-
# rubocop:enable Style/GuardClause
|
|
309
|
-
end
|
|
310
269
|
end
|
|
311
270
|
end
|
|
312
271
|
end
|
data/lib/helpers/base58.rb
CHANGED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Based on Rails ActiveSupport Deprecator
|
|
4
|
+
# https://github.com/rails/rails/blob/6f0d1ad14b92b9f5906e44740fce8b4f1c7075dc/activesupport/lib/active_support/deprecation/constant_accessor.rb
|
|
5
|
+
|
|
6
|
+
# rubocop:disable Style/ClassVars
|
|
7
|
+
module Faker
|
|
8
|
+
module Deprecator
|
|
9
|
+
def self.included(base)
|
|
10
|
+
extension = Module.new do
|
|
11
|
+
def const_missing(missing_const_name)
|
|
12
|
+
if class_variable_defined?(:@@_deprecated_constants) && (replacement = class_variable_get(:@@_deprecated_constants)[missing_const_name.to_s])
|
|
13
|
+
unless Faker::Deprecator.skip_warning?
|
|
14
|
+
$stdout.puts("DEPRECATION WARNING: #{name}::#{replacement[:old_generator]} is deprecated. Use #{replacement[:new_constant]} instead.")
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
return replacement[:new_constant]
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
super
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def deprecate_generator(old_generator_name, new_generator_constant)
|
|
24
|
+
class_variable_set(:@@_deprecated_constants, {}) unless class_variable_defined?(:@@_deprecated_constants)
|
|
25
|
+
class_variable_get(:@@_deprecated_constants)[old_generator_name] = { new_constant: new_generator_constant, old_generator: old_generator_name }
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
base.singleton_class.prepend extension
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def self.skip_warning
|
|
33
|
+
original = Faker::Deprecator.skip
|
|
34
|
+
Faker::Deprecator.skip = true
|
|
35
|
+
yield
|
|
36
|
+
ensure
|
|
37
|
+
Faker::Deprecator.skip = original
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def self.skip_warning?
|
|
41
|
+
skip == true
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def self.skip
|
|
45
|
+
@skip ||= false
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def self.skip=(value)
|
|
49
|
+
@skip = value
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
# rubocop:enable Style/ClassVars
|