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.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +66 -1
  3. data/README.md +30 -10
  4. data/bin/faker +19 -0
  5. data/lib/cli.rb +53 -0
  6. data/lib/cli/README.md +55 -0
  7. data/lib/cli/command.rb +24 -0
  8. data/lib/cli/commands/list.rb +17 -0
  9. data/lib/cli/commands/search.rb +29 -0
  10. data/lib/cli/reflector.rb +48 -0
  11. data/lib/cli/reflectors/list.rb +39 -0
  12. data/lib/cli/reflectors/search.rb +46 -0
  13. data/lib/cli/renderer.rb +93 -0
  14. data/lib/faker/blockchain/tezos.rb +10 -5
  15. data/lib/faker/creature/horse.rb +19 -0
  16. data/lib/faker/default/coffee.rb +2 -0
  17. data/lib/faker/default/company.rb +4 -0
  18. data/lib/faker/default/internet.rb +14 -2
  19. data/lib/faker/default/json.rb +4 -4
  20. data/lib/faker/deprecate/unreleased/football.rb +35 -0
  21. data/lib/faker/deprecate/unreleased/movies/grateful_dead.rb +22 -0
  22. data/lib/faker/games/game.rb +21 -0
  23. data/lib/faker/{movies → music}/grateful_dead.rb +3 -1
  24. data/lib/faker/music/opera.rb +26 -0
  25. data/lib/faker/sports/basketball.rb +25 -0
  26. data/lib/faker/sports/football.rb +29 -0
  27. data/lib/faker/version.rb +1 -1
  28. data/lib/locales/en-AU.yml +1 -1
  29. data/lib/locales/en/animal.yml +2 -2
  30. data/lib/locales/en/basketball.yml +99 -0
  31. data/lib/locales/en/company.yml +1 -0
  32. data/lib/locales/en/crypto_coin.yml +22 -6
  33. data/lib/locales/en/dc_comics.yml +5 -5
  34. data/lib/locales/en/dota.yml +3 -1
  35. data/lib/locales/en/food.yml +1 -1
  36. data/lib/locales/en/game.yml +283 -0
  37. data/lib/locales/en/grateful_dead.yml +2 -1
  38. data/lib/locales/en/heroes_of_the_storm.yml +2 -2
  39. data/lib/locales/en/horse.yml +6 -0
  40. data/lib/locales/en/kpop.yml +1 -1
  41. data/lib/locales/en/league_of_legends.yml +2 -2
  42. data/lib/locales/en/music.yml +1 -1
  43. data/lib/locales/en/nation.yml +1 -1
  44. data/lib/locales/en/opera.yml +172 -0
  45. data/lib/locales/en/phish.yml +1 -1
  46. data/lib/locales/en/rupaul.yml +51 -21
  47. data/lib/locales/en/space.yml +1 -1
  48. data/lib/locales/en/stargate.yml +1 -2
  49. data/lib/locales/en/subscription.yml +1 -1
  50. data/lib/locales/en/super_smash_bros.yml +4 -0
  51. data/lib/locales/fr-CA.yml +0 -5
  52. data/lib/locales/fr-CH.yml +0 -1
  53. data/lib/locales/fr.yml +1 -1
  54. data/lib/locales/hy.yml +47 -2
  55. data/lib/locales/ja.yml +16 -0
  56. data/lib/locales/pt-BR.yml +4 -1
  57. data/lib/locales/zh-CN.yml +3 -6
  58. data/lib/locales/zh-TW.yml +2 -2
  59. metadata +137 -98
  60. data/lib/faker/default/football.rb +0 -27
  61. data/lib/faker/deprecate/aqua_teen_hunger_force.rb +0 -15
  62. data/lib/faker/deprecate/back_to_the_future.rb +0 -25
  63. data/lib/faker/deprecate/bitcoin.rb +0 -20
  64. data/lib/faker/deprecate/bojack_horseman.rb +0 -25
  65. data/lib/faker/deprecate/breaking_bad.rb +0 -20
  66. data/lib/faker/deprecate/buffy.rb +0 -35
  67. data/lib/faker/deprecate/cat.rb +0 -25
  68. data/lib/faker/deprecate/community.rb +0 -20
  69. data/lib/faker/deprecate/dog.rb +0 -50
  70. data/lib/faker/deprecate/dota.rb +0 -35
  71. data/lib/faker/deprecate/dr_who.rb +0 -45
  72. data/lib/faker/deprecate/dragon_ball.rb +0 -15
  73. data/lib/faker/deprecate/dumb_and_dumber.rb +0 -25
  74. data/lib/faker/deprecate/dune.rb +0 -35
  75. data/lib/faker/deprecate/elder_scrolls.rb +0 -50
  76. data/lib/faker/deprecate/ethereum.rb +0 -15
  77. data/lib/faker/deprecate/fallout.rb +0 -30
  78. data/lib/faker/deprecate/family_guy.rb +0 -25
  79. data/lib/faker/deprecate/famous_last_words.rb +0 -15
  80. data/lib/faker/deprecate/friends.rb +0 -25
  81. data/lib/faker/deprecate/game_of_thrones.rb +0 -35
  82. data/lib/faker/deprecate/harry_potter.rb +0 -40
  83. data/lib/faker/deprecate/heroes_of_the_storm.rb +0 -30
  84. data/lib/faker/deprecate/hey_arnold.rb +0 -25
  85. data/lib/faker/deprecate/hitchhikers_guide_to_the_galaxy.rb +0 -44
  86. data/lib/faker/deprecate/hobbit.rb +0 -30
  87. data/lib/faker/deprecate/how_i_met_your_mother.rb +0 -30
  88. data/lib/faker/deprecate/league_of_legends.rb +0 -40
  89. data/lib/faker/deprecate/lebowski.rb +0 -25
  90. data/lib/faker/deprecate/lord_of_the_rings.rb +0 -25
  91. data/lib/faker/deprecate/lovecraft.rb +0 -65
  92. data/lib/faker/deprecate/matz.rb +0 -15
  93. data/lib/faker/deprecate/michael_scott.rb +0 -15
  94. data/lib/faker/deprecate/most_interesting_man_in_the_world.rb +0 -15
  95. data/lib/faker/deprecate/myst.rb +0 -35
  96. data/lib/faker/deprecate/new_girl.rb +0 -20
  97. data/lib/faker/deprecate/one_piece.rb +0 -40
  98. data/lib/faker/deprecate/overwatch.rb +0 -25
  99. data/lib/faker/deprecate/parks_and_rec.rb +0 -20
  100. data/lib/faker/deprecate/pokemon.rb +0 -25
  101. data/lib/faker/deprecate/princess_bride.rb +0 -20
  102. data/lib/faker/deprecate/rick_and_morty.rb +0 -25
  103. data/lib/faker/deprecate/robin.rb +0 -15
  104. data/lib/faker/deprecate/rock_band.rb +0 -15
  105. data/lib/faker/deprecate/ru_paul.rb +0 -20
  106. data/lib/faker/deprecate/seinfeld.rb +0 -25
  107. data/lib/faker/deprecate/shakespeare.rb +0 -50
  108. data/lib/faker/deprecate/silicon_valley.rb +0 -50
  109. data/lib/faker/deprecate/simpsons.rb +0 -25
  110. data/lib/faker/deprecate/singular_siegler.rb +0 -15
  111. data/lib/faker/deprecate/south_park.rb +0 -20
  112. data/lib/faker/deprecate/star_trek.rb +0 -30
  113. data/lib/faker/deprecate/star_wars.rb +0 -95
  114. data/lib/faker/deprecate/stargate.rb +0 -25
  115. data/lib/faker/deprecate/stranger_things.rb +0 -20
  116. data/lib/faker/deprecate/sword_art_online.rb +0 -30
  117. data/lib/faker/deprecate/tezos.rb +0 -33
  118. data/lib/faker/deprecate/the_fresh_prince_of_bel_air.rb +0 -25
  119. data/lib/faker/deprecate/the_it_crowd.rb +0 -30
  120. data/lib/faker/deprecate/the_thick_of_it.rb +0 -25
  121. data/lib/faker/deprecate/twin_peaks.rb +0 -25
  122. data/lib/faker/deprecate/umphreys_mcgee.rb +0 -15
  123. data/lib/faker/deprecate/v_for_vendetta.rb +0 -25
  124. data/lib/faker/deprecate/venture_bros.rb +0 -30
  125. data/lib/faker/deprecate/witcher.rb +0 -40
  126. data/lib/faker/deprecate/world_of_warcraft.rb +0 -20
  127. data/lib/faker/deprecate/yoda.rb +0 -16
  128. data/lib/faker/deprecate/zelda.rb +0 -30
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f03350f51046e632c66e829e6386c993efe587c10d977d2ff7a889b753b236b2
4
- data.tar.gz: 9c66012aa8accbc8d5202bc8d7af44e02627c48437004daa9414500b1e639977
3
+ metadata.gz: 4adc28503a1bd209dcf7c7bfea5794149f0b92bdb0869f67a920ce33fa96ce2a
4
+ data.tar.gz: 3698e9ce24f8625591c49fd3e032f8768c8396c40d501a9a73ab70d5e3ec506e
5
5
  SHA512:
6
- metadata.gz: 7f0d97b3f14bbf9f37db1b0280e19a0d9cfc38af2fe40849280606f14ed5947ffaa01781d65979b3ab28f44e530721da18c5903722587031819bb009868c90ef
7
- data.tar.gz: c2c3639d373065fd3479a5e5e3e03e01aa2529b4c55cb81e3c8ab95d9add1bc056f4674f4c201938a1f2e711d3709163cd84c5f467bf837df29092435fc5a233
6
+ metadata.gz: 36b7c6bce97ad335d681fb7cf509229f2dddb68fd0cf65ea0ecb5531babf049da3094f8a968b43b36ed88079811dca637fe1ee092796991e3abab57fe8d9e7e0
7
+ data.tar.gz: 7792629c3ceff4a0c7d1e0efb38beb0c0a58ed6cd7ad3ddb5b7869c434dac72dede781400e768006a2db3d3f02fd67c7cc35c376069856839bf2b3f8128e4d6e
@@ -3,19 +3,84 @@
3
3
  ## HEAD Unreleased
4
4
 
5
5
  ### Bug/Fixes
6
+ ### Chores
7
+ ### Deprecation
8
+ ### Documentation
9
+ ### Feature Request
10
+ ### Update/add locales
11
+
12
+ ------------------------------------------------------------------------------
13
+
14
+ ## [v1.9.4](https://github.com/stympy/faker/tree/v1.9.4) (2019-06-19)
15
+
16
+ ### Bug/Fixes
17
+
18
+ - [PR #1605](https://github.com/stympy/faker/pull/1605) fix shallow_json for frozen_string_literal [@causztic](https://github.com/causztic)
19
+ - [PR #1597](https://github.com/stympy/faker/pull/1597) Fix broken test [@vbrazo](https://github.com/vbrazo)
20
+ - [PR #1578](https://github.com/stympy/faker/pull/1578) Namespaces should inherit Base [@vbrazo](https://github.com/vbrazo)
6
21
 
7
22
  ### Chores
8
23
 
24
+ - [PR #1626](https://github.com/stympy/faker/pull/1626) Update tty tree [@Zeragamba](https://github.com/Zeragamba)
25
+ - [PR #1559](https://github.com/stympy/faker/pull/1559) Fix name_with_middle field for en-AU [@psibi](https://github.com/psibi)
26
+ - [PR #1548](https://github.com/stympy/faker/pull/1548) Chore/improve pt-BR specs [@paulodiovani](https://github.com/paulodiovani)
27
+ - [PR #1542](https://github.com/stympy/faker/pull/1542) Fixed typos to the unreleased_README.md [@gkunwar](https://github.com/gkunwar)
28
+ - [PR #1541](https://github.com/stympy/faker/pull/1541) Add new categories to armenian [@hovikman](https://github.com/hovikman)
29
+
9
30
  ### Deprecation
10
31
 
32
+ - [PR #1549](https://github.com/stympy/faker/pull/1549) Faker::Movies::GratefulDead => Faker::Music::GratefulDead [@bcharna](https://github.com/bcharna)
33
+ - [PR #1538](https://github.com/stympy/faker/pull/1538) Add Sports namespace [@vbrazo](https://github.com/vbrazo)
34
+ - Deprecates `::Football`
35
+
11
36
  ### Documentation
12
37
 
38
+ - [PR #1636](https://github.com/stympy/faker/pull/1636) Fix default values for arguments in Lorem doc [@mikong](https://github.com/mikong)
39
+ - [PR #1617](https://github.com/stympy/faker/pull/1617) Fix Dota README [@TheSmartnik](https://github.com/TheSmartnik)
40
+ - [PR #1612](https://github.com/stympy/faker/pull/1612) Update returned example player [@ncallaway](https://github.com/ncallaway)
41
+ - [PR #1611](https://github.com/stympy/faker/pull/1611) Documentation error fix [@tomlockwood](https://github.com/tomlockwood)
42
+ - [PR #1575](https://github.com/stympy/faker/pull/1575) Add issues templates [@vbrazo](https://github.com/vbrazo)
43
+
13
44
  ### Feature Request
14
45
 
15
- ### Suggestion
46
+ - [PR #1631](https://github.com/stympy/faker/pull/1631) Faker::Tezos: add block faker [@akettal](https://github.com/akettal)
47
+ - [PR #1619](https://github.com/stympy/faker/pull/1619) Add Faker::Music::Opera [@Adsidera](https://github.com/Adsidera)
48
+ - [PR #1607](https://github.com/stympy/faker/pull/1607) Add Faker::Game with title, genre, and platform generators. [@connorshea](https://github.com/connorshea)
49
+ - [PR #1603](https://github.com/stympy/faker/pull/1603) Add Faker::Internet.uuid [@ianks](https://github.com/ianks)
50
+ - [PR #1560](https://github.com/stympy/faker/pull/1560) Add Faker::Creature::Horse [@wndxlori](https://github.com/wndxlori)
51
+ - [PR #1507](https://github.com/stympy/faker/pull/1507) Add CLI - Integrate fakerbot 🤖 [@akabiru](https://github.com/akabiru)
52
+ - [PR #1540](https://github.com/stympy/faker/pull/1540) Add sic_code to company #355 [@bruno-b-martins](https://github.com/bruno-b-martins)
53
+ - [PR #1537](https://github.com/stympy/faker/pull/1537) Adds the Faker::Sports::Basketball generator [@ecbrodie](https://github.com/ecbrodie)
54
+ - [PR #1520](https://github.com/stympy/faker/pull/1520) Allow subdomains for Internet.domain_name [@cianooooo](https://github.com/cianooooo)
16
55
 
17
56
  ### Update/add locales
18
57
 
58
+ - [PR #1629](https://github.com/stympy/faker/pull/1629) Fix sintax error on game.yml file [@ricardobsilva](https://github.com/ricardobsilva)
59
+ - [PR #1627](https://github.com/stympy/faker/pull/1627) add more data for Faker::Games [@BlazingRockStorm](https://github.com/BlazingRockStorm)
60
+ - [PR #1620](https://github.com/stympy/faker/pull/1620) Added Yuumi as a Champion [@eddorre](https://github.com/eddorre)
61
+ - [PR #1621](https://github.com/stympy/faker/pull/1621) Updated classes to match the changes that Blizzard rolled out late last year. Updated hero pool to add the latest two heroes added to the game. [@eddorre](https://github.com/eddorre)
62
+ - [PR #1602](https://github.com/stympy/faker/pull/1602) Remove white space, fix minor typos [@darylf](https://github.com/darylf)
63
+ - [PR #1595](https://github.com/stympy/faker/pull/1595) Fix accented French surnames [@Samy-Amar](https://github.com/Samy-Amar)
64
+ - [PR #1585](https://github.com/stympy/faker/pull/1585) Add Meepo to Dota heroes and quotes [@justinoue](https://github.com/justinoue)
65
+ - [PR #1594](https://github.com/stympy/faker/pull/1594) Changed Startrek to Stargate :) [@Defoncesko](https://github.com/Defoncesko)
66
+ - [PR #1591](https://github.com/stympy/faker/pull/1591) fix-chinese-city [@locez](https://github.com/locez)
67
+ - [PR #1592](https://github.com/stympy/faker/pull/1592) Add coffee country for Japanese [@schmurfy](https://github.com/schmurfy)
68
+ - [PR #1593](https://github.com/stympy/faker/pull/1593) removes duplicates in fr-CA and fr-CH [@schmurfy](https://github.com/schmurfy)
69
+ - [PR #1587](https://github.com/stympy/faker/pull/1587) Add ancient god for Japanese [@yizknn](https://github.com/yizknn)
70
+ - [PR #1582](https://github.com/stympy/faker/pull/1582) Add fighters and DLC to Faker::Games::SuperSmashBros [@boardfish](https://github.com/boardfish)
71
+ - [PR #1583](https://github.com/stympy/faker/pull/1583) updates to RuPaul [@notactuallypagemcconnell](https://github.com/notactuallypagemcconnell)
72
+ - [PR #1581](https://github.com/stympy/faker/pull/1581) add latest list of phish tunes from phish.net/song that are by the band and not covers [@notactuallypagemcconnell](https://github.com/notactuallypagemcconnell)
73
+ - [PR #1573](https://github.com/stympy/faker/pull/1573) Fix data of music albums [@sankichi92](https://github.com/sankichi92)
74
+ - [PR #1567](https://github.com/stympy/faker/pull/1567) Fix name_with_middle in Chinese locales [@rockymeza](https://github.com/rockymeza)
75
+ - [PR #1564](https://github.com/stympy/faker/pull/1564) Update League of legends content [@michebble](https://github.com/michebble)
76
+ - [PR #1558](https://github.com/stympy/faker/pull/1558) remove misspelling of Japanese [@michebble](https://github.com/michebble)
77
+ - [PR #1554](https://github.com/stympy/faker/pull/1554) Extend list of cryptocurrencies [@kamilbielawski](https://github.com/kamilbielawski)
78
+ - [PR #1552](https://github.com/stympy/faker/pull/1552) Fix subscription: Fix missing double quotes [@psibi](https://github.com/psibi)
79
+ - [PR #1551](https://github.com/stympy/faker/pull/1551) Yaml syntax for stargate.yml: Fix missing double quote [@psibi](https://github.com/psibi)
80
+ - [PR #1550](https://github.com/stympy/faker/pull/1550) Fix kpop - yaml syntax issue. Double quote is missing [@psibi](https://github.com/psibi)
81
+ - [PR #1545](https://github.com/stympy/faker/pull/1545) Remove trailing space from "kangaroo " & "gnu " translation in animals [@spikeheap](https://github.com/spikeheap)
82
+ - [PR #1543](https://github.com/stympy/faker/pull/1543) Add pt-BR genders [@fladson](https://github.com/fladson)
83
+
19
84
  ------------------------------------------------------------------------------
20
85
 
21
86
  ## [v1.9.3](https://github.com/stympy/faker/tree/v1.9.2) (2019-02-12)
data/README.md CHANGED
@@ -1,3 +1,4 @@
1
+
1
2
  ![logotype a happy-07](https://user-images.githubusercontent.com/36028424/40263395-4318481e-5b44-11e8-92e5-3dcc1ce169b3.png)
2
3
 
3
4
  # Faker
@@ -15,11 +16,14 @@ for the creation of this gem), having real-looking test data, and having your
15
16
  database populated with more than one or two records while you're doing
16
17
  development.
17
18
 
18
- - [Installing](#installing)
19
- - [Usage](#usage)
19
+ - [Faker](#faker)
20
+ - [NOTE](#note)
21
+ - [Installing](#installing)
22
+ - [Usage](#usage)
23
+ - [CLI](#cli)
20
24
  - [Ensuring unique values](#ensuring-unique-values)
21
25
  - [Deterministic Random](#deterministic-random)
22
- - [Generators](#generators)
26
+ - [Generators](#generators)
23
27
  - [Default](#default)
24
28
  - [Blockchain](#blockchain)
25
29
  - [Books](#books)
@@ -29,11 +33,12 @@ development.
29
33
  - [Movies](#movies)
30
34
  - [Music](#music)
31
35
  - [Quotes](#quotes)
32
- - [TV Shows](#tv-shows)
33
- - [Customization](#customization)
34
- - [Contributing](#contributing)
35
- - [Contact](#contact)
36
- - [License](#license)
36
+ - [Sports](#sports)
37
+ - [Tv Shows](#tv-shows)
38
+ - [Customization](#customization)
39
+ - [Contributing](#contributing)
40
+ - [Contact](#contact)
41
+ - [License](#license)
37
42
 
38
43
  ### NOTE
39
44
  * While Faker generates data at random, returned values are not guaranteed to be unique by default.
@@ -47,7 +52,7 @@ development.
47
52
  ```bash
48
53
  gem install faker
49
54
  ```
50
- Note: if you are getting a `uninitialized constant Faker::[some_class]` error, your version of the gem is behind the one documented here. To make sure that your gem is the one documented here, change the line in your gemfile to:
55
+ Note: if you are getting a `uninitialized constant Faker::[some_class]` error, your version of the gem is behind the one documented here. To make sure that your gem is the one documented here, change the line in your Gemfile to:
51
56
 
52
57
  ```ruby
53
58
  gem 'faker', :git => 'https://github.com/stympy/faker.git', :branch => 'master'
@@ -62,6 +67,14 @@ Faker::Name.name #=> "Christophe Bartell"
62
67
  Faker::Internet.email #=> "kirsten.greenholt@corkeryfisher.info"
63
68
  ```
64
69
 
70
+ ### CLI
71
+
72
+ Usage Instructions [available here](https://github.com/stympy/faker/blob/master/lib/cli/README.md)
73
+
74
+ ```bash
75
+ $ faker
76
+ ```
77
+
65
78
  ### Ensuring unique values
66
79
  Prefix your method call with `unique`. For example:
67
80
  ```ruby
@@ -218,8 +231,10 @@ gem 'faker', :git => 'https://github.com/stympy/faker.git', :branch => 'master'
218
231
  - [Faker::Creature::Animal](doc/creature/animal.md)
219
232
  - [Faker::Creature::Cat](doc/creature/cat.md)
220
233
  - [Faker::Creature::Dog](doc/creature/dog.md)
234
+ - [Faker::Creature::Horse](doc/creature/horse.md)
221
235
 
222
236
  ### Games
237
+ - [Faker::Game](doc/games/game.md)
223
238
  - [Faker::Games::Dota](doc/games/dota.md)
224
239
  - [Faker::Games::ElderScrolls](doc/games/elder_scrolls.md)
225
240
  - [Faker::Games::Fallout](doc/games/fallout.md)
@@ -245,7 +260,6 @@ gem 'faker', :git => 'https://github.com/stympy/faker.git', :branch => 'master'
245
260
  - [Faker::Movie](doc/movies/movie.md)
246
261
  - [Faker::Movies::BackToTheFuture](doc/movies/back_to_the_future.md)
247
262
  - [Faker::Movies::Ghostbusters](doc/movies/ghostbusters.md)
248
- - [Faker::Movies::GratefulDead](doc/movies/grateful_dead.md)
249
263
  - [Faker::Movies::HarryPotter](doc/movies/harry_potter.md)
250
264
  - [Faker::Movies::HitchhikersGuideToTheGalaxy](doc/movies/hitchhikers_guide_to_the_galaxy.md)
251
265
  - [Faker::Movies::Hobbit](doc/movies/hobbit.md)
@@ -257,6 +271,8 @@ gem 'faker', :git => 'https://github.com/stympy/faker.git', :branch => 'master'
257
271
 
258
272
  ### Music
259
273
  - [Faker::Music](doc/music/music.md)
274
+ - [Faker::Music::GratefulDead](doc/music/grateful_dead.md)
275
+ - [Faker::Music::Opera](doc/music/opera.md)
260
276
  - [Faker::Music::Phish](doc/music/phish.md)
261
277
  - [Faker::Music::RockBand](doc/music/rock_band.md)
262
278
  - [Faker::Music::UmphreysMcgee](doc/music/umphreys_mcgee.md)
@@ -265,6 +281,10 @@ gem 'faker', :git => 'https://github.com/stympy/faker.git', :branch => 'master'
265
281
  - [Faker::Quote](doc/quotes/quote.md)
266
282
  - [Faker::Quotes::Shakespeare](doc/quotes/shakespeare.md)
267
283
 
284
+ ### Sports
285
+ - [Faker::Sports::Basketball](doc/sports/basketball.md)
286
+ - [Faker::Sports::Football](doc/sports/football.md)
287
+
268
288
  ### Tv Shows
269
289
  - [Faker::TvShows::AquaTeenHungerForce](doc/tv_shows/aqua_teen_hunger_force.md)
270
290
  - [Faker::TvShows::BojackHorseman](doc/tv_shows/bojack_horseman.md)
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ lib_path = File.expand_path('../lib', __dir__)
5
+ $LOAD_PATH.unshift(lib_path) unless $LOAD_PATH.include?(lib_path)
6
+
7
+ require 'cli'
8
+
9
+ Signal.trap('INT') do
10
+ warn("\n#{caller.join("\n")}: interrupted")
11
+ exit(1)
12
+ end
13
+
14
+ begin
15
+ Faker::CLI::Base.start
16
+ rescue Faker::CLI::Base::Error => err
17
+ puts "ERROR: #{err.message}"
18
+ exit 1
19
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'thor'
4
+
5
+ require 'cli/commands/list'
6
+ require 'cli/commands/search'
7
+ require 'faker/version'
8
+
9
+ module Faker
10
+ module CLI
11
+ class Base < Thor
12
+ Error = Class.new(StandardError)
13
+ # Skip default deprecation warning output; the CLI will display that.
14
+ Gem::Deprecate.skip_during do
15
+ desc 'version', 'Faker version'
16
+ def version
17
+ puts "v#{Faker::VERSION}"
18
+ end
19
+ map %w[--version -v] => :version
20
+
21
+ desc 'list', 'List all Faker constants'
22
+ method_option :help, aliases: '-h', type: :boolean,
23
+ desc: 'Display usage information'
24
+ method_option :show_methods, aliases: '-m', type: :boolean, default: true,
25
+ desc: 'Display Faker constants with methods'
26
+ method_option :verbose, aliases: '-v', type: :boolean,
27
+ desc: 'Include sample Faker output'
28
+ def list(*)
29
+ if options[:help]
30
+ invoke :help, ['list']
31
+ else
32
+ Faker::CLI::Commands::List.new(options).execute
33
+ end
34
+ end
35
+
36
+ desc 'search [Faker]', 'Search Faker method(s)'
37
+ method_option :help, aliases: '-h', type: :boolean,
38
+ desc: 'Display usage information'
39
+ method_option :show_methods, aliases: '-m', type: :boolean, default: true,
40
+ desc: 'Display Faker constants with methods'
41
+ method_option :verbose, aliases: '-v', type: :boolean,
42
+ desc: 'Include sample Faker output'
43
+ def search(query)
44
+ if options[:help]
45
+ invoke :help, ['search']
46
+ else
47
+ Faker::CLI::Commands::Search.new(options).execute(query)
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,55 @@
1
+ # faker (cli)
2
+
3
+ ## Usage
4
+
5
+ 1.) Run a quick lookup
6
+
7
+ ```bash
8
+ $ faker search name
9
+ # Faker::SwordArtOnline
10
+ # └── real_name
11
+ # └── game_name
12
+ # Faker::Superhero
13
+ # └── name
14
+ # ....
15
+ ```
16
+
17
+ 2.) List methods
18
+
19
+ ```sh
20
+ $ faker list
21
+ # Faker::BackToTheFuture
22
+ # ├── quote
23
+ # ├── date
24
+ # └── character
25
+ # Faker::Finance
26
+ # └── credit_card
27
+ # ....
28
+ ```
29
+
30
+ `faker` also includes an option to display sample output via the `--verbose` or `-v` flag. :wink:
31
+
32
+ 3.)
33
+
34
+ ```sh
35
+ $ faker list -v
36
+ # Faker::Appliance
37
+ # ├── brand=> Whirlpool
38
+ # └── equipment=> Sump pump
39
+ # Faker::UmphreysMcgee
40
+ # └── song=> Headphones & Snowcones
41
+ $ faker search name -v
42
+ # Faker::App
43
+ # └── name=> Subin
44
+ # Faker::Address
45
+ # └── street_name=> Percy Landing
46
+ # ....
47
+ ```
48
+
49
+ ## Features! :sunglasses: :dancers:
50
+
51
+ - [x] List classes with methods E.g. Faker::FunnyName is displayed with `.name`,`.first_name` e.t.c.
52
+ - [x] Expand search to Faker::Base sub classes
53
+ - [x] Paginate results :book:
54
+
55
+ ![screenshot 2019-01-05 at 03 02 08](https://user-images.githubusercontent.com/17295175/50717135-59d85780-1096-11e9-8d0d-eca95646644d.jpg)
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'forwardable'
4
+
5
+ require_relative 'renderer'
6
+
7
+ module Faker
8
+ module CLI
9
+ class Command
10
+ extend Forwardable
11
+
12
+ def_delegators :command, :run
13
+ attr_reader :options
14
+
15
+ def initialize(options)
16
+ @options = options
17
+ end
18
+
19
+ def render(result, output)
20
+ Renderer.call(result, options, output)
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../command'
4
+ require_relative '../reflectors/list'
5
+
6
+ module Faker
7
+ module CLI
8
+ module Commands
9
+ class List < Command
10
+ def execute(output: $stdout)
11
+ result = Reflectors::List.call(options)
12
+ render(result, output)
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../command'
4
+ require_relative '../reflectors/search'
5
+
6
+ module Faker
7
+ module CLI
8
+ module Commands
9
+ class Search < Command
10
+ def execute(input, output: $stdout)
11
+ result = Reflectors::Search.call(input)
12
+ render(result, output)
13
+ end
14
+
15
+ private
16
+
17
+ def render(result, output)
18
+ return not_found(output) if result.empty?
19
+
20
+ super(result, output)
21
+ end
22
+
23
+ def not_found(output)
24
+ output.puts "\nSorry, we couldn't find a match 😢", "\n"
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'faker'
4
+
5
+ module Faker
6
+ module CLI
7
+ # Abstract `Faker` Reflector - introspects the `Faker` module
8
+ #
9
+ # @api private
10
+ # @abstract
11
+ #
12
+ class Reflector
13
+ Faker::Base.class_eval do
14
+ # Select `Faker` subclasses
15
+ # @return [Array] `Faker::Base` sub classes
16
+ def self.descendants
17
+ @descendants ||= ObjectSpace.each_object(Class).select do |klass|
18
+ klass < self
19
+ end
20
+ end
21
+
22
+ # Select public class methods
23
+ # @return [Array] public methods
24
+ def self.my_singleton_methods
25
+ singleton_methods(false).select { |m| respond_to?(m) }
26
+ end
27
+ end
28
+
29
+ attr_reader :descendants_with_methods
30
+
31
+ def initialize(*)
32
+ @descendants_with_methods = Hash.new { |h, k| h[k] = [] }
33
+ end
34
+
35
+ protected
36
+
37
+ def store(descendant, methods)
38
+ return if methods.empty?
39
+
40
+ descendants_with_methods[descendant].concat(methods)
41
+ end
42
+
43
+ def faker_descendants
44
+ @faker_descendants ||= Faker::Base.descendants
45
+ end
46
+ end
47
+ end
48
+ end