faker 2.11.0 → 2.17.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.
Files changed (233) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +372 -13
  3. data/History.md +4 -4
  4. data/README.md +27 -3
  5. data/lib/faker/blockchain/aeternity.rb +4 -4
  6. data/lib/faker/blockchain/bitcoin.rb +2 -2
  7. data/lib/faker/blockchain/tezos.rb +30 -2
  8. data/lib/faker/books/dune.rb +15 -2
  9. data/lib/faker/books/lovecraft.rb +8 -4
  10. data/lib/faker/default/address.rb +35 -5
  11. data/lib/faker/default/app.rb +1 -1
  12. data/lib/faker/default/avatar.rb +1 -1
  13. data/lib/faker/default/bank.rb +96 -3
  14. data/lib/faker/default/barcode.rb +165 -0
  15. data/lib/faker/default/beer.rb +3 -3
  16. data/lib/faker/default/blood.rb +48 -0
  17. data/lib/faker/default/business.rb +1 -1
  18. data/lib/faker/default/camera.rb +46 -0
  19. data/lib/faker/default/cannabis.rb +10 -0
  20. data/lib/faker/default/chile_rut.rb +47 -3
  21. data/lib/faker/default/chuck_norris.rb +1 -0
  22. data/lib/faker/default/code.rb +98 -17
  23. data/lib/faker/default/commerce.rb +74 -11
  24. data/lib/faker/default/company.rb +96 -11
  25. data/lib/faker/default/compass.rb +135 -0
  26. data/lib/faker/default/computer.rb +63 -0
  27. data/lib/faker/default/construction.rb +54 -0
  28. data/lib/faker/default/cosmere.rb +90 -0
  29. data/lib/faker/default/crypto.rb +4 -4
  30. data/lib/faker/default/crypto_coin.rb +45 -0
  31. data/lib/faker/default/date.rb +16 -12
  32. data/lib/faker/default/driving_licence.rb +67 -1
  33. data/lib/faker/default/drone.rb +332 -0
  34. data/lib/faker/default/educator.rb +13 -0
  35. data/lib/faker/default/faker_adjective.rb +35 -0
  36. data/lib/faker/default/file.rb +53 -2
  37. data/lib/faker/default/finance.rb +45 -0
  38. data/lib/faker/default/food.rb +1 -1
  39. data/lib/faker/default/gender.rb +1 -1
  40. data/lib/faker/default/hipster.rb +107 -10
  41. data/lib/faker/default/id_number.rb +88 -2
  42. data/lib/faker/default/internet.rb +266 -12
  43. data/lib/faker/default/internet_http.rb +48 -0
  44. data/lib/faker/default/invoice.rb +33 -6
  45. data/lib/faker/default/json.rb +61 -5
  46. data/lib/faker/default/lorem.rb +160 -5
  47. data/lib/faker/default/lorem_flickr.rb +67 -7
  48. data/lib/faker/default/lorem_pixel.rb +23 -0
  49. data/lib/faker/default/markdown.rb +91 -0
  50. data/lib/faker/default/measurement.rb +93 -2
  51. data/lib/faker/default/military.rb +26 -0
  52. data/lib/faker/default/mountain.rb +33 -0
  53. data/lib/faker/default/name.rb +98 -0
  54. data/lib/faker/default/nhs.rb +19 -0
  55. data/lib/faker/default/number.rb +28 -13
  56. data/lib/faker/default/omniauth.rb +62 -14
  57. data/lib/faker/default/phone_number.rb +88 -5
  58. data/lib/faker/default/placeholdit.rb +23 -1
  59. data/lib/faker/default/relationship.rb +1 -1
  60. data/lib/faker/default/slack_emoji.rb +81 -0
  61. data/lib/faker/default/south_africa.rb +90 -0
  62. data/lib/faker/default/space.rb +1 -1
  63. data/lib/faker/default/string.rb +20 -3
  64. data/lib/faker/default/stripe.rb +64 -3
  65. data/lib/faker/default/twitter.rb +35 -0
  66. data/lib/faker/default/types.rb +84 -3
  67. data/lib/faker/default/university.rb +45 -0
  68. data/lib/faker/default/vehicle.rb +184 -4
  69. data/lib/faker/default/verb.rb +45 -0
  70. data/lib/faker/default/world_cup.rb +4 -4
  71. data/lib/faker/fantasy/tolkien.rb +67 -0
  72. data/lib/faker/games/clash_of_clans.rb +48 -0
  73. data/lib/faker/games/control.rb +113 -0
  74. data/lib/faker/games/dnd.rb +136 -0
  75. data/lib/faker/games/elder_scrolls.rb +26 -0
  76. data/lib/faker/games/heroes.rb +13 -0
  77. data/lib/faker/games/heroes_of_the_storm.rb +16 -5
  78. data/lib/faker/games/minecraft.rb +113 -0
  79. data/lib/faker/games/street_fighter.rb +61 -0
  80. data/lib/faker/games/super_mario.rb +48 -0
  81. data/lib/faker/games/touhou.rb +75 -0
  82. data/lib/faker/games/warhammer_fantasy.rb +74 -0
  83. data/lib/faker/games/world_of_warcraft.rb +26 -1
  84. data/lib/faker/japanese_media/conan.rb +48 -0
  85. data/lib/faker/japanese_media/doraemon.rb +48 -0
  86. data/lib/faker/japanese_media/dragon_ball.rb +26 -0
  87. data/lib/faker/japanese_media/naruto.rb +61 -0
  88. data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
  89. data/lib/faker/movies/departed.rb +49 -0
  90. data/lib/faker/movies/hobbit.rb +4 -4
  91. data/lib/faker/movies/how_to_train_your_dragon.rb +48 -0
  92. data/lib/faker/movies/lord_of_the_rings.rb +3 -3
  93. data/lib/faker/movies/movie.rb +13 -0
  94. data/lib/faker/movies/room.rb +63 -0
  95. data/lib/faker/movies/star_wars.rb +74 -2
  96. data/lib/faker/music/hiphop.rb +48 -0
  97. data/lib/faker/music/opera.rb +237 -1
  98. data/lib/faker/music/pearl_jam.rb +50 -0
  99. data/lib/faker/music/phish.rb +27 -1
  100. data/lib/faker/music/prince.rb +64 -0
  101. data/lib/faker/music/rock_band.rb +12 -0
  102. data/lib/faker/music/rush.rb +37 -0
  103. data/lib/faker/music/show.rb +49 -0
  104. data/lib/faker/quotes/quote.rb +80 -1
  105. data/lib/faker/quotes/rajnikanth.rb +1 -0
  106. data/lib/faker/quotes/shakespeare.rb +70 -0
  107. data/lib/faker/sports/volleyball.rb +74 -0
  108. data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +13 -0
  109. data/lib/faker/tv_shows/big_bang_theory.rb +37 -0
  110. data/lib/faker/tv_shows/buffy.rb +17 -4
  111. data/lib/faker/tv_shows/dr_who.rb +1 -1
  112. data/lib/faker/tv_shows/final_space.rb +51 -0
  113. data/lib/faker/tv_shows/futurama.rb +65 -0
  114. data/lib/faker/tv_shows/simpsons.rb +14 -0
  115. data/lib/faker/tv_shows/suits.rb +37 -0
  116. data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +17 -4
  117. data/lib/faker/version.rb +1 -1
  118. data/lib/faker.rb +28 -23
  119. data/lib/helpers/base58.rb +1 -1
  120. data/lib/helpers/char.rb +22 -27
  121. data/lib/helpers/unique_generator.rb +0 -2
  122. data/lib/locales/de-AT.yml +4 -2
  123. data/lib/locales/de-CH.yml +1696 -1
  124. data/lib/locales/de.yml +4 -2
  125. data/lib/locales/en/address.yml +2 -0
  126. data/lib/locales/en/adjective.yml +179 -0
  127. data/lib/locales/en/animal.yml +1 -1
  128. data/lib/locales/en/aqua_teen_hunger_force.yml +33 -1
  129. data/lib/locales/en/bank.yml +1 -1
  130. data/lib/locales/en/barcode.yml +24 -0
  131. data/lib/locales/en/big_bang_theory.yml +38 -0
  132. data/lib/locales/en/blood.yml +13 -0
  133. data/lib/locales/en/buffy.yml +1 -1
  134. data/lib/locales/en/camera.yml +611 -0
  135. data/lib/locales/en/clash_of_clan.yml +101 -0
  136. data/lib/locales/en/company.yml +2 -2
  137. data/lib/locales/en/computer.yml +36 -0
  138. data/lib/locales/en/conan.yml +171 -0
  139. data/lib/locales/en/control.yml +247 -0
  140. data/lib/locales/en/demographic.yml +218 -5
  141. data/lib/locales/en/departed.yml +50 -0
  142. data/lib/locales/en/device.yml +112 -4
  143. data/lib/locales/en/dnd.yml +451 -0
  144. data/lib/locales/en/doraemon.yml +286 -0
  145. data/lib/locales/en/dota.yml +531 -63
  146. data/lib/locales/en/dragon_ball.yml +243 -1
  147. data/lib/locales/en/driving_license.yml +181 -0
  148. data/lib/locales/en/drone.yml +95 -0
  149. data/lib/locales/en/dune.yml +401 -131
  150. data/lib/locales/en/educator.yml +6 -0
  151. data/lib/locales/en/elder_scrolls.yml +583 -9
  152. data/lib/locales/en/fallout.yml +311 -133
  153. data/lib/locales/en/final_space.yml +37 -0
  154. data/lib/locales/en/finance.yml +53 -0
  155. data/lib/locales/en/football.yml +3 -3
  156. data/lib/locales/en/fresh_prince_of_bel_air.yml +1 -1
  157. data/lib/locales/en/futurama.yml +344 -0
  158. data/lib/locales/en/half_life.yml +84 -3
  159. data/lib/locales/en/heroes.yml +408 -3
  160. data/lib/locales/en/heroes_of_the_storm.yml +131 -4
  161. data/lib/locales/en/house.yml +1 -1
  162. data/lib/locales/en/how_to_train_your_dragon.yml +174 -0
  163. data/lib/locales/en/jack_handey.yml +54 -0
  164. data/lib/locales/en/league_of_legends.yml +285 -6
  165. data/lib/locales/en/lebowski.yml +1 -1
  166. data/lib/locales/en/military.yml +179 -5
  167. data/lib/locales/en/minecraft.yml +663 -0
  168. data/lib/locales/en/mountain.yml +158 -0
  169. data/lib/locales/en/movie.yml +192 -1
  170. data/lib/locales/en/music.yml +451 -29
  171. data/lib/locales/en/myst.yml +87 -31
  172. data/lib/locales/en/name.yml +5 -4
  173. data/lib/locales/en/naruto.yml +231 -0
  174. data/lib/locales/en/one_piece.yml +2 -2
  175. data/lib/locales/en/opera.yml +168 -0
  176. data/lib/locales/en/overwatch.yml +2650 -2622
  177. data/lib/locales/en/pearl_jam.yml +213 -0
  178. data/lib/locales/en/phish.yml +392 -1
  179. data/lib/locales/en/pokemon.yml +417 -4
  180. data/lib/locales/en/prince.yml +227 -0
  181. data/lib/locales/en/quote.yml +692 -163
  182. data/lib/locales/en/rock_band.yml +1 -0
  183. data/lib/locales/en/room.yml +68 -0
  184. data/lib/locales/en/rush.yml +32 -0
  185. data/lib/locales/en/shakespeare.yml +21 -24
  186. data/lib/locales/en/show.yml +597 -0
  187. data/lib/locales/en/simpsons.yml +668 -0
  188. data/lib/locales/en/source.yml +30 -0
  189. data/lib/locales/en/star_trek.yml +1 -1
  190. data/lib/locales/en/star_wars.yml +568 -220
  191. data/lib/locales/en/street_fighter.yml +1524 -0
  192. data/lib/locales/en/studio_ghibli.yml +107 -0
  193. data/lib/locales/en/suits.yml +45 -0
  194. data/lib/locales/en/super_mario.yml +58 -0
  195. data/lib/locales/en/super_smash_bros.yml +18 -4
  196. data/lib/locales/en/tolkien.yml +2453 -0
  197. data/lib/locales/en/touhou.yml +839 -0
  198. data/lib/locales/en/volleyball.yml +501 -0
  199. data/lib/locales/en/warhammer_fantasy.yml +582 -0
  200. data/lib/locales/en/witcher.yml +389 -7
  201. data/lib/locales/en/world_of_warcraft.yml +122 -4
  202. data/lib/locales/en/zelda.yml +962 -4
  203. data/lib/locales/en-AU.yml +50 -10
  204. data/lib/locales/en-CA.yml +2 -0
  205. data/lib/locales/en-GB.yml +1 -1
  206. data/lib/locales/en-IND.yml +2 -1
  207. data/lib/locales/en-MS.yml +2 -1
  208. data/lib/locales/en-NEP.yml +4 -1
  209. data/lib/locales/en-NZ.yml +3 -1
  210. data/lib/locales/en-PAK.yml +2 -1
  211. data/lib/locales/en-SG.yml +2 -1
  212. data/lib/locales/en-US.yml +36 -10
  213. data/lib/locales/en-au-ocker.yml +2 -1
  214. data/lib/locales/en.yml +0 -3
  215. data/lib/locales/es-AR.yml +4603 -0
  216. data/lib/locales/es.yml +56 -0
  217. data/lib/locales/fi-FI.yml +1 -1
  218. data/lib/locales/fr-CA.yml +21 -5
  219. data/lib/locales/fr-CH.yml +2 -2
  220. data/lib/locales/fr.yml +12 -6
  221. data/lib/locales/id.yml +3 -1
  222. data/lib/locales/it.yml +2 -1
  223. data/lib/locales/ja.yml +18 -1
  224. data/lib/locales/ko.yml +94 -2
  225. data/lib/locales/nb-NO.yml +4 -2
  226. data/lib/locales/pt-BR.yml +2 -1
  227. data/lib/locales/pt.yml +3 -1
  228. data/lib/locales/ru.yml +3 -1
  229. data/lib/locales/sk.yml +4 -2
  230. data/lib/locales/uk.yml +2 -0
  231. metadata +90 -23
  232. data/lib/locales/en/hobbit.yml +0 -19
  233. data/lib/locales/en/lord_of_the_rings.yml +0 -6
@@ -4,34 +4,104 @@ module Faker
4
4
  class Quotes
5
5
  class Shakespeare < Base
6
6
  class << self
7
+ ##
8
+ # Produces a Shakespeare quote from Hamlet.
9
+ #
10
+ # @return [String]
11
+ #
12
+ # @example
13
+ # Faker::Quotes::Shakespeare.hamlet_quote # => "To be, or not to be: that is the question."
14
+ #
15
+ # @faker.version 1.9.2
7
16
  def hamlet_quote
8
17
  sample(hamlet)
9
18
  end
10
19
 
20
+ ##
21
+ # Produces a Shakespeare quote from As You Like It.
22
+ #
23
+ # @return [String]
24
+ #
25
+ # @example
26
+ # Faker::Quotes::Shakespeare.as_you_like_it_quote # => "Can one desire too much of a good thing?."
27
+ #
28
+ # @faker.version 1.9.2
11
29
  def as_you_like_it_quote
12
30
  sample(as_you_like_it)
13
31
  end
14
32
 
33
+ ##
34
+ # Produces a Shakespeare quote from King Richard III.
35
+ #
36
+ # @return [String]
37
+ #
38
+ # @example
39
+ # Faker::Quotes::Shakespeare.king_richard_iii_quote # => "Now is the winter of our discontent."
40
+ #
41
+ # @faker.version 1.9.2
15
42
  def king_richard_iii_quote
16
43
  sample(king_richard_iii)
17
44
  end
18
45
 
46
+ ##
47
+ # Produces a Shakespeare quote from Romeo And Juliet.
48
+ #
49
+ # @return [String]
50
+ #
51
+ # @example
52
+ # Faker::Quotes::Shakespeare.romeo_and_juliet_quote # => "O Romeo, Romeo! wherefore art thou Romeo?."
53
+ #
54
+ # @faker.version 1.9.2
19
55
  def romeo_and_juliet_quote
20
56
  sample(romeo_and_juliet)
21
57
  end
22
58
 
59
+ ##
60
+ # Generates quote from Hamlet
61
+ #
62
+ # @return [String]
63
+ #
64
+ # @example
65
+ # Faker::Quotes::Shakespeare.hamlet #=> "A little more than kin, and less than kind."
66
+ #
67
+ # @faker.version 1.9.2
23
68
  def hamlet
24
69
  fetch('shakespeare.hamlet')
25
70
  end
26
71
 
72
+ ##
73
+ # Generates quote from 'As you like it!'
74
+ #
75
+ # @return [String]
76
+ #
77
+ # @example
78
+ # Faker::Quotes::Shakespeare.as_you_like_it #=> "How bitter a thing it is to look into happiness through another man's eyes!"
79
+ #
80
+ # @faker.version 1.9.2
27
81
  def as_you_like_it
28
82
  fetch('shakespeare.as_you_like_it')
29
83
  end
30
84
 
85
+ ##
86
+ # Returns quote from 'King Rechard III'
87
+ #
88
+ # @return [String]
89
+ #
90
+ # @example
91
+ # Faker::Quotes::Shakespeare #=> "The king's name is a tower of strength."
31
92
  def king_richard_iii
32
93
  fetch('shakespeare.king_richard_iii')
33
94
  end
34
95
 
96
+ ##
97
+ # Quote from 'Romeo and Juliet'
98
+ #
99
+ # @return [String]
100
+ #
101
+ # @example
102
+ # Faker::Quotes::Shakespeare.romeo_and_juliet #=> "Wisely and slow; they stumble that run fast."
103
+ #
104
+ # @faker.version 1.9.2
35
105
  def romeo_and_juliet
36
106
  fetch('shakespeare.romeo_and_juliet')
37
107
  end
@@ -0,0 +1,74 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Sports
5
+ class Volleyball < Base
6
+ class << self
7
+ ##
8
+ # Produces the name of a volleyball team.
9
+ #
10
+ # @return [String]
11
+ #
12
+ # @example
13
+ # Faker::Sports::Volleyball.team #=> "Leo Shoes Modena"
14
+ #
15
+ # @faker.version next
16
+ def team
17
+ fetch('volleyball.team')
18
+ end
19
+
20
+ ##
21
+ # Produces the name of a volleyball player.
22
+ #
23
+ # @return [String]
24
+ #
25
+ # @example
26
+ # Faker::Sports::Volleyball.player #=> "Saeid Marouf"
27
+ #
28
+ # @faker.version next
29
+ def player
30
+ fetch('volleyball.player')
31
+ end
32
+
33
+ ##
34
+ # Produces the name of a volleyball coach.
35
+ #
36
+ # @return [String]
37
+ #
38
+ # @example
39
+ # Faker::Sports::Volleyball.coach #=> "Russ Rose"
40
+ #
41
+ # @faker.version next
42
+ def coach
43
+ fetch('volleyball.coach')
44
+ end
45
+
46
+ ##
47
+ # Produces a position in volleyball.
48
+ #
49
+ # @return [String]
50
+ #
51
+ # @example
52
+ # Faker::Sports::Volleyball.position #=> "Middle blocker"
53
+ #
54
+ # @faker.version next
55
+ def position
56
+ fetch('volleyball.position')
57
+ end
58
+
59
+ ##
60
+ # Produces a formation in volleyball.
61
+ #
62
+ # @return [String]
63
+ #
64
+ # @example
65
+ # Faker::Sports::Volleyball.formation #=> "4-2"
66
+ #
67
+ # @faker.version next
68
+ def formation
69
+ fetch('volleyball.formation')
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
@@ -18,6 +18,19 @@ module Faker
18
18
  def character
19
19
  fetch('aqua_teen_hunger_force.character')
20
20
  end
21
+
22
+ ##
23
+ # Produces a perl of great ATHF wisdom
24
+ #
25
+ # @return [String]
26
+ #
27
+ # @example
28
+ # Faker::TvShows::AquaTeenHungerForce.quote #=> "Friendship ain't about trust. Friendship's about nunchucks."
29
+ #
30
+ # @faker.version 2.13.0
31
+ def quote
32
+ fetch('aqua_teen_hunger_force.quote')
33
+ end
21
34
  end
22
35
  end
23
36
  end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class TvShows
5
+ class BigBangTheory < Base
6
+ flexible :big_bang_theory
7
+
8
+ class << self
9
+ ##
10
+ # Produces a character from Big Bang Theory
11
+ #
12
+ # @return [String]
13
+ #
14
+ # @example
15
+ # Faker::TvShows::BigBangTheory.character #=> "Sheldon Cooper"
16
+ #
17
+ # @faker.version 2.13.0
18
+ def character
19
+ fetch('big_bang_theory.characters')
20
+ end
21
+
22
+ ##
23
+ # Produces a quote from Bing Bang Theory
24
+ #
25
+ # @return [String]
26
+ #
27
+ # @example
28
+ # Faker::TvShows::BigBangTheory.quote #=> "I'm not crazy. My mother had me tested."
29
+ #
30
+ # @faker.version 2.13.0
31
+ def quote
32
+ fetch('big_bang_theory.quotes')
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -33,17 +33,30 @@ module Faker
33
33
  end
34
34
 
35
35
  ##
36
- # Produces a celebrity from Buffy the Vampire Slayer.
36
+ # Produces a actor from Buffy the Vampire Slayer.
37
+ #
38
+ # @return [String]
39
+ #
40
+ # @example
41
+ # Faker::TvShows::Buffy.actor #=> "John Ritter"
42
+ #
43
+ # @faker.version next
44
+ def actor
45
+ fetch('buffy.actors')
46
+ end
47
+
48
+ ##
49
+ # Produces a actor from Buffy the Vampire Slayer.
37
50
  #
38
51
  # @return [String]
39
52
  #
40
53
  # @example
41
54
  # Faker::TvShows::Buffy.celebrity #=> "John Ritter"
42
55
  #
56
+ # @deprecated Use the `actor` method instead.
57
+ #
43
58
  # @faker.version 1.9.2
44
- def celebrity
45
- fetch('buffy.celebrities')
46
- end
59
+ alias celebrity actor
47
60
 
48
61
  ##
49
62
  # Produces a big bad from Buffy the Vampire Slayer.
@@ -79,7 +79,7 @@ module Faker
79
79
  # @example
80
80
  # Faker::TvShows::DrWho.villain #=> "The Master"
81
81
  #
82
- # @faker.version next
82
+ # @faker.version 2.13.0
83
83
  def villain
84
84
  fetch('dr_who.villains')
85
85
  end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class TvShows
5
+ class FinalSpace < Base
6
+ flexible :final_space
7
+
8
+ class << self
9
+ ##
10
+ # Produces a character from Final Space.
11
+ #
12
+ # @return [String]
13
+ #
14
+ # @example
15
+ # Faker::TvShows::FinalSpace.character #=> "Gary Goodspeed"
16
+ #
17
+ # @faker.version next
18
+ def character
19
+ fetch('final_space.characters')
20
+ end
21
+
22
+ ##
23
+ # Produces a vehicle from Final Space.
24
+ #
25
+ # @return [String]
26
+ #
27
+ # @example
28
+ # Faker::TvShows::FinalSpace.vehicle #=> "Imperium Cruiser"
29
+ #
30
+ # @faker.version next
31
+ def vehicle
32
+ fetch('final_space.vehicles')
33
+ end
34
+
35
+ ##
36
+ # Produces a quote from Final Space.
37
+ #
38
+ # @return [String]
39
+ #
40
+ # @example
41
+ # Faker::TvShows::FinalSpace.quote
42
+ # #=> "It's an alien on my face! It's an alien on my...It's a space alien!"
43
+ #
44
+ # @faker.version next
45
+ def quote
46
+ fetch('final_space.quotes')
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class TvShows
5
+ class Futurama < Base
6
+ flexible :futurama
7
+
8
+ class << self
9
+ ##
10
+ # Produces a character from Futurama.
11
+ #
12
+ # @return [String]
13
+ #
14
+ # @example
15
+ # Faker::TvShows::Futurama.character #=> "Amy Wong"
16
+ #
17
+ # @faker.version 2.13.0
18
+ def character
19
+ fetch('futurama.characters')
20
+ end
21
+
22
+ ##
23
+ # Produces a location from Futurama.
24
+ #
25
+ # @return [String]
26
+ #
27
+ # @example
28
+ # Faker::TvShows::Futurama.location #=> "Wormulon"
29
+ #
30
+ # @faker.version 2.13.0
31
+ def location
32
+ fetch('futurama.locations')
33
+ end
34
+
35
+ ##
36
+ # Produces a quote from Futurama.
37
+ #
38
+ # @return [String]
39
+ #
40
+ # @example
41
+ # Faker::TvShows::Futurama.quote
42
+ # #=> "Ugh, it's like a party in my mouth & everyone's throwing up."
43
+ #
44
+ # @faker.version 2.13.0
45
+ def quote
46
+ fetch('futurama.quotes')
47
+ end
48
+
49
+ ##
50
+ # Produces a catchphrase from Hermes Conrad.
51
+ #
52
+ # @return [String]
53
+ #
54
+ # @example
55
+ # Faker::TvShows::Futurama.hermes_catchphrase
56
+ # #=> "Great foo of bar!"
57
+ #
58
+ # @faker.version 2.13.0
59
+ def hermes_catchphrase
60
+ fetch('futurama.hermes_catchphrases')
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
@@ -45,6 +45,20 @@ module Faker
45
45
  def quote
46
46
  fetch('simpsons.quotes')
47
47
  end
48
+
49
+ ##
50
+ # Produces an episode title from The Simpsons.
51
+ #
52
+ # @return [String]
53
+ #
54
+ # @example
55
+ # Faker::TvShows::Simpsons.episode_title
56
+ # #=> "Two Cars in Every Garage and Three Eyes on Every Fish"
57
+ #
58
+ # @faker.version 2.13.0
59
+ def episode_title
60
+ fetch('simpsons.episode_titles')
61
+ end
48
62
  end
49
63
  end
50
64
  end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class TvShows
5
+ class Suits < Base
6
+ flexible :suits
7
+
8
+ class << self
9
+ ##
10
+ # Produces a character from Suits.
11
+ #
12
+ # @return [String]
13
+ #
14
+ # @example
15
+ # Faker::TvShows::Suits.character #=> "Harvey Specter"
16
+ #
17
+ # @faker.version 2.13.0
18
+ def character
19
+ fetch('suits.characters')
20
+ end
21
+
22
+ ##
23
+ # Produces a quote from Suits.
24
+ #
25
+ # @return [String]
26
+ #
27
+ # @example
28
+ # Faker::TvShows::Suits.quote #=> "Don't play the odds, play the man."
29
+ #
30
+ # @faker.version 2.13.0
31
+ def quote
32
+ fetch('suits.quotes')
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -20,17 +20,30 @@ module Faker
20
20
  end
21
21
 
22
22
  ##
23
- # Produces a celebrity from The Fresh Prince of Bel-Air.
23
+ # Produces a actor from The Fresh Prince of Bel-Air.
24
+ #
25
+ # @return [String]
26
+ #
27
+ # @example
28
+ # Faker::TvShows::TheFreshPrinceOfBelAir.actor #=> "Quincy Jones"
29
+ #
30
+ # @faker.version next
31
+ def actor
32
+ fetch('the_fresh_prince_of_bel_air.actors')
33
+ end
34
+
35
+ ##
36
+ # Produces a actor from The Fresh Prince of Bel-Air.
24
37
  #
25
38
  # @return [String]
26
39
  #
27
40
  # @example
28
41
  # Faker::TvShows::TheFreshPrinceOfBelAir.celebrity #=> "Quincy Jones"
29
42
  #
43
+ # @deprecated Use the `actor` method instead.
44
+ #
30
45
  # @faker.version 1.8.3
31
- def celebrity
32
- fetch('the_fresh_prince_of_bel_air.celebrities')
33
- end
46
+ alias celebrity actor
34
47
 
35
48
  ##
36
49
  # Produces a quote from The Fresh Prince of Bel-Air.
data/lib/faker/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Faker #:nodoc:
4
- VERSION = '2.11.0'
4
+ VERSION = '2.17.0'
5
5
  end
data/lib/faker.rb CHANGED
@@ -2,29 +2,26 @@
2
2
 
3
3
  mydir = __dir__
4
4
 
5
- begin
6
- require 'psych'
7
- end
8
-
5
+ require 'psych'
9
6
  require 'i18n'
10
7
  require 'set' # Fixes a bug in i18n 0.6.11
11
8
 
12
- Dir.glob(File.join(File.dirname(__FILE__), 'helpers', '*.rb')).sort.each { |file| require file }
9
+ Dir.glob(File.join(mydir, 'helpers', '*.rb')).sort.each { |file| require file }
13
10
 
14
11
  I18n.load_path += Dir[File.join(mydir, 'locales', '**/*.yml')]
15
12
  I18n.reload! if I18n.backend.initialized?
16
13
 
17
14
  module Faker
18
- class Config
15
+ module Config
19
16
  @locale = nil
20
17
  @random = nil
21
18
 
22
19
  class << self
23
- attr_writer :locale
24
- attr_writer :random
20
+ attr_writer :locale, :random
25
21
 
26
22
  def locale
27
- @locale || I18n.locale
23
+ # Because I18n.locale defaults to :en, if we don't have :en in our available_locales, errors will happen
24
+ @locale || (I18n.available_locales.include?(I18n.locale) ? I18n.locale : I18n.available_locales.first)
28
25
  end
29
26
 
30
27
  def own_locale
@@ -32,7 +29,7 @@ module Faker
32
29
  end
33
30
 
34
31
  def random
35
- @random || Random::DEFAULT
32
+ @random || Random.new
36
33
  end
37
34
  end
38
35
  end
@@ -83,13 +80,13 @@ module Faker
83
80
  def regexify(reg)
84
81
  reg = reg.source if reg.respond_to?(:source) # Handle either a Regexp or a String that looks like a Regexp
85
82
  reg
86
- .gsub(%r{^\/?\^?}, '').gsub(%r{\$?\/?$}, '') # Ditch the anchors
83
+ .gsub(%r{^/?\^?}, '').gsub(%r{\$?/?$}, '') # Ditch the anchors
87
84
  .gsub(/\{(\d+)\}/, '{\1,\1}').gsub(/\?/, '{0,1}') # All {2} become {2,2} and ? become {0,1}
88
85
  .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]
89
- .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)
86
+ .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)
90
87
  .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
91
- .gsub(/\((.*?)\)/) { |match| sample(match.gsub(/[\(\)]/, '').split('|')) } # (this|that) becomes 'this' or 'that'
92
- .gsub(/\[([^\]]+)\]/) { |match| match.gsub(/(\w\-\w)/) { |range| sample(Array(Range.new(*range.split('-')))) } } # All A-Z inside of [] become C (or X, or whatever)
88
+ .gsub(/\((.*?)\)/) { |match| sample(match.gsub(/[()]/, '').split('|')) } # (this|that) becomes 'this' or 'that'
89
+ .gsub(/\[([^\]]+)\]/) { |match| match.gsub(/(\w-\w)/) { |range| sample(Array(Range.new(*range.split('-')))) } } # All A-Z inside of [] become C (or X, or whatever)
93
90
  .gsub(/\[([^\]]+)\]/) { |_match| sample(Regexp.last_match(1).split('')) } # All [ABC] become B (or A or C)
94
91
  .gsub('\d') { |_match| sample(Numbers) }
95
92
  .gsub('\w') { |_match| sample(Letters) }
@@ -99,7 +96,7 @@ module Faker
99
96
  # with an array of values and selecting one of them.
100
97
  def fetch(key)
101
98
  fetched = sample(translate("faker.#{key}"))
102
- if fetched&.match(%r{^\/}) && fetched&.match(%r{\/$}) # A regex
99
+ if fetched&.match(%r{^/}) && fetched&.match(%r{/$}) # A regex
103
100
  regexify(fetched)
104
101
  else
105
102
  fetched
@@ -111,7 +108,7 @@ module Faker
111
108
  def fetch_all(key)
112
109
  fetched = translate("faker.#{key}")
113
110
  fetched = fetched.last if fetched.size <= 1
114
- if !fetched.respond_to?(:sample) && fetched.match(%r{^\/}) && fetched.match(%r{\/$}) # A regex
111
+ if !fetched.respond_to?(:sample) && fetched.match(%r{^/}) && fetched.match(%r{/$}) # A regex
115
112
  regexify(fetched)
116
113
  else
117
114
  fetched
@@ -123,7 +120,7 @@ module Faker
123
120
  # formatted translation: e.g., "#{first_name} #{last_name}".
124
121
  def parse(key)
125
122
  fetched = fetch(key)
126
- parts = fetched.scan(/(\(?)#\{([A-Za-z]+\.)?([^\}]+)\}([^#]+)?/).map do |prefix, kls, meth, etc|
123
+ parts = fetched.scan(/(\(?)#\{([A-Za-z]+\.)?([^}]+)\}([^#]+)?/).map do |prefix, kls, meth, etc|
127
124
  # If the token had a class Prefix (e.g., Name.first_name)
128
125
  # grab the constant, otherwise use self
129
126
  cls = kls ? Faker.const_get(kls.chop) : self
@@ -132,7 +129,7 @@ module Faker
132
129
  # In either case the information will be retained for reconstruction of the string.
133
130
  text = prefix
134
131
 
135
- # If the class has the method, call it, otherwise fetch the transation
132
+ # If the class has the method, call it, otherwise fetch the translation
136
133
  # (e.g., faker.phone_number.area_code)
137
134
  text += if cls.respond_to?(meth)
138
135
  cls.send(meth)
@@ -167,12 +164,12 @@ module Faker
167
164
  end
168
165
 
169
166
  # Executes block with given locale set.
170
- def with_locale(tmp_locale = nil)
167
+ def with_locale(tmp_locale = nil, &block)
171
168
  current_locale = Faker::Config.own_locale
172
169
  Faker::Config.locale = tmp_locale
173
170
 
174
171
  disable_enforce_available_locales do
175
- I18n.with_locale(tmp_locale) { yield }
172
+ I18n.with_locale(tmp_locale, &block)
176
173
  end
177
174
  ensure
178
175
  Faker::Config.locale = current_locale
@@ -225,8 +222,16 @@ module Faker
225
222
  @unique ||= UniqueGenerator.new(self, max_retries)
226
223
  end
227
224
 
228
- def sample(list)
229
- list.respond_to?(:sample) ? list.sample(random: Faker::Config.random) : list
225
+ def sample(list, num = nil)
226
+ if list.respond_to?(:sample)
227
+ if num
228
+ list.sample(num, random: Faker::Config.random)
229
+ else
230
+ list.sample(random: Faker::Config.random)
231
+ end
232
+ else
233
+ list
234
+ end
230
235
  end
231
236
 
232
237
  def shuffle(list)
@@ -307,4 +312,4 @@ module Faker
307
312
  end
308
313
 
309
314
  # require faker objects
310
- Dir.glob(File.join(File.dirname(__FILE__), 'faker', '/**/*.rb')).sort.each { |file| require file }
315
+ Dir.glob(File.join(mydir, 'faker', '/**/*.rb')).sort.each { |file| require file }
@@ -7,7 +7,7 @@ module Faker
7
7
  base = alphabet.size
8
8
 
9
9
  lv = 0
10
- str.split('').reverse.each_with_index { |v, i| lv += v.unpack('C')[0] * 256**i }
10
+ str.split('').reverse.each_with_index { |v, i| lv += v.unpack1('C') * 256**i }
11
11
 
12
12
  ret = +''
13
13
  while lv.positive?