faker 1.9.3 → 1.9.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|