faker 1.9.3 → 1.9.4
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 +66 -1
- data/README.md +30 -10
- data/bin/faker +19 -0
- data/lib/cli.rb +53 -0
- data/lib/cli/README.md +55 -0
- data/lib/cli/command.rb +24 -0
- data/lib/cli/commands/list.rb +17 -0
- data/lib/cli/commands/search.rb +29 -0
- data/lib/cli/reflector.rb +48 -0
- data/lib/cli/reflectors/list.rb +39 -0
- data/lib/cli/reflectors/search.rb +46 -0
- data/lib/cli/renderer.rb +93 -0
- data/lib/faker/blockchain/tezos.rb +10 -5
- data/lib/faker/creature/horse.rb +19 -0
- data/lib/faker/default/coffee.rb +2 -0
- data/lib/faker/default/company.rb +4 -0
- data/lib/faker/default/internet.rb +14 -2
- data/lib/faker/default/json.rb +4 -4
- data/lib/faker/deprecate/unreleased/football.rb +35 -0
- data/lib/faker/deprecate/unreleased/movies/grateful_dead.rb +22 -0
- data/lib/faker/games/game.rb +21 -0
- data/lib/faker/{movies → music}/grateful_dead.rb +3 -1
- data/lib/faker/music/opera.rb +26 -0
- data/lib/faker/sports/basketball.rb +25 -0
- data/lib/faker/sports/football.rb +29 -0
- data/lib/faker/version.rb +1 -1
- data/lib/locales/en-AU.yml +1 -1
- data/lib/locales/en/animal.yml +2 -2
- data/lib/locales/en/basketball.yml +99 -0
- data/lib/locales/en/company.yml +1 -0
- data/lib/locales/en/crypto_coin.yml +22 -6
- data/lib/locales/en/dc_comics.yml +5 -5
- data/lib/locales/en/dota.yml +3 -1
- data/lib/locales/en/food.yml +1 -1
- data/lib/locales/en/game.yml +283 -0
- data/lib/locales/en/grateful_dead.yml +2 -1
- data/lib/locales/en/heroes_of_the_storm.yml +2 -2
- data/lib/locales/en/horse.yml +6 -0
- data/lib/locales/en/kpop.yml +1 -1
- data/lib/locales/en/league_of_legends.yml +2 -2
- data/lib/locales/en/music.yml +1 -1
- data/lib/locales/en/nation.yml +1 -1
- data/lib/locales/en/opera.yml +172 -0
- data/lib/locales/en/phish.yml +1 -1
- data/lib/locales/en/rupaul.yml +51 -21
- data/lib/locales/en/space.yml +1 -1
- data/lib/locales/en/stargate.yml +1 -2
- data/lib/locales/en/subscription.yml +1 -1
- data/lib/locales/en/super_smash_bros.yml +4 -0
- data/lib/locales/fr-CA.yml +0 -5
- data/lib/locales/fr-CH.yml +0 -1
- data/lib/locales/fr.yml +1 -1
- data/lib/locales/hy.yml +47 -2
- data/lib/locales/ja.yml +16 -0
- data/lib/locales/pt-BR.yml +4 -1
- data/lib/locales/zh-CN.yml +3 -6
- data/lib/locales/zh-TW.yml +2 -2
- metadata +137 -98
- data/lib/faker/default/football.rb +0 -27
- data/lib/faker/deprecate/aqua_teen_hunger_force.rb +0 -15
- data/lib/faker/deprecate/back_to_the_future.rb +0 -25
- data/lib/faker/deprecate/bitcoin.rb +0 -20
- data/lib/faker/deprecate/bojack_horseman.rb +0 -25
- data/lib/faker/deprecate/breaking_bad.rb +0 -20
- data/lib/faker/deprecate/buffy.rb +0 -35
- data/lib/faker/deprecate/cat.rb +0 -25
- data/lib/faker/deprecate/community.rb +0 -20
- data/lib/faker/deprecate/dog.rb +0 -50
- data/lib/faker/deprecate/dota.rb +0 -35
- data/lib/faker/deprecate/dr_who.rb +0 -45
- data/lib/faker/deprecate/dragon_ball.rb +0 -15
- data/lib/faker/deprecate/dumb_and_dumber.rb +0 -25
- data/lib/faker/deprecate/dune.rb +0 -35
- data/lib/faker/deprecate/elder_scrolls.rb +0 -50
- data/lib/faker/deprecate/ethereum.rb +0 -15
- data/lib/faker/deprecate/fallout.rb +0 -30
- data/lib/faker/deprecate/family_guy.rb +0 -25
- data/lib/faker/deprecate/famous_last_words.rb +0 -15
- data/lib/faker/deprecate/friends.rb +0 -25
- data/lib/faker/deprecate/game_of_thrones.rb +0 -35
- data/lib/faker/deprecate/harry_potter.rb +0 -40
- data/lib/faker/deprecate/heroes_of_the_storm.rb +0 -30
- data/lib/faker/deprecate/hey_arnold.rb +0 -25
- data/lib/faker/deprecate/hitchhikers_guide_to_the_galaxy.rb +0 -44
- data/lib/faker/deprecate/hobbit.rb +0 -30
- data/lib/faker/deprecate/how_i_met_your_mother.rb +0 -30
- data/lib/faker/deprecate/league_of_legends.rb +0 -40
- data/lib/faker/deprecate/lebowski.rb +0 -25
- data/lib/faker/deprecate/lord_of_the_rings.rb +0 -25
- data/lib/faker/deprecate/lovecraft.rb +0 -65
- data/lib/faker/deprecate/matz.rb +0 -15
- data/lib/faker/deprecate/michael_scott.rb +0 -15
- data/lib/faker/deprecate/most_interesting_man_in_the_world.rb +0 -15
- data/lib/faker/deprecate/myst.rb +0 -35
- data/lib/faker/deprecate/new_girl.rb +0 -20
- data/lib/faker/deprecate/one_piece.rb +0 -40
- data/lib/faker/deprecate/overwatch.rb +0 -25
- data/lib/faker/deprecate/parks_and_rec.rb +0 -20
- data/lib/faker/deprecate/pokemon.rb +0 -25
- data/lib/faker/deprecate/princess_bride.rb +0 -20
- data/lib/faker/deprecate/rick_and_morty.rb +0 -25
- data/lib/faker/deprecate/robin.rb +0 -15
- data/lib/faker/deprecate/rock_band.rb +0 -15
- data/lib/faker/deprecate/ru_paul.rb +0 -20
- data/lib/faker/deprecate/seinfeld.rb +0 -25
- data/lib/faker/deprecate/shakespeare.rb +0 -50
- data/lib/faker/deprecate/silicon_valley.rb +0 -50
- data/lib/faker/deprecate/simpsons.rb +0 -25
- data/lib/faker/deprecate/singular_siegler.rb +0 -15
- data/lib/faker/deprecate/south_park.rb +0 -20
- data/lib/faker/deprecate/star_trek.rb +0 -30
- data/lib/faker/deprecate/star_wars.rb +0 -95
- data/lib/faker/deprecate/stargate.rb +0 -25
- data/lib/faker/deprecate/stranger_things.rb +0 -20
- data/lib/faker/deprecate/sword_art_online.rb +0 -30
- data/lib/faker/deprecate/tezos.rb +0 -33
- data/lib/faker/deprecate/the_fresh_prince_of_bel_air.rb +0 -25
- data/lib/faker/deprecate/the_it_crowd.rb +0 -30
- data/lib/faker/deprecate/the_thick_of_it.rb +0 -25
- data/lib/faker/deprecate/twin_peaks.rb +0 -25
- data/lib/faker/deprecate/umphreys_mcgee.rb +0 -15
- data/lib/faker/deprecate/v_for_vendetta.rb +0 -25
- data/lib/faker/deprecate/venture_bros.rb +0 -30
- data/lib/faker/deprecate/witcher.rb +0 -40
- data/lib/faker/deprecate/world_of_warcraft.rb +0 -20
- data/lib/faker/deprecate/yoda.rb +0 -16
- data/lib/faker/deprecate/zelda.rb +0 -30
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../reflector'
|
4
|
+
|
5
|
+
module Faker
|
6
|
+
module CLI
|
7
|
+
module Reflectors
|
8
|
+
# List command reflector
|
9
|
+
# @api private
|
10
|
+
#
|
11
|
+
class List < Reflector
|
12
|
+
attr_reader :show_methods
|
13
|
+
|
14
|
+
def self.call(options)
|
15
|
+
new(options).call
|
16
|
+
end
|
17
|
+
|
18
|
+
def initialize(options = {})
|
19
|
+
@show_methods = options[:show_methods]
|
20
|
+
|
21
|
+
super
|
22
|
+
end
|
23
|
+
|
24
|
+
def call
|
25
|
+
show_methods ? all_descendants_with_methods : faker_descendants
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def all_descendants_with_methods
|
31
|
+
faker_descendants.each do |descendant|
|
32
|
+
store(descendant, descendant.my_singleton_methods)
|
33
|
+
end
|
34
|
+
descendants_with_methods
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../reflector'
|
4
|
+
|
5
|
+
module Faker
|
6
|
+
module CLI
|
7
|
+
module Reflectors
|
8
|
+
# Find command reflector
|
9
|
+
# @api private
|
10
|
+
#
|
11
|
+
class Search < Reflector
|
12
|
+
attr_reader :query
|
13
|
+
|
14
|
+
def self.call(query)
|
15
|
+
new(query).call
|
16
|
+
end
|
17
|
+
|
18
|
+
def initialize(query)
|
19
|
+
@query = query
|
20
|
+
|
21
|
+
super
|
22
|
+
end
|
23
|
+
|
24
|
+
def call
|
25
|
+
search_descendants_matching_query
|
26
|
+
descendants_with_methods
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def search_descendants_matching_query
|
32
|
+
faker_descendants.each do |descendant|
|
33
|
+
methods = descendant.my_singleton_methods
|
34
|
+
matching = methods.select { |method| query_matches?(method.to_s) }
|
35
|
+
store(descendant, matching)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def query_matches?(method_name)
|
40
|
+
method_name_parts = method_name.split(/_/).reject(&:empty?)
|
41
|
+
query.match(/#{method_name_parts.join('|')}/)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/lib/cli/renderer.rb
ADDED
@@ -0,0 +1,93 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'pastel'
|
4
|
+
require 'tty/pager'
|
5
|
+
require 'tty/screen'
|
6
|
+
require 'tty/tree'
|
7
|
+
|
8
|
+
module Faker
|
9
|
+
module CLI
|
10
|
+
class Renderer
|
11
|
+
attr_reader :crayon, :hash, :options, :output, :pager
|
12
|
+
|
13
|
+
def self.call(*args)
|
14
|
+
new(*args).call
|
15
|
+
end
|
16
|
+
|
17
|
+
def initialize(hash, options, output)
|
18
|
+
@hash = hash
|
19
|
+
@options = options
|
20
|
+
@output = output
|
21
|
+
@crayon = Pastel.new(enabled: output.tty?)
|
22
|
+
@pager = TTY::Pager.new(command: 'less -R')
|
23
|
+
end
|
24
|
+
|
25
|
+
def call
|
26
|
+
if paginable?
|
27
|
+
pager.page(render)
|
28
|
+
else
|
29
|
+
output.puts(render)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def render
|
34
|
+
tree.render
|
35
|
+
end
|
36
|
+
|
37
|
+
def tree
|
38
|
+
@tree ||= TTY::Tree.new(build_tree)
|
39
|
+
end
|
40
|
+
|
41
|
+
def paginable?
|
42
|
+
gt_screen_height? && output.tty?
|
43
|
+
end
|
44
|
+
|
45
|
+
def gt_screen_height?
|
46
|
+
tree.nodes.size > TTY::Screen.height
|
47
|
+
end
|
48
|
+
|
49
|
+
private
|
50
|
+
|
51
|
+
def build_tree
|
52
|
+
results = hash.reduce({}) do |h, (const, methods)|
|
53
|
+
h.merge! node(const, methods&.sort)
|
54
|
+
end
|
55
|
+
|
56
|
+
results.sort_by(&:to_s).to_h
|
57
|
+
end
|
58
|
+
|
59
|
+
def node(const, methods)
|
60
|
+
{
|
61
|
+
crayon.green(const.to_s) => leaf(const, methods)
|
62
|
+
}
|
63
|
+
end
|
64
|
+
|
65
|
+
def leaf(const, methods)
|
66
|
+
(methods || []).map { |m| crayon.cyan(*leaf_args(m, const)) }
|
67
|
+
end
|
68
|
+
|
69
|
+
def leaf_args(method, const)
|
70
|
+
[method.to_s].tap { |arr| verbose_output(method, const, arr) if verbose? }
|
71
|
+
end
|
72
|
+
|
73
|
+
def verbose?
|
74
|
+
options[:verbose]
|
75
|
+
end
|
76
|
+
|
77
|
+
def verbose_output(method, const, arr)
|
78
|
+
fake, message = faker_method(method, const)
|
79
|
+
arr << crayon.dim.white("=> #{fake}") << crayon.dim.magenta.bold(message.to_s)
|
80
|
+
end
|
81
|
+
|
82
|
+
def faker_method(method, const)
|
83
|
+
[const.public_send(method), ensure_method_is_supported(method, const)]
|
84
|
+
rescue ArgumentError => _exception
|
85
|
+
['N/A', '']
|
86
|
+
end
|
87
|
+
|
88
|
+
def ensure_method_is_supported(method, const)
|
89
|
+
const.respond_to?(:"_deprecated_#{method}") ? ' ( WILL BE DEPRECATED )' : ''
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
@@ -8,12 +8,13 @@ module Faker
|
|
8
8
|
class Tezos < Base
|
9
9
|
class << self
|
10
10
|
PREFIXES = {
|
11
|
-
tz1:
|
12
|
-
KT1:
|
13
|
-
edpk:
|
11
|
+
tz1: [6, 161, 159],
|
12
|
+
KT1: [2, 90, 121],
|
13
|
+
edpk: [13, 15, 37, 217],
|
14
14
|
edsk: [13, 15, 58, 7],
|
15
|
-
edsig:
|
16
|
-
|
15
|
+
edsig: [9, 245, 205, 134, 18],
|
16
|
+
B: [1, 52],
|
17
|
+
o: [5, 116]
|
17
18
|
}.freeze
|
18
19
|
|
19
20
|
def account
|
@@ -28,6 +29,10 @@ module Faker
|
|
28
29
|
encode_tz(:o, 32)
|
29
30
|
end
|
30
31
|
|
32
|
+
def block
|
33
|
+
encode_tz(:B, 32)
|
34
|
+
end
|
35
|
+
|
31
36
|
def signature
|
32
37
|
encode_tz(:edsig, 64)
|
33
38
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
module Creature
|
5
|
+
class Horse < Base
|
6
|
+
flexible :horse
|
7
|
+
|
8
|
+
class << self
|
9
|
+
def name
|
10
|
+
fetch('creature.horse.name')
|
11
|
+
end
|
12
|
+
|
13
|
+
def breed
|
14
|
+
fetch('creature.horse.breed')
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/faker/default/coffee.rb
CHANGED
@@ -168,6 +168,10 @@ module Faker
|
|
168
168
|
formatted ? format('%s.%s.%s/%s-%s', *number.scan(/(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})/).flatten) : number
|
169
169
|
end
|
170
170
|
|
171
|
+
def sic_code
|
172
|
+
fetch('company.sic_code')
|
173
|
+
end
|
174
|
+
|
171
175
|
private
|
172
176
|
|
173
177
|
# Mod11 functionality from https://github.com/badmanski/mod11/blob/master/lib/mod11.rb
|
@@ -79,8 +79,12 @@ module Faker
|
|
79
79
|
temp
|
80
80
|
end
|
81
81
|
|
82
|
-
def domain_name
|
83
|
-
with_locale(:en)
|
82
|
+
def domain_name(subdomain = false)
|
83
|
+
with_locale(:en) do
|
84
|
+
domain_elements = [Char.prepare(domain_word), domain_suffix]
|
85
|
+
domain_elements.unshift(Char.prepare(domain_word)) if subdomain
|
86
|
+
domain_elements.join('.')
|
87
|
+
end
|
84
88
|
end
|
85
89
|
|
86
90
|
def fix_umlauts(string = '')
|
@@ -188,6 +192,14 @@ module Faker
|
|
188
192
|
sample(agents)
|
189
193
|
end
|
190
194
|
|
195
|
+
def uuid
|
196
|
+
# borrowed from: https://github.com/ruby/ruby/blob/d48783bb0236db505fe1205d1d9822309de53a36/lib/securerandom.rb#L250
|
197
|
+
ary = Faker::Config.random.bytes(16).unpack('NnnnnN')
|
198
|
+
ary[2] = (ary[2] & 0x0fff) | 0x4000
|
199
|
+
ary[3] = (ary[3] & 0x3fff) | 0x8000
|
200
|
+
'%08x-%04x-%04x-%04x-%04x%08x' % ary # rubocop:disable Style/FormatString
|
201
|
+
end
|
202
|
+
|
191
203
|
alias user_name username
|
192
204
|
end
|
193
205
|
end
|
data/lib/faker/default/json.rb
CHANGED
@@ -4,16 +4,16 @@ module Faker
|
|
4
4
|
|
5
5
|
class << self
|
6
6
|
def shallow_json(width = 3, options = { key: 'Name.first_name', value: 'Name.first_name' })
|
7
|
-
options[:key] = options[:key]
|
8
|
-
options[:value] = options[:value]
|
7
|
+
options[:key] = 'Faker::' + options[:key]
|
8
|
+
options[:value] = 'Faker::' + options[:value]
|
9
9
|
|
10
10
|
hash = build_shallow_hash(width, options)
|
11
11
|
JSON.generate(hash)
|
12
12
|
end
|
13
13
|
|
14
14
|
def add_depth_to_json(json = shallow_json, width = 3, options = { key: 'Name.first_name', value: 'Name.first_name' })
|
15
|
-
options[:key] = options[:key]
|
16
|
-
options[:value] = options[:value]
|
15
|
+
options[:key] = 'Faker::' + options[:key]
|
16
|
+
options[:value] = 'Faker::' + options[:value]
|
17
17
|
|
18
18
|
hash = JSON.parse(json)
|
19
19
|
hash.each do |key, _|
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Football
|
5
|
+
class << self
|
6
|
+
extend Gem::Deprecate
|
7
|
+
|
8
|
+
def team
|
9
|
+
Faker::Sports::Football.team
|
10
|
+
end
|
11
|
+
|
12
|
+
def player
|
13
|
+
Faker::Sports::Football.player
|
14
|
+
end
|
15
|
+
|
16
|
+
def coach
|
17
|
+
Faker::Sports::Football.coach
|
18
|
+
end
|
19
|
+
|
20
|
+
def competition
|
21
|
+
Faker::Sports::Football.competition
|
22
|
+
end
|
23
|
+
|
24
|
+
def position
|
25
|
+
Faker::Sports::Football.position
|
26
|
+
end
|
27
|
+
|
28
|
+
deprecate :team, 'Faker::Sports::Football.team', 2019, 04
|
29
|
+
deprecate :player, 'Faker::Sports::Football.player', 2019, 04
|
30
|
+
deprecate :coach, 'Faker::Sports::Football.coach', 2019, 04
|
31
|
+
deprecate :competition, 'Faker::Sports::Football.competition', 2019, 04
|
32
|
+
deprecate :position, 'Faker::Sports::Football.position', 2019, 04
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
module Movies
|
5
|
+
class GratefulDead < Base
|
6
|
+
class << self
|
7
|
+
extend Gem::Deprecate
|
8
|
+
|
9
|
+
def player
|
10
|
+
Faker::Music::GratefulDead.player
|
11
|
+
end
|
12
|
+
|
13
|
+
def song
|
14
|
+
Faker::Music::GratefulDead.song
|
15
|
+
end
|
16
|
+
|
17
|
+
deprecate :player, 'Faker::Music::GratefulDead.player', 2019, 04
|
18
|
+
deprecate :song, 'Faker::Music::GratefulDead.song', 2019, 04
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Game < Base
|
5
|
+
flexible :game
|
6
|
+
|
7
|
+
class << self
|
8
|
+
def title
|
9
|
+
fetch('game.title')
|
10
|
+
end
|
11
|
+
|
12
|
+
def genre
|
13
|
+
fetch('game.genre')
|
14
|
+
end
|
15
|
+
|
16
|
+
def platform
|
17
|
+
fetch('game.platform')
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
# A generator of titles of operas by Verdi, Rossini, Donizetti and Bellini
|
5
|
+
class Music
|
6
|
+
class Opera < Base
|
7
|
+
class << self
|
8
|
+
def verdi
|
9
|
+
fetch('opera.italian.by_giuseppe_verdi')
|
10
|
+
end
|
11
|
+
|
12
|
+
def rossini
|
13
|
+
fetch('opera.italian.by_gioacchino_rossini')
|
14
|
+
end
|
15
|
+
|
16
|
+
def donizetti
|
17
|
+
fetch('opera.italian.by_gaetano_donizetti')
|
18
|
+
end
|
19
|
+
|
20
|
+
def bellini
|
21
|
+
fetch('opera.italian.by_vincenzo_bellini')
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Sports
|
5
|
+
class Basketball < Base
|
6
|
+
class << self
|
7
|
+
def team
|
8
|
+
fetch('basketball.teams')
|
9
|
+
end
|
10
|
+
|
11
|
+
def player
|
12
|
+
fetch('basketball.players')
|
13
|
+
end
|
14
|
+
|
15
|
+
def coach
|
16
|
+
fetch('basketball.coaches')
|
17
|
+
end
|
18
|
+
|
19
|
+
def position
|
20
|
+
fetch('basketball.positions')
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|