faker 2.11.0 → 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.
Files changed (404) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1131 -19
  3. data/README.md +249 -105
  4. data/lib/faker/blockchain/aeternity.rb +5 -5
  5. data/lib/faker/blockchain/bitcoin.rb +2 -2
  6. data/lib/faker/blockchain/ethereum.rb +1 -1
  7. data/lib/faker/blockchain/tezos.rb +31 -3
  8. data/lib/faker/books/dune.rb +17 -12
  9. data/lib/faker/books/lovecraft.rb +16 -44
  10. data/lib/faker/books/the_kingkiller_chronicle.rb +61 -0
  11. data/lib/faker/creature/bird.rb +203 -0
  12. data/lib/faker/default/address.rb +42 -32
  13. data/lib/faker/default/adjective.rb +35 -0
  14. data/lib/faker/default/alphanumeric.rb +2 -8
  15. data/lib/faker/default/app.rb +1 -10
  16. data/lib/faker/default/avatar.rb +1 -12
  17. data/lib/faker/default/bank.rb +104 -19
  18. data/lib/faker/default/barcode.rb +165 -0
  19. data/lib/faker/default/beer.rb +3 -3
  20. data/lib/faker/default/blood.rb +48 -0
  21. data/lib/faker/default/boolean.rb +1 -4
  22. data/lib/faker/default/business.rb +1 -1
  23. data/lib/faker/default/camera.rb +46 -0
  24. data/lib/faker/default/cannabis.rb +10 -0
  25. data/lib/faker/default/chile_rut.rb +62 -18
  26. data/lib/faker/default/chuck_norris.rb +1 -0
  27. data/lib/faker/default/code.rb +162 -52
  28. data/lib/faker/default/color.rb +77 -6
  29. data/lib/faker/default/commerce.rb +105 -28
  30. data/lib/faker/default/company.rb +210 -28
  31. data/lib/faker/default/compass.rb +135 -0
  32. data/lib/faker/default/computer.rb +63 -0
  33. data/lib/faker/default/construction.rb +54 -0
  34. data/lib/faker/default/cosmere.rb +90 -0
  35. data/lib/faker/default/crypto.rb +26 -4
  36. data/lib/faker/default/crypto_coin.rb +48 -15
  37. data/lib/faker/default/date.rb +81 -54
  38. data/lib/faker/default/demographic.rb +1 -5
  39. data/lib/faker/default/driving_licence.rb +85 -18
  40. data/lib/faker/default/drone.rb +332 -0
  41. data/lib/faker/default/educator.rb +13 -0
  42. data/lib/faker/default/emotion.rb +33 -0
  43. data/lib/faker/default/file.rb +53 -21
  44. data/lib/faker/default/finance.rb +75 -7
  45. data/lib/faker/default/food.rb +28 -2
  46. data/lib/faker/default/gender.rb +1 -1
  47. data/lib/faker/default/hipster.rb +108 -51
  48. data/lib/faker/default/hobby.rb +22 -0
  49. data/lib/faker/default/html.rb +230 -0
  50. data/lib/faker/default/id_number.rb +251 -17
  51. data/lib/faker/default/internet.rb +361 -113
  52. data/lib/faker/default/internet_http.rb +48 -0
  53. data/lib/faker/default/invoice.rb +37 -23
  54. data/lib/faker/default/json.rb +63 -25
  55. data/lib/faker/default/lorem.rb +177 -75
  56. data/lib/faker/default/lorem_flickr.rb +69 -37
  57. data/lib/faker/default/markdown.rb +97 -11
  58. data/lib/faker/default/marketing.rb +1 -1
  59. data/lib/faker/default/measurement.rb +101 -42
  60. data/lib/faker/default/military.rb +26 -0
  61. data/lib/faker/default/mountain.rb +33 -0
  62. data/lib/faker/default/name.rb +99 -5
  63. data/lib/faker/default/nation.rb +0 -3
  64. data/lib/faker/default/{nhs.rb → national_health_service.rb} +26 -6
  65. data/lib/faker/default/number.rb +39 -69
  66. data/lib/faker/default/omniauth.rb +115 -57
  67. data/lib/faker/default/phone_number.rb +112 -14
  68. data/lib/faker/default/placeholdit.rb +23 -12
  69. data/lib/faker/default/relationship.rb +2 -6
  70. data/lib/faker/default/religion.rb +6 -0
  71. data/lib/faker/default/science.rb +108 -0
  72. data/lib/faker/default/slack_emoji.rb +81 -0
  73. data/lib/faker/default/source.rb +3 -16
  74. data/lib/faker/default/south_africa.rb +93 -3
  75. data/lib/faker/default/space.rb +1 -1
  76. data/lib/faker/default/string.rb +18 -8
  77. data/lib/faker/default/stripe.rb +68 -23
  78. data/lib/faker/default/tea.rb +41 -0
  79. data/lib/faker/default/theater.rb +52 -0
  80. data/lib/faker/default/time.rb +4 -34
  81. data/lib/faker/default/twitter.rb +42 -23
  82. data/lib/faker/default/types.rb +92 -34
  83. data/lib/faker/default/university.rb +45 -0
  84. data/lib/faker/default/vehicle.rb +227 -57
  85. data/lib/faker/default/verb.rb +45 -0
  86. data/lib/faker/default/vulnerability_identifier.rb +23 -0
  87. data/lib/faker/default/world_cup.rb +6 -15
  88. data/lib/faker/fantasy/tolkien.rb +67 -0
  89. data/lib/faker/games/clash_of_clans.rb +48 -0
  90. data/lib/faker/games/control.rb +113 -0
  91. data/lib/faker/games/dnd.rb +178 -0
  92. data/lib/faker/games/dota.rb +14 -5
  93. data/lib/faker/games/elder_scrolls.rb +26 -0
  94. data/lib/faker/games/final_fantasy_xiv.rb +73 -0
  95. data/lib/faker/games/heroes.rb +13 -0
  96. data/lib/faker/games/heroes_of_the_storm.rb +16 -5
  97. data/lib/faker/games/minecraft.rb +113 -0
  98. data/lib/faker/games/myst.rb +1 -1
  99. data/lib/faker/games/street_fighter.rb +61 -0
  100. data/lib/faker/games/super_mario.rb +48 -0
  101. data/lib/faker/games/tarkov.rb +205 -0
  102. data/lib/faker/games/touhou.rb +75 -0
  103. data/lib/faker/games/warhammer_fantasy.rb +74 -0
  104. data/lib/faker/games/witcher.rb +39 -0
  105. data/lib/faker/games/world_of_warcraft.rb +26 -1
  106. data/lib/faker/japanese_media/conan.rb +48 -0
  107. data/lib/faker/japanese_media/cowboy_bebop.rb +61 -0
  108. data/lib/faker/japanese_media/doraemon.rb +48 -0
  109. data/lib/faker/japanese_media/dragon_ball.rb +26 -0
  110. data/lib/faker/japanese_media/fullmetal_alchemist_brotherhood.rb +51 -0
  111. data/lib/faker/japanese_media/kamen_rider.rb +102 -0
  112. data/lib/faker/japanese_media/naruto.rb +61 -0
  113. data/lib/faker/japanese_media/one_piece.rb +1 -1
  114. data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
  115. data/lib/faker/locations/australia.rb +52 -0
  116. data/lib/faker/movies/avatar.rb +49 -0
  117. data/lib/faker/movies/departed.rb +49 -0
  118. data/lib/faker/movies/hackers.rb +48 -0
  119. data/lib/faker/movies/hobbit.rb +4 -4
  120. data/lib/faker/movies/how_to_train_your_dragon.rb +48 -0
  121. data/lib/faker/movies/lord_of_the_rings.rb +3 -3
  122. data/lib/faker/movies/movie.rb +13 -0
  123. data/lib/faker/movies/star_wars.rb +75 -7
  124. data/lib/faker/movies/the_room.rb +63 -0
  125. data/lib/faker/movies/tron.rb +161 -0
  126. data/lib/faker/music/hiphop.rb +48 -0
  127. data/lib/faker/music/music.rb +12 -0
  128. data/lib/faker/music/opera.rb +237 -1
  129. data/lib/faker/music/pearl_jam.rb +50 -0
  130. data/lib/faker/music/phish.rb +27 -1
  131. data/lib/faker/music/prince.rb +64 -0
  132. data/lib/faker/music/rock_band.rb +12 -0
  133. data/lib/faker/music/rush.rb +37 -0
  134. data/lib/faker/music/smashing_pumpkins.rb +64 -0
  135. data/lib/faker/quotes/quote.rb +93 -1
  136. data/lib/faker/quotes/rajnikanth.rb +1 -0
  137. data/lib/faker/quotes/shakespeare.rb +70 -0
  138. data/lib/faker/religion/bible.rb +50 -0
  139. data/lib/faker/sports/chess.rb +90 -0
  140. data/lib/faker/sports/mountaineering.rb +22 -0
  141. data/lib/faker/sports/sport.rb +116 -0
  142. data/lib/faker/sports/volleyball.rb +74 -0
  143. data/lib/faker/travel/airport.rb +43 -0
  144. data/lib/faker/travel/train_station.rb +54 -0
  145. data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +13 -0
  146. data/lib/faker/tv_shows/archer.rb +51 -0
  147. data/lib/faker/tv_shows/big_bang_theory.rb +37 -0
  148. data/lib/faker/tv_shows/brooklyn_nine_nine.rb +38 -0
  149. data/lib/faker/tv_shows/buffy.rb +17 -4
  150. data/lib/faker/tv_shows/dr_who.rb +1 -1
  151. data/lib/faker/tv_shows/final_space.rb +51 -0
  152. data/lib/faker/tv_shows/futurama.rb +65 -0
  153. data/lib/faker/tv_shows/michael_scott.rb +0 -3
  154. data/lib/faker/tv_shows/simpsons.rb +14 -0
  155. data/lib/faker/tv_shows/south_park.rb +15 -0
  156. data/lib/faker/tv_shows/spongebob.rb +50 -0
  157. data/lib/faker/tv_shows/suits.rb +37 -0
  158. data/lib/faker/tv_shows/supernatural.rb +48 -0
  159. data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +17 -4
  160. data/lib/faker/tv_shows/the_office.rb +37 -0
  161. data/lib/faker/version.rb +2 -2
  162. data/lib/faker.rb +51 -87
  163. data/lib/helpers/base58.rb +1 -1
  164. data/lib/helpers/char.rb +22 -27
  165. data/lib/helpers/deprecator.rb +53 -0
  166. data/lib/helpers/positional_generator.rb +480 -0
  167. data/lib/helpers/unique_generator.rb +13 -13
  168. data/lib/locales/README.md +18 -2
  169. data/lib/locales/ar.yml +6 -1
  170. data/lib/locales/bg.yml +1 -2
  171. data/lib/locales/da-DK.yml +529 -35
  172. data/lib/locales/de-AT.yml +3487 -25
  173. data/lib/locales/de-CH.yml +6020 -9
  174. data/lib/locales/de.yml +7185 -97
  175. data/lib/locales/ee.yml +0 -1
  176. data/lib/locales/en/address.yml +1828 -562
  177. data/lib/locales/en/adjective.yml +179 -0
  178. data/lib/locales/en/airport.yml +381 -0
  179. data/lib/locales/en/animal.yml +1 -1
  180. data/lib/locales/en/aqua_teen_hunger_force.yml +33 -1
  181. data/lib/locales/en/archer.yml +75 -0
  182. data/lib/locales/en/australia.yml +108 -0
  183. data/lib/locales/en/avatar.yml +31 -0
  184. data/lib/locales/en/bank.yml +2 -2
  185. data/lib/locales/en/barcode.yml +24 -0
  186. data/lib/locales/en/bible.yml +90 -0
  187. data/lib/locales/en/big_bang_theory.yml +38 -0
  188. data/lib/locales/en/bird.yml +1281 -0
  189. data/lib/locales/en/blood.yml +13 -0
  190. data/lib/locales/en/book.yml +487 -3
  191. data/lib/locales/en/brooklyn_nine_nine.yml +35 -0
  192. data/lib/locales/en/buffy.yml +1 -1
  193. data/lib/locales/en/camera.yml +611 -0
  194. data/lib/locales/en/cat.yml +1 -1
  195. data/lib/locales/en/chess.yml +103 -0
  196. data/lib/locales/en/clash_of_clan.yml +101 -0
  197. data/lib/locales/en/coffee.yml +1 -1
  198. data/lib/locales/en/commerce.yml +17 -0
  199. data/lib/locales/en/community.yml +17 -17
  200. data/lib/locales/en/company.yml +3 -2
  201. data/lib/locales/en/computer.yml +55 -0
  202. data/lib/locales/en/conan.yml +171 -0
  203. data/lib/locales/en/control.yml +247 -0
  204. data/lib/locales/en/cowboy_bebop.yml +163 -0
  205. data/lib/locales/en/demographic.yml +218 -5
  206. data/lib/locales/en/departed.yml +50 -0
  207. data/lib/locales/en/device.yml +112 -4
  208. data/lib/locales/en/dnd.yml +636 -0
  209. data/lib/locales/en/dog.yml +262 -7
  210. data/lib/locales/en/doraemon.yml +286 -0
  211. data/lib/locales/en/dota.yml +704 -63
  212. data/lib/locales/en/dragon_ball.yml +243 -1
  213. data/lib/locales/en/driving_license.yml +181 -0
  214. data/lib/locales/en/drone.yml +95 -0
  215. data/lib/locales/en/dune.yml +270 -131
  216. data/lib/locales/en/educator.yml +6 -0
  217. data/lib/locales/en/elder_scrolls.yml +583 -9
  218. data/lib/locales/en/emotion.yml +480 -0
  219. data/lib/locales/en/fallout.yml +311 -133
  220. data/lib/locales/en/file.yml +9 -1
  221. data/lib/locales/en/final_fantasy_xiv.yml +754 -0
  222. data/lib/locales/en/final_space.yml +37 -0
  223. data/lib/locales/en/finance.yml +80 -4
  224. data/lib/locales/en/food.yml +1067 -10
  225. data/lib/locales/en/football.yml +3 -3
  226. data/lib/locales/en/fresh_prince_of_bel_air.yml +1 -1
  227. data/lib/locales/en/fullmetal_alchemist_brotherhood.yml +78 -0
  228. data/lib/locales/en/futurama.yml +344 -0
  229. data/lib/locales/en/game.yml +11 -0
  230. data/lib/locales/en/hackers.yml +53 -0
  231. data/lib/locales/en/half_life.yml +84 -3
  232. data/lib/locales/en/harry_potter.yml +1 -1
  233. data/lib/locales/en/heroes.yml +408 -3
  234. data/lib/locales/en/heroes_of_the_storm.yml +131 -4
  235. data/lib/locales/en/hobby.yml +171 -0
  236. data/lib/locales/en/horse.yml +2 -2
  237. data/lib/locales/en/house.yml +1 -1
  238. data/lib/locales/en/how_to_train_your_dragon.yml +174 -0
  239. data/lib/locales/en/id_number.yml +1 -1
  240. data/lib/locales/en/internet.yml +136 -3
  241. data/lib/locales/en/jack_handey.yml +54 -0
  242. data/lib/locales/en/kamen_rider.yml +452 -0
  243. data/lib/locales/en/kpop.yml +7 -7
  244. data/lib/locales/en/league_of_legends.yml +285 -6
  245. data/lib/locales/en/lebowski.yml +1 -1
  246. data/lib/locales/en/lovecraft.yml +76 -6
  247. data/lib/locales/en/military.yml +179 -5
  248. data/lib/locales/en/minecraft.yml +663 -0
  249. data/lib/locales/en/mitch_hedberg.yml +46 -0
  250. data/lib/locales/en/mountain.yml +171 -0
  251. data/lib/locales/en/mountaineering.yml +14 -0
  252. data/lib/locales/en/movie.yml +194 -2
  253. data/lib/locales/en/music.yml +461 -29
  254. data/lib/locales/en/myst.yml +87 -31
  255. data/lib/locales/en/name.yml +5 -4
  256. data/lib/locales/en/naruto.yml +230 -0
  257. data/lib/locales/en/one_piece.yml +2 -2
  258. data/lib/locales/en/opera.yml +169 -1
  259. data/lib/locales/en/overwatch.yml +2648 -2622
  260. data/lib/locales/en/pearl_jam.yml +213 -0
  261. data/lib/locales/en/phish.yml +392 -1
  262. data/lib/locales/en/phone_number.yml +78 -3
  263. data/lib/locales/en/pokemon.yml +417 -4
  264. data/lib/locales/en/prince.yml +227 -0
  265. data/lib/locales/en/quote.yml +692 -163
  266. data/lib/locales/en/rock_band.yml +1 -0
  267. data/lib/locales/en/rush.yml +32 -0
  268. data/lib/locales/en/science.yml +481 -3
  269. data/lib/locales/en/shakespeare.yml +21 -24
  270. data/lib/locales/en/simpsons.yml +668 -0
  271. data/lib/locales/en/smashing_pumpkins.yml +382 -0
  272. data/lib/locales/en/source.yml +35 -0
  273. data/lib/locales/en/south_park.yml +360 -2
  274. data/lib/locales/en/space.yml +1 -1
  275. data/lib/locales/en/spongebob.yml +489 -0
  276. data/lib/locales/en/sport.yml +130 -0
  277. data/lib/locales/en/star_trek.yml +1 -1
  278. data/lib/locales/en/star_wars.yml +568 -220
  279. data/lib/locales/en/stranger_thing.yml +1 -1
  280. data/lib/locales/en/street_fighter.yml +1524 -0
  281. data/lib/locales/en/studio_ghibli.yml +107 -0
  282. data/lib/locales/en/suits.yml +45 -0
  283. data/lib/locales/en/super_mario.yml +58 -0
  284. data/lib/locales/en/super_smash_bros.yml +23 -6
  285. data/lib/locales/en/supernatural.yml +141 -0
  286. data/lib/locales/en/tarkov.yml +593 -0
  287. data/lib/locales/en/tea.yml +172 -0
  288. data/lib/locales/en/the_kingkiller_chronicle.yml +56 -0
  289. data/lib/locales/en/the_office.yml +86 -0
  290. data/lib/locales/en/the_room.yml +68 -0
  291. data/lib/locales/en/theater.yml +597 -0
  292. data/lib/locales/en/tolkien.yml +2453 -0
  293. data/lib/locales/en/touhou.yml +839 -0
  294. data/lib/locales/en/train_station.yml +280 -0
  295. data/lib/locales/en/tron.yml +227 -0
  296. data/lib/locales/en/vehicle.yml +2809 -75
  297. data/lib/locales/en/volleyball.yml +501 -0
  298. data/lib/locales/en/warhammer_fantasy.yml +582 -0
  299. data/lib/locales/en/witcher.yml +426 -7
  300. data/lib/locales/en/world_of_warcraft.yml +122 -4
  301. data/lib/locales/en/zelda.yml +962 -4
  302. data/lib/locales/en-AU.yml +728 -17
  303. data/lib/locales/en-CA.yml +373 -16
  304. data/lib/locales/en-GB.yml +116 -8
  305. data/lib/locales/en-IND.yml +1259 -16
  306. data/lib/locales/en-KE.yml +212 -0
  307. data/lib/locales/en-MS.yml +364 -16
  308. data/lib/locales/en-NEP.yml +212 -35
  309. data/lib/locales/en-NG.yml +1 -0
  310. data/lib/locales/en-NZ.yml +1153 -121
  311. data/lib/locales/en-PAK.yml +369 -9
  312. data/lib/locales/en-SG.yml +581 -15
  313. data/lib/locales/en-UG.yml +1 -0
  314. data/lib/locales/en-US.yml +6937 -71
  315. data/lib/locales/en-ZA.yml +1 -1
  316. data/lib/locales/en-au-ocker.yml +266 -21
  317. data/lib/locales/en.yml +0 -3
  318. data/lib/locales/es-AR.yml +4570 -0
  319. data/lib/locales/es-MX.yml +1 -2
  320. data/lib/locales/es.yml +58 -3
  321. data/lib/locales/fi-FI.yml +4 -2
  322. data/lib/locales/fr/address.yml +20 -0
  323. data/lib/locales/fr/adjective.yml +266 -0
  324. data/lib/locales/fr/ancient.yml +141 -0
  325. data/lib/locales/fr/animal.yml +5 -0
  326. data/lib/locales/fr/appliance.yml +4 -0
  327. data/lib/locales/fr/book.yml +7 -0
  328. data/lib/locales/fr/color.yml +4 -0
  329. data/lib/locales/fr/company.yml +17 -0
  330. data/lib/locales/fr/compass.yml +23 -0
  331. data/lib/locales/fr/demographic.yml +4 -0
  332. data/lib/locales/fr/gender.yml +6 -0
  333. data/lib/locales/fr/internet.yml +4 -0
  334. data/lib/locales/fr/lorem.yml +5 -0
  335. data/lib/locales/fr/measurement.yml +7 -0
  336. data/lib/locales/fr/name.yml +22 -0
  337. data/lib/locales/fr/phone_number.yml +7 -0
  338. data/lib/locales/fr/pokemon.yml +7 -0
  339. data/lib/locales/fr-CA.yml +2748 -43
  340. data/lib/locales/fr-CH.yml +3 -4
  341. data/lib/locales/fr.yml +2 -112
  342. data/lib/locales/hy.yml +3624 -119
  343. data/lib/locales/id.yml +839 -10
  344. data/lib/locales/it.yml +1304 -31
  345. data/lib/locales/ja/README.md +13 -0
  346. data/lib/locales/ja/address.yml +120539 -0
  347. data/lib/locales/ja/adjective.yml +148 -0
  348. data/lib/locales/ja/ancient.yml +4 -0
  349. data/lib/locales/ja/animal.yml +5 -0
  350. data/lib/locales/ja/bank.yml +4 -0
  351. data/lib/locales/ja/book.yml +7 -0
  352. data/lib/locales/ja/cat.yml +5 -0
  353. data/lib/locales/ja/coffee.yml +4 -0
  354. data/lib/locales/ja/color.yml +4 -0
  355. data/lib/locales/ja/commerce.yml +11 -0
  356. data/lib/locales/ja/company.yml +8 -0
  357. data/lib/locales/ja/dog.yml +6 -0
  358. data/lib/locales/ja/emotion.yml +51 -0
  359. data/lib/locales/ja/food.yml +4 -0
  360. data/lib/locales/ja/football.yml +115 -0
  361. data/lib/locales/ja/gender.yml +4 -0
  362. data/lib/locales/ja/lorem.yml +9 -0
  363. data/lib/locales/ja/name.yml +13 -0
  364. data/lib/locales/ja/naruto.yml +230 -0
  365. data/lib/locales/ja/overwatch.yml +5 -0
  366. data/lib/locales/ja/phone_number.yml +7 -0
  367. data/lib/locales/ja/pokemon.yml +7 -0
  368. data/lib/locales/ja/relationship.yml +10 -0
  369. data/lib/locales/ja/restaurant.yml +11 -0
  370. data/lib/locales/ja/space.yml +5 -0
  371. data/lib/locales/ja/sport.yml +130 -0
  372. data/lib/locales/ja/studio_ghibli.yml +112 -0
  373. data/lib/locales/ja/subscription.yml +8 -0
  374. data/lib/locales/ja/super_mario.yml +9 -0
  375. data/lib/locales/ja/super_smash_bros.yml +8 -0
  376. data/lib/locales/ja/touhou.yml +466 -0
  377. data/lib/locales/ja/university.yml +9 -0
  378. data/lib/locales/ja/zelda.yml +5 -0
  379. data/lib/locales/ko.yml +1450 -17
  380. data/lib/locales/lt.yml +315 -0
  381. data/lib/locales/lv.yml +1 -2
  382. data/lib/locales/mi-NZ.yml +283 -0
  383. data/lib/locales/nb-NO.yml +518 -27
  384. data/lib/locales/nl.yml +1 -1
  385. data/lib/locales/pl.yml +1 -2
  386. data/lib/locales/pt-BR.yml +8157 -659
  387. data/lib/locales/pt.yml +844 -43
  388. data/lib/locales/ru.yml +1355 -30
  389. data/lib/locales/sk.yml +4410 -41
  390. data/lib/locales/sv.yml +100 -0
  391. data/lib/locales/th.yml +76 -76
  392. data/lib/locales/tr.yml +1 -2
  393. data/lib/locales/uk.yml +1810 -44
  394. data/lib/locales/vi.yml +1 -0
  395. data/lib/locales/zh-CN/bank.yml +17 -0
  396. data/lib/locales/zh-CN.yml +1 -0
  397. data/lib/locales/zh-TW.yml +1 -0
  398. metadata +192 -127
  399. data/History.md +0 -176
  400. data/lib/faker/default/fillmurray.rb +0 -45
  401. data/lib/faker/default/lorem_pixel.rb +0 -47
  402. data/lib/locales/en/hobbit.yml +0 -19
  403. data/lib/locales/en/lord_of_the_rings.yml +0 -6
  404. data/lib/locales/ja.yml +0 -101
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Theater < Base
5
+ class << self
6
+ ##
7
+ # Produces the name of a musical for an older audience
8
+ #
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::Theater.adult_musical
13
+ # #=> "Mamma Mia!"
14
+ #
15
+ # @faker.version 2.13.0
16
+ def adult_musical
17
+ fetch('theater.adult_musical')
18
+ end
19
+
20
+ ##
21
+ # Produces the name of a musical for a younger audience
22
+ #
23
+ # @return [String]
24
+ #
25
+ # @example
26
+ # Faker::Theater.kids_musical
27
+ # #=> "Into the Woods JR."
28
+ #
29
+ # @faker.version 2.13.0
30
+ def kids_musical
31
+ fetch('theater.kids_musical')
32
+ end
33
+
34
+ ##
35
+ # Produces the name of a play
36
+ #
37
+ # @return [String]
38
+ #
39
+ # @example
40
+ # Faker::Theater.play
41
+ # #=> "Death of a Salesman"
42
+ #
43
+ # @faker.version 2.13.0
44
+ def play
45
+ fetch('theater.play')
46
+ end
47
+ end
48
+ end
49
+
50
+ include Faker::Deprecator
51
+ deprecate_generator('Show', Theater)
52
+ end
@@ -13,9 +13,6 @@ module Faker
13
13
  }.freeze
14
14
 
15
15
  class << self
16
- # rubocop:disable Metrics/ParameterLists
17
- # rubocop:disable Style/AsciiComments
18
-
19
16
  ##
20
17
  # Produce a random time between two times.
21
18
  #
@@ -38,20 +35,13 @@ module Faker
38
35
  # Faker::Time.between(from: DateTime.now - 1, to: DateTime.now, format: :long) #=> "2018年10月16日(火) 10時48分27秒 -0500"
39
36
  #
40
37
  # @faker.version 1.5.0
41
- def between(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, legacy_format = NOT_GIVEN, from:, to:, format: nil)
42
- warn_for_deprecated_arguments do |keywords|
43
- keywords << :from if legacy_from != NOT_GIVEN
44
- keywords << :to if legacy_to != NOT_GIVEN
45
- keywords << :format if legacy_format != NOT_GIVEN
46
- end
47
-
38
+ def between(from:, to:, format: nil)
48
39
  from = get_time_object(from)
49
40
  to = get_time_object(to)
50
41
 
51
42
  time = Faker::Base.rand_in_range(from, to)
52
43
  time_with_format(time, format)
53
44
  end
54
- # rubocop:enable Style/AsciiComments
55
45
 
56
46
  ##
57
47
  # Produce a random time between two dates.
@@ -81,14 +71,7 @@ module Faker
81
71
  # #=> "Fri, 19 Oct 2018 15:17:46 -0500"
82
72
  #
83
73
  # @faker.version 1.0.0
84
- def between_dates(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, legacy_period = NOT_GIVEN, legacy_format = NOT_GIVEN, from:, to:, period: :all, format: nil)
85
- warn_for_deprecated_arguments do |keywords|
86
- keywords << :from if legacy_from != NOT_GIVEN
87
- keywords << :to if legacy_to != NOT_GIVEN
88
- keywords << :period if legacy_period != NOT_GIVEN
89
- keywords << :format if legacy_format != NOT_GIVEN
90
- end
91
-
74
+ def between_dates(from:, to:, period: :all, format: nil)
92
75
  date = Faker::Date.between(from: from, to: to)
93
76
  time = date_with_random_time(date, period)
94
77
  time_with_format(time, format)
@@ -109,13 +92,7 @@ module Faker
109
92
  # #=> "October 21, 2018 20:47"
110
93
  #
111
94
  # @faker.version 1.5.0
112
- def forward(legacy_days = NOT_GIVEN, legacy_period = NOT_GIVEN, legacy_format = NOT_GIVEN, days: 365, period: :all, format: nil)
113
- warn_for_deprecated_arguments do |keywords|
114
- keywords << :days if legacy_days != NOT_GIVEN
115
- keywords << :period if legacy_period != NOT_GIVEN
116
- keywords << :format if legacy_format != NOT_GIVEN
117
- end
118
-
95
+ def forward(days: 365, period: :all, format: nil)
119
96
  time_with_format(date_with_random_time(Faker::Date.forward(days: days), period), format)
120
97
  end
121
98
 
@@ -134,16 +111,9 @@ module Faker
134
111
  # #=> "14 Oct 07:44"
135
112
  #
136
113
  # @faker.version 1.5.0
137
- def backward(legacy_days = NOT_GIVEN, legacy_period = NOT_GIVEN, legacy_format = NOT_GIVEN, days: 365, period: :all, format: nil)
138
- warn_for_deprecated_arguments do |keywords|
139
- keywords << :days if legacy_days != NOT_GIVEN
140
- keywords << :period if legacy_period != NOT_GIVEN
141
- keywords << :format if legacy_format != NOT_GIVEN
142
- end
143
-
114
+ def backward(days: 365, period: :all, format: nil)
144
115
  time_with_format(date_with_random_time(Faker::Date.backward(days: days), period), format)
145
116
  end
146
- # rubocop:enable Metrics/ParameterLists
147
117
 
148
118
  private
149
119
 
@@ -3,14 +3,22 @@
3
3
  module Faker
4
4
  class Twitter < Base
5
5
  class << self
6
- def user(legacy_include_status = NOT_GIVEN, legacy_include_email = NOT_GIVEN, include_status: true, include_email: false)
7
- warn_for_deprecated_arguments do |keywords|
8
- keywords << :include_status if legacy_include_status != NOT_GIVEN
9
- keywords << :include_email if legacy_include_email != NOT_GIVEN
10
- end
11
-
6
+ ##
7
+ # Produces a random Twitter user.
8
+ #
9
+ # @param include_status [Boolean] Include or exclude user status details
10
+ # @param include_email [Boolean] Include or exclude user email details
11
+ # @return [Hash]
12
+ #
13
+ # @example
14
+ # Faker::Twitter.user #=> {:id=>8821452687517076614, :name=>"Lincoln Paucek", :screen_name=>"cody"...
15
+ # Faker::Twitter.user(include_status: false) # Just get a user object with no embed status
16
+ # Faker::Twitter.user(include_email: true) # Simulate an authenticated user with the email permission
17
+ #
18
+ # @faker.version 1.7.3
19
+ def user(include_status: true, include_email: false)
12
20
  user_id = id
13
- background_image_url = Faker::LoremPixel.image(size: '600x400') # TODO: Make the dimensions change
21
+ background_image_url = Faker::LoremFlickr.image(size: '600x400')
14
22
  profile_image_url = Faker::Avatar.image(slug: user_id, size: '48x48')
15
23
  user = {
16
24
  id: user_id,
@@ -38,7 +46,7 @@ module Faker
38
46
  profile_background_image_url_https: background_image_url,
39
47
  profile_background_image_url: background_image_url.sub('https://', 'http://'),
40
48
  profile_background_tile: Faker::Boolean.boolean(true_ratio: 0.1),
41
- profile_banner_url: Faker::LoremPixel.image(size: '1500x500'),
49
+ profile_banner_url: Faker::LoremFlickr.image(size: '1500x500'),
42
50
  profile_image_url_https: profile_image_url,
43
51
  profile_image_url: profile_image_url.sub('https://', 'http://'),
44
52
  profile_link_color: Faker::Color.hex_color,
@@ -55,16 +63,24 @@ module Faker
55
63
  verified: Faker::Boolean.boolean(true_ratio: 0.1)
56
64
  }
57
65
  user[:status] = Faker::Twitter.status(include_user: false) if include_status
58
- user[:email] = Faker::Internet.safe_email if include_email
66
+ user[:email] = Faker::Internet.email if include_email
59
67
  user
60
68
  end
61
69
 
62
- def status(legacy_include_user = NOT_GIVEN, legacy_include_photo = NOT_GIVEN, include_user: true, include_photo: false)
63
- warn_for_deprecated_arguments do |keywords|
64
- keywords << :include_user if legacy_include_user != NOT_GIVEN
65
- keywords << :include_photo if legacy_include_photo != NOT_GIVEN
66
- end
67
-
70
+ ##
71
+ # Produces a random Twitter user.
72
+ #
73
+ # @param include_user [Boolean] Include or exclude user details
74
+ # @param include_photo [Boolean] Include or exclude user photo
75
+ # @return [Hash]
76
+ #
77
+ # @example
78
+ # Faker::Twitter.status #=> {:id=>8821452687517076614, :text=>"Ea et laboriosam vel non."...
79
+ # Faker::Twitter.status(include_user: false) # Just get a status object with no embed user
80
+ # Faker::Twitter.status(include_photo: true) # Includes entities for an attached image
81
+ #
82
+ # @faker.version 1.7.3
83
+ def status(include_user: true, include_photo: false)
68
84
  status_id = id
69
85
  status = {
70
86
  id: status_id,
@@ -97,6 +113,15 @@ module Faker
97
113
  status
98
114
  end
99
115
 
116
+ ##
117
+ # Produces a random screen name.
118
+ #
119
+ # @return [String]
120
+ #
121
+ # @example
122
+ # Faker::Twitter.screen_name #=> "audreanne_hackett"
123
+ #
124
+ # @faker.version 1.7.3
100
125
  def screen_name
101
126
  Faker::Internet.username(specifier: nil, separators: ['_'])[0...20]
102
127
  end
@@ -126,11 +151,7 @@ module Faker
126
151
  }
127
152
  end
128
153
 
129
- def status_entities(legacy_include_photo = NOT_GIVEN, include_photo: false)
130
- warn_for_deprecated_arguments do |keywords|
131
- keywords << :include_photo if legacy_include_photo != NOT_GIVEN
132
- end
133
-
154
+ def status_entities(include_photo: false)
134
155
  entities = {
135
156
  hashtags: [],
136
157
  symbols: [],
@@ -142,9 +163,7 @@ module Faker
142
163
  end
143
164
 
144
165
  def photo_entity
145
- # TODO: Dynamic image sizes
146
- # TODO: Return accurate indices
147
- media_url = Faker::LoremPixel.image(size: '1064x600')
166
+ media_url = Faker::LoremFlickr.image(size: '1064x600')
148
167
  media_id = id
149
168
  {
150
169
  id: media_id,
@@ -7,65 +7,114 @@ module Faker
7
7
  COMPLEX_TYPES = %i[hash array].freeze
8
8
 
9
9
  class << self
10
- def rb_string(legacy_words = NOT_GIVEN, words: 1)
11
- warn_for_deprecated_arguments do |keywords|
12
- keywords << :words if legacy_words != NOT_GIVEN
13
- end
14
-
10
+ ##
11
+ # Produces a random String created from word (Faker::Lorem.word)
12
+ #
13
+ # @return [String]
14
+ #
15
+ # @example
16
+ # Faker::Types.rb_string #=> "foobar"
17
+ #
18
+ # @faker.version 1.8.6
19
+ def rb_string(words: 1)
15
20
  resolved_num = resolve(words)
16
- word_list =
17
- translate('faker.lorem.words')
18
-
21
+ word_list = translate('faker.lorem.words')
19
22
  word_list *= ((resolved_num / word_list.length) + 1)
20
- shuffle(word_list)[0, resolved_num].join(' ')
23
+ sample(word_list, resolved_num).join(' ')
21
24
  end
22
25
 
26
+ ##
27
+ # Produces a random character from the a-z, 0-9 ranges.
28
+ #
29
+ # @return [String]
30
+ #
31
+ # @example
32
+ # Faker::Types.character #=> "n"
33
+ #
34
+ # @faker.version 1.8.6
23
35
  def character
24
36
  sample(CHARACTERS)
25
37
  end
26
38
 
27
- def rb_integer(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: 0, to: 100)
28
- warn_for_deprecated_arguments do |keywords|
29
- keywords << :from if legacy_from != NOT_GIVEN
30
- keywords << :to if legacy_to != NOT_GIVEN
31
- end
32
-
39
+ ##
40
+ # Produces a random integer.
41
+ #
42
+ # @return [Integer]
43
+ #
44
+ # @example
45
+ # Faker::Types.rb_integer #=> 1
46
+ #
47
+ # @faker.version 1.8.6
48
+ def rb_integer(from: 0, to: 100)
33
49
  rand(from..to).to_i
34
50
  end
35
51
 
36
- def rb_hash(legacy_number = NOT_GIVEN, legacy_type = NOT_GIVEN, number: 1, type: random_type)
37
- warn_for_deprecated_arguments do |keywords|
38
- keywords << :number if legacy_number != NOT_GIVEN
39
- keywords << :type if legacy_type != NOT_GIVEN
40
- end
41
-
52
+ ##
53
+ # Produces a random hash with random keys and values.
54
+ #
55
+ # @param number [Integer] Specifies the number of key-value pairs.
56
+ # @return [Hash]
57
+ #
58
+ # @example
59
+ # Faker::Types.rb_hash #=> {name: "bob"}
60
+ # Faker::Types.rb_hash(number: 1) #=> {name: "bob"}
61
+ # Faker::Types.rb_hash(number: 2) #=> {name: "bob", last: "marley"}
62
+ #
63
+ # @faker.version 1.8.6
64
+ def rb_hash(number: 1, type: -> { random_type })
42
65
  {}.tap do |hsh|
43
66
  Lorem.words(number: number * 2).uniq.first(number).each do |s|
44
- hsh.merge!(s.to_sym => type)
67
+ value = type.is_a?(Proc) ? type.call : type
68
+ hsh.merge!(s.to_sym => value)
45
69
  end
46
70
  end
47
71
  end
48
72
 
49
- def complex_rb_hash(legacy_number = NOT_GIVEN, number: 1)
50
- warn_for_deprecated_arguments do |keywords|
51
- keywords << :number if legacy_number != NOT_GIVEN
52
- end
53
-
54
- rb_hash(number: number, type: random_complex_type)
73
+ ##
74
+ # Produces a random complex hash with random keys and values where the values may include other hashes and arrays.
75
+ #
76
+ # @param number [Integer] Specifies the number of key-value pairs.
77
+ # @return [Hash]
78
+ #
79
+ # @example
80
+ # Faker::Types.complex_rb_hash #=> {user: {first: "bob", last: "marley"}}
81
+ # Faker::Types.complex_rb_hash(number: 1) #=> {user: {first: "bob", last: "marley"}}
82
+ # Faker::Types.complex_rb_hash(number: 2) #=> {user: {first: "bob", last: "marley"}, son: ["damien", "marley"]}
83
+ #
84
+ # @faker.version 1.8.6
85
+ def complex_rb_hash(number: 1)
86
+ rb_hash(number: number, type: -> { random_complex_type })
55
87
  end
56
88
 
57
- def rb_array(legacy_len = NOT_GIVEN, len: 1)
58
- warn_for_deprecated_arguments do |keywords|
59
- keywords << :len if legacy_len != NOT_GIVEN
60
- end
61
-
89
+ ##
90
+ # Produces a random array.
91
+ #
92
+ # @param len [Integer] Specifies the number of elements in the array.
93
+ # @return [Array]
94
+ #
95
+ # @example
96
+ # Faker::Types.rb_array #=> ["a"]
97
+ # Faker::Types.rb_array(len: 4) #=> ["a", 1, 2, "bob"]
98
+ # Faker::Types.rb_array(len: 2, type: -> { Faker::Types.rb_string }) #=> ["cat", "foo"]
99
+ #
100
+ # @faker.version 1.8.6
101
+ def rb_array(len: 1, type: -> { random_type })
62
102
  [].tap do |ar|
63
103
  len.times do
64
- ar.push random_type
104
+ ar.push type.is_a?(Proc) ? type.call : type
65
105
  end
66
106
  end
67
107
  end
68
108
 
109
+ ##
110
+ # Produces a random type that's either a String or an Integer.
111
+ #
112
+ # @return [String, Integer]
113
+ #
114
+ # @example
115
+ # Faker::Types.random_type #=> 1 or "a" or "bob"
116
+ #
117
+ # @faker.version 1.8.6
69
118
  def random_type
70
119
  type_to_use = SIMPLE_TYPES[rand(0..SIMPLE_TYPES.length - 1)]
71
120
  case type_to_use
@@ -76,6 +125,15 @@ module Faker
76
125
  end
77
126
  end
78
127
 
128
+ ##
129
+ # Produces a random complex type that's either a String, an Integer, an array or a hash.
130
+ #
131
+ # @return [String, Integer]
132
+ #
133
+ # @example
134
+ # Faker::Types.random_complex_type #=> 1 or "a" or "bob" or {foo: "bar"}
135
+ #
136
+ # @faker.version 1.8.6
79
137
  def random_complex_type
80
138
  types = SIMPLE_TYPES + COMPLEX_TYPES
81
139
  type_to_use = types[rand(0..types.length - 1)]
@@ -5,22 +5,67 @@ module Faker
5
5
  flexible :university
6
6
 
7
7
  class << self
8
+ ##
9
+ # Produces a random university name.
10
+ #
11
+ # @return [String]
12
+ #
13
+ # @example
14
+ # Faker::University.name #=> "Eastern Mississippi Academy"
15
+ #
16
+ # @faker.version 1.5.0
8
17
  def name
9
18
  parse('university.name')
10
19
  end
11
20
 
21
+ ##
22
+ # Produces a random university prefix.
23
+ #
24
+ # @return [String]
25
+ #
26
+ # @example
27
+ # Faker::University.prefix #=> "Western"
28
+ #
29
+ # @faker.version 1.5.0
12
30
  def prefix
13
31
  fetch('university.prefix')
14
32
  end
15
33
 
34
+ ##
35
+ # Produces a random university suffix.
36
+ #
37
+ # @return [String]
38
+ #
39
+ # @example
40
+ # Faker::University.suffix #=> "Academy"
41
+ #
42
+ # @faker.version 1.5.0
16
43
  def suffix
17
44
  fetch('university.suffix')
18
45
  end
19
46
 
47
+ ##
48
+ # Produces a random greek organization.
49
+ #
50
+ # @return [String]
51
+ #
52
+ # @example
53
+ # Faker::University.greek_organization #=> "BEX"
54
+ #
55
+ # @faker.version 1.5.0
20
56
  def greek_organization
21
57
  Array.new(3) { |_| sample(greek_alphabet) }.join
22
58
  end
23
59
 
60
+ ##
61
+ # Produces a greek alphabet.
62
+ #
63
+ # @return [Array]
64
+ #
65
+ # @example
66
+ # Faker::University.greek_alphabet #=> ["Α", "B", "Γ", "Δ", ...]
67
+ #
68
+ # @faker.version 1.5.0
24
69
  def greek_alphabet
25
70
  %w[Α B Γ Δ E Z H Θ I K Λ M N Ξ
26
71
  O Π P Σ T Y Φ X Ψ Ω]