faker 2.13.0 → 3.8.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 (485) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1277 -24
  3. data/README.md +138 -320
  4. data/lib/faker/blockchain/aeternity.rb +5 -5
  5. data/lib/faker/blockchain/bitcoin.rb +1 -2
  6. data/lib/faker/blockchain/ethereum.rb +1 -1
  7. data/lib/faker/blockchain/tezos.rb +30 -3
  8. data/lib/faker/blockchain.rb +9 -0
  9. data/lib/faker/books/dune.rb +17 -12
  10. data/lib/faker/books/lovecraft.rb +16 -44
  11. data/lib/faker/books/the_kingkiller_chronicle.rb +61 -0
  12. data/lib/faker/books.rb +9 -0
  13. data/lib/faker/creature/bird.rb +203 -0
  14. data/lib/faker/creature.rb +9 -0
  15. data/lib/faker/default/address.rb +11 -31
  16. data/lib/faker/default/adjective.rb +35 -0
  17. data/lib/faker/default/alphanumeric.rb +3 -9
  18. data/lib/faker/default/app.rb +1 -10
  19. data/lib/faker/default/avatar.rb +2 -13
  20. data/lib/faker/default/bank.rb +28 -26
  21. data/lib/faker/default/barcode.rb +165 -0
  22. data/lib/faker/default/beer.rb +3 -3
  23. data/lib/faker/default/boolean.rb +2 -4
  24. data/lib/faker/default/camera.rb +46 -0
  25. data/lib/faker/default/cannabis.rb +10 -0
  26. data/lib/faker/default/chile_rut.rb +28 -27
  27. data/lib/faker/default/chuck_norris.rb +1 -0
  28. data/lib/faker/default/code.rb +166 -52
  29. data/lib/faker/default/color.rb +77 -6
  30. data/lib/faker/default/commerce.rb +32 -18
  31. data/lib/faker/default/company.rb +175 -30
  32. data/lib/faker/default/crypto.rb +25 -5
  33. data/lib/faker/default/crypto_coin.rb +3 -15
  34. data/lib/faker/default/date.rb +65 -42
  35. data/lib/faker/default/demographic.rb +1 -5
  36. data/lib/faker/default/driving_licence.rb +45 -20
  37. data/lib/faker/default/drone.rb +332 -0
  38. data/lib/faker/default/educator.rb +13 -0
  39. data/lib/faker/default/emotion.rb +33 -0
  40. data/lib/faker/default/file.rb +5 -22
  41. data/lib/faker/default/finance.rb +51 -7
  42. data/lib/faker/default/food.rb +28 -2
  43. data/lib/faker/default/hipster.rb +15 -52
  44. data/lib/faker/default/hobby.rb +22 -0
  45. data/lib/faker/default/html.rb +230 -0
  46. data/lib/faker/default/id_number.rb +176 -31
  47. data/lib/faker/default/invoice.rb +8 -21
  48. data/lib/faker/default/json.rb +15 -27
  49. data/lib/faker/default/lorem.rb +179 -77
  50. data/lib/faker/default/lorem_flickr.rb +5 -38
  51. data/lib/faker/default/markdown.rb +14 -17
  52. data/lib/faker/default/marketing.rb +1 -1
  53. data/lib/faker/default/measurement.rb +19 -50
  54. data/lib/faker/default/military.rb +26 -0
  55. data/lib/faker/default/mountain.rb +33 -0
  56. data/lib/faker/default/name.rb +1 -5
  57. data/lib/faker/default/nation.rb +0 -3
  58. data/lib/faker/default/{nhs.rb → national_health_service.rb} +10 -10
  59. data/lib/faker/default/number.rb +34 -62
  60. data/lib/faker/default/omniauth.rb +102 -97
  61. data/lib/faker/default/phone_number.rb +36 -21
  62. data/lib/faker/default/placeholdit.rb +12 -22
  63. data/lib/faker/{quotes → default}/quote.rb +39 -0
  64. data/lib/faker/default/relationship.rb +2 -6
  65. data/lib/faker/default/science.rb +108 -0
  66. data/lib/faker/default/source.rb +3 -16
  67. data/lib/faker/default/south_africa.rb +3 -3
  68. data/lib/faker/default/space.rb +1 -1
  69. data/lib/faker/default/sport.rb +116 -0
  70. data/lib/faker/default/string.rb +2 -8
  71. data/lib/faker/default/stripe.rb +7 -23
  72. data/lib/faker/default/tea.rb +41 -0
  73. data/lib/faker/{music/show.rb → default/theater.rb} +8 -8
  74. data/lib/faker/default/time.rb +4 -34
  75. data/lib/faker/default/types.rb +14 -36
  76. data/lib/faker/default/vehicle.rb +45 -55
  77. data/lib/faker/default/vulnerability_identifier.rb +23 -0
  78. data/lib/faker/default/world_cup.rb +2 -11
  79. data/lib/faker/default/x.rb +189 -0
  80. data/lib/faker/default.rb +9 -0
  81. data/lib/faker/fantasy/tolkien.rb +67 -0
  82. data/lib/faker/fantasy.rb +9 -0
  83. data/lib/faker/games/clash_of_clans.rb +48 -0
  84. data/lib/faker/games/control.rb +1 -1
  85. data/lib/faker/games/dnd.rb +131 -14
  86. data/lib/faker/games/dota.rb +14 -5
  87. data/lib/faker/games/elder_scrolls.rb +26 -0
  88. data/lib/faker/games/final_fantasy_xiv.rb +73 -0
  89. data/lib/faker/games/heroes.rb +13 -0
  90. data/lib/faker/games/heroes_of_the_storm.rb +0 -11
  91. data/lib/faker/games/minecraft.rb +66 -1
  92. data/lib/faker/games/myst.rb +1 -1
  93. data/lib/faker/games/street_fighter.rb +61 -0
  94. data/lib/faker/games/super_mario.rb +48 -0
  95. data/lib/faker/games/tarkov.rb +205 -0
  96. data/lib/faker/games/touhou.rb +75 -0
  97. data/lib/faker/games/witcher.rb +39 -0
  98. data/lib/faker/games/world_of_warcraft.rb +26 -1
  99. data/lib/faker/games.rb +9 -0
  100. data/lib/faker/internet.rb +582 -0
  101. data/lib/faker/japanese_media/conan.rb +48 -0
  102. data/lib/faker/japanese_media/cowboy_bebop.rb +61 -0
  103. data/lib/faker/japanese_media/doraemon.rb +48 -0
  104. data/lib/faker/japanese_media/dragon_ball.rb +26 -0
  105. data/lib/faker/japanese_media/fullmetal_alchemist_brotherhood.rb +48 -0
  106. data/lib/faker/japanese_media/kamen_rider.rb +102 -0
  107. data/lib/faker/japanese_media/naruto.rb +61 -0
  108. data/lib/faker/japanese_media/one_piece.rb +1 -1
  109. data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
  110. data/lib/faker/japanese_media.rb +9 -0
  111. data/lib/faker/locations/australia.rb +49 -0
  112. data/lib/faker/locations.rb +9 -0
  113. data/lib/faker/movies/avatar.rb +49 -0
  114. data/lib/faker/movies/hackers.rb +48 -0
  115. data/lib/faker/movies/hobbit.rb +4 -4
  116. data/lib/faker/movies/how_to_train_your_dragon.rb +48 -0
  117. data/lib/faker/movies/lord_of_the_rings.rb +3 -3
  118. data/lib/faker/movies/star_wars.rb +75 -7
  119. data/lib/faker/movies/the_room.rb +63 -0
  120. data/lib/faker/movies/tron.rb +161 -0
  121. data/lib/faker/movies.rb +9 -0
  122. data/lib/faker/music/bossa_nova.rb +35 -0
  123. data/lib/faker/music/grateful_dead.rb +0 -2
  124. data/lib/faker/music/hiphop.rb +48 -0
  125. data/lib/faker/music/opera.rb +237 -1
  126. data/lib/faker/music/pearl_jam.rb +0 -2
  127. data/lib/faker/music/rock_band.rb +12 -0
  128. data/lib/faker/music/rush.rb +0 -2
  129. data/lib/faker/music/smashing_pumpkins.rb +62 -0
  130. data/lib/faker/{music/music.rb → music.rb} +16 -0
  131. data/lib/faker/quotes/rajnikanth.rb +1 -0
  132. data/lib/faker/quotes/shakespeare.rb +34 -0
  133. data/lib/faker/quotes.rb +9 -0
  134. data/lib/faker/religion/bible.rb +50 -0
  135. data/lib/faker/religion.rb +9 -0
  136. data/lib/faker/sports/chess.rb +90 -0
  137. data/lib/faker/sports/mountaineering.rb +22 -0
  138. data/lib/faker/sports/volleyball.rb +74 -0
  139. data/lib/faker/sports.rb +9 -0
  140. data/lib/faker/travel/airport.rb +43 -0
  141. data/lib/faker/travel/train_station.rb +54 -0
  142. data/lib/faker/travel.rb +9 -0
  143. data/lib/faker/tv_shows/archer.rb +51 -0
  144. data/lib/faker/tv_shows/big_bang_theory.rb +1 -1
  145. data/lib/faker/tv_shows/brooklyn_nine_nine.rb +38 -0
  146. data/lib/faker/tv_shows/buffy.rb +5 -5
  147. data/lib/faker/tv_shows/dr_who.rb +0 -13
  148. data/lib/faker/tv_shows/final_space.rb +51 -0
  149. data/lib/faker/tv_shows/michael_scott.rb +0 -3
  150. data/lib/faker/tv_shows/south_park.rb +15 -0
  151. data/lib/faker/tv_shows/spongebob.rb +50 -0
  152. data/lib/faker/tv_shows/suits.rb +1 -1
  153. data/lib/faker/tv_shows/supernatural.rb +48 -0
  154. data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +5 -5
  155. data/lib/faker/tv_shows/the_office.rb +37 -0
  156. data/lib/faker/tv_shows.rb +9 -0
  157. data/lib/faker/version.rb +2 -2
  158. data/lib/faker.rb +96 -79
  159. data/lib/helpers/base58.rb +1 -1
  160. data/lib/helpers/deprecator.rb +118 -0
  161. data/lib/helpers/positional_generator.rb +478 -0
  162. data/lib/helpers/unique_generator.rb +14 -14
  163. data/lib/locales/README.md +18 -2
  164. data/lib/locales/ar.yml +1608 -46
  165. data/lib/locales/bg.yml +935 -19
  166. data/lib/locales/ca-CAT.yml +347 -12
  167. data/lib/locales/ca.yml +580 -7
  168. data/lib/locales/da-DK.yml +529 -35
  169. data/lib/locales/de-AT.yml +3487 -25
  170. data/lib/locales/de-CH.yml +4359 -10
  171. data/lib/locales/de.yml +7185 -97
  172. data/lib/locales/ee.yml +1185 -27
  173. data/lib/locales/en/address.yml +1826 -562
  174. data/lib/locales/en/adjective.yml +179 -0
  175. data/lib/locales/en/airport.yml +381 -0
  176. data/lib/locales/en/ancient.yml +128 -4
  177. data/lib/locales/en/animal.yml +141 -2
  178. data/lib/locales/en/app.yml +89 -2
  179. data/lib/locales/en/appliance.yml +81 -2
  180. data/lib/locales/en/aqua_teen_hunger_force.yml +31 -31
  181. data/lib/locales/en/archer.yml +75 -0
  182. data/lib/locales/en/artist.yml +43 -1
  183. data/lib/locales/en/australia.yml +108 -0
  184. data/lib/locales/en/avatar.yml +57 -0
  185. data/lib/locales/en/back_to_the_future.yml +145 -117
  186. data/lib/locales/en/bank.yml +92 -3
  187. data/lib/locales/en/barcode.yml +24 -0
  188. data/lib/locales/en/beer.yml +232 -6
  189. data/lib/locales/en/bible.yml +87 -0
  190. data/lib/locales/en/big_bang_theory.yml +34 -35
  191. data/lib/locales/en/bird.yml +1280 -0
  192. data/lib/locales/en/bojack_horseman.yml +63 -3
  193. data/lib/locales/en/book.yml +486 -3
  194. data/lib/locales/en/bossa_nova.yml +110 -3
  195. data/lib/locales/en/breaking_bad.yml +110 -25
  196. data/lib/locales/en/brooklyn_nine_nine.yml +34 -0
  197. data/lib/locales/en/buffy.yml +239 -257
  198. data/lib/locales/en/business.yml +18 -2
  199. data/lib/locales/en/camera.yml +611 -0
  200. data/lib/locales/en/cannabis.yml +344 -10
  201. data/lib/locales/en/cat.yml +155 -3
  202. data/lib/locales/en/chess.yml +102 -0
  203. data/lib/locales/en/chiquito.yml +60 -61
  204. data/lib/locales/en/chuck_norris.yml +78 -79
  205. data/lib/locales/en/clash_of_clan.yml +99 -0
  206. data/lib/locales/en/code.yml +501 -1
  207. data/lib/locales/en/coffee.yml +450 -25
  208. data/lib/locales/en/color.yml +73 -1
  209. data/lib/locales/en/commerce.yml +117 -6
  210. data/lib/locales/en/community.yml +55 -30
  211. data/lib/locales/en/company.yml +1756 -13
  212. data/lib/locales/en/compass.yml +108 -12
  213. data/lib/locales/en/computer.yml +23 -4
  214. data/lib/locales/en/conan.yml +169 -0
  215. data/lib/locales/en/construction.yml +416 -422
  216. data/lib/locales/en/cosmere.yml +219 -54
  217. data/lib/locales/en/cowboy_bebop.yml +160 -0
  218. data/lib/locales/en/culture_series.yml +298 -298
  219. data/lib/locales/en/currency.yml +358 -3
  220. data/lib/locales/en/dc_comics.yml +178 -49
  221. data/lib/locales/en/demographic.yml +218 -5
  222. data/lib/locales/en/departed.yml +40 -44
  223. data/lib/locales/en/dessert.yml +78 -3
  224. data/lib/locales/en/device.yml +112 -4
  225. data/lib/locales/en/dnd.yml +615 -33
  226. data/lib/locales/en/dog.yml +262 -7
  227. data/lib/locales/en/doraemon.yml +284 -0
  228. data/lib/locales/en/dota.yml +704 -63
  229. data/lib/locales/en/dr_who.yml +468 -93
  230. data/lib/locales/en/dragon_ball.yml +243 -1
  231. data/lib/locales/en/driving_license.yml +181 -0
  232. data/lib/locales/en/drone.yml +95 -0
  233. data/lib/locales/en/dumb_and_dumber.yml +72 -56
  234. data/lib/locales/en/dune.yml +270 -131
  235. data/lib/locales/en/educator.yml +6 -0
  236. data/lib/locales/en/elder_scrolls.yml +582 -9
  237. data/lib/locales/en/electrical_components.yml +49 -3
  238. data/lib/locales/en/emotion.yml +480 -0
  239. data/lib/locales/en/esport.yml +58 -5
  240. data/lib/locales/en/fallout.yml +311 -133
  241. data/lib/locales/en/family_guy.yml +54 -4
  242. data/lib/locales/en/file.yml +109 -2
  243. data/lib/locales/en/final_fantasy_xiv.yml +754 -0
  244. data/lib/locales/en/final_space.yml +35 -0
  245. data/lib/locales/en/finance.yml +80 -4
  246. data/lib/locales/en/food.yml +1067 -10
  247. data/lib/locales/en/football.yml +121 -5
  248. data/lib/locales/en/fresh_prince_of_bel_air.yml +119 -70
  249. data/lib/locales/en/friends.yml +162 -3
  250. data/lib/locales/en/fullmetal_alchemist_brotherhood.yml +78 -0
  251. data/lib/locales/en/funny_name.yml +752 -1
  252. data/lib/locales/en/futurama.yml +7 -15
  253. data/lib/locales/en/game.yml +11 -0
  254. data/lib/locales/en/game_of_thrones.yml +2487 -5
  255. data/lib/locales/en/gender.yml +15 -3
  256. data/lib/locales/en/ghostbusters.yml +101 -88
  257. data/lib/locales/en/grateful_dead.yml +47 -45
  258. data/lib/locales/en/greek_philosophers.yml +44 -23
  259. data/lib/locales/en/hacker.yml +110 -5
  260. data/lib/locales/en/hackers.yml +53 -0
  261. data/lib/locales/en/half_life.yml +84 -3
  262. data/lib/locales/en/harry_potter.yml +323 -6
  263. data/lib/locales/en/heroes.yml +408 -3
  264. data/lib/locales/en/heroes_of_the_storm.yml +131 -4
  265. data/lib/locales/en/hey_arnold.yml +104 -21
  266. data/lib/locales/en/hipster.yml +203 -1
  267. data/lib/locales/en/hitchhikers_guide_to_the_galaxy.yml +243 -42
  268. data/lib/locales/en/hobby.yml +170 -0
  269. data/lib/locales/en/horse.yml +446 -2
  270. data/lib/locales/en/house.yml +34 -2
  271. data/lib/locales/en/how_i_met_your_mother.yml +97 -25
  272. data/lib/locales/en/how_to_train_your_dragon.yml +173 -0
  273. data/lib/locales/en/id_number.yml +7 -2
  274. data/lib/locales/en/industry_segments.yml +188 -4
  275. data/lib/locales/en/internet.yml +136 -3
  276. data/lib/locales/en/jack_handey.yml +54 -0
  277. data/lib/locales/en/job.yml +98 -7
  278. data/lib/locales/en/kamen_rider.yml +718 -0
  279. data/lib/locales/en/kpop.yml +954 -80
  280. data/lib/locales/en/league_of_legends.yml +285 -6
  281. data/lib/locales/en/lebowski.yml +58 -40
  282. data/lib/locales/en/lorem.yml +1095 -6
  283. data/lib/locales/en/lovecraft.yml +76 -6
  284. data/lib/locales/en/markdown.yml +12 -2
  285. data/lib/locales/en/marketing.yml +54 -1
  286. data/lib/locales/en/measurement.yml +42 -8
  287. data/lib/locales/en/michael_scott.yml +41 -42
  288. data/lib/locales/en/military.yml +179 -5
  289. data/lib/locales/en/minecraft.yml +273 -0
  290. data/lib/locales/en/mitch_hedberg.yml +46 -0
  291. data/lib/locales/en/mountain.yml +171 -0
  292. data/lib/locales/en/mountaineering.yml +14 -0
  293. data/lib/locales/en/movie.yml +188 -175
  294. data/lib/locales/en/music.yml +461 -29
  295. data/lib/locales/en/myst.yml +87 -31
  296. data/lib/locales/en/name.yml +6068 -6
  297. data/lib/locales/en/naruto.yml +230 -0
  298. data/lib/locales/en/nato_phonetic_alphabet.yml +27 -1
  299. data/lib/locales/en/new_girl.yml +35 -37
  300. data/lib/locales/en/one_piece.yml +359 -6
  301. data/lib/locales/en/opera.yml +169 -1
  302. data/lib/locales/en/overwatch.yml +2648 -2622
  303. data/lib/locales/en/parks_and_rec.yml +33 -4
  304. data/lib/locales/en/pearl_jam.yml +207 -207
  305. data/lib/locales/en/phish.yml +388 -389
  306. data/lib/locales/en/phone_number.yml +78 -3
  307. data/lib/locales/en/pokemon.yml +417 -4
  308. data/lib/locales/en/prince.yml +219 -219
  309. data/lib/locales/en/princess_bride.yml +48 -2
  310. data/lib/locales/en/programming_language.yml +753 -3
  311. data/lib/locales/en/quote.yml +606 -163
  312. data/lib/locales/en/rajnikanth.yml +74 -74
  313. data/lib/locales/en/relationship.yml +29 -6
  314. data/lib/locales/en/restaurant.yml +31 -31
  315. data/lib/locales/en/rick_and_morty.yml +116 -3
  316. data/lib/locales/en/rock_band.yml +228 -1
  317. data/lib/locales/en/rupaul.yml +120 -122
  318. data/lib/locales/en/science.yml +481 -3
  319. data/lib/locales/en/seinfeld.yml +110 -3
  320. data/lib/locales/en/shakespeare.yml +46 -53
  321. data/lib/locales/en/silicon_valley.yml +122 -50
  322. data/lib/locales/en/simpsons.yml +897 -691
  323. data/lib/locales/en/slack_emoji.yml +874 -8
  324. data/lib/locales/en/smashing_pumpkins.yml +382 -0
  325. data/lib/locales/en/source.yml +35 -0
  326. data/lib/locales/en/south_park.yml +360 -2
  327. data/lib/locales/en/space.yml +373 -14
  328. data/lib/locales/en/spongebob.yml +489 -0
  329. data/lib/locales/en/sport.yml +130 -0
  330. data/lib/locales/en/star_trek.yml +105 -4
  331. data/lib/locales/en/star_wars.yml +525 -528
  332. data/lib/locales/en/stargate.yml +65 -18
  333. data/lib/locales/en/stranger_thing.yml +31 -33
  334. data/lib/locales/en/street_fighter.yml +1524 -0
  335. data/lib/locales/en/studio_ghibli.yml +107 -0
  336. data/lib/locales/en/subscription.yml +47 -5
  337. data/lib/locales/en/super_mario.yml +58 -0
  338. data/lib/locales/en/super_smash_bros.yml +23 -6
  339. data/lib/locales/en/superhero.yml +574 -4
  340. data/lib/locales/en/supernatural.yml +141 -0
  341. data/lib/locales/en/sword_art_online.yml +327 -331
  342. data/lib/locales/en/tarkov.yml +593 -0
  343. data/lib/locales/en/tea.yml +172 -0
  344. data/lib/locales/en/team.yml +125 -3
  345. data/lib/locales/en/the_expanse.yml +92 -4
  346. data/lib/locales/en/the_it_crowd.yml +148 -152
  347. data/lib/locales/en/the_kingkiller_chronicle.yml +56 -0
  348. data/lib/locales/en/the_office.yml +82 -0
  349. data/lib/locales/en/the_room.yml +68 -0
  350. data/lib/locales/en/the_thick_of_it.yml +83 -3
  351. data/lib/locales/en/theater.yml +597 -0
  352. data/lib/locales/en/tolkien.yml +2453 -0
  353. data/lib/locales/en/touhou.yml +839 -0
  354. data/lib/locales/en/train_station.yml +280 -0
  355. data/lib/locales/en/tron.yml +227 -0
  356. data/lib/locales/en/twin_peaks.yml +130 -3
  357. data/lib/locales/en/umphreys_mcgee.yml +266 -1
  358. data/lib/locales/en/university.yml +15 -2
  359. data/lib/locales/en/v_for_vendetta.yml +157 -160
  360. data/lib/locales/en/vehicle.yml +2809 -75
  361. data/lib/locales/en/venture_bros.yml +225 -4
  362. data/lib/locales/en/verbs.yml +3785 -5
  363. data/lib/locales/en/volleyball.yml +501 -0
  364. data/lib/locales/en/warhammer_fantasy.yml +540 -573
  365. data/lib/locales/en/witcher.yml +426 -7
  366. data/lib/locales/en/world_cup.yml +1132 -235
  367. data/lib/locales/en/world_of_warcraft.yml +122 -4
  368. data/lib/locales/en/yoda.yml +38 -1
  369. data/lib/locales/en/zelda.yml +962 -4
  370. data/lib/locales/en-AU.yml +725 -48
  371. data/lib/locales/en-BORK.yml +104 -1
  372. data/lib/locales/en-CA.yml +373 -18
  373. data/lib/locales/en-GB.yml +118 -8
  374. data/lib/locales/en-IND.yml +1259 -16
  375. data/lib/locales/en-KE.yml +212 -0
  376. data/lib/locales/en-MS.yml +364 -16
  377. data/lib/locales/en-NEP.yml +212 -35
  378. data/lib/locales/en-NG.yml +737 -65
  379. data/lib/locales/en-NZ.yml +1153 -121
  380. data/lib/locales/en-PAK.yml +392 -9
  381. data/lib/locales/en-SG.yml +581 -15
  382. data/lib/locales/en-TH.yml +1 -1
  383. data/lib/locales/en-UG.yml +374 -75
  384. data/lib/locales/en-US.yml +6921 -81
  385. data/lib/locales/en-ZA.yml +1394 -13
  386. data/lib/locales/en-au-ocker.yml +266 -21
  387. data/lib/locales/en.yml +0 -3
  388. data/lib/locales/es-AR.yml +4570 -0
  389. data/lib/locales/es-MX.yml +1907 -41
  390. data/lib/locales/es.yml +2172 -52
  391. data/lib/locales/fa.yml +1624 -5
  392. data/lib/locales/fi-FI.yml +316 -16
  393. data/lib/locales/fr/address.yml +773 -0
  394. data/lib/locales/fr/adjective.yml +266 -0
  395. data/lib/locales/fr/ancient.yml +141 -0
  396. data/lib/locales/fr/animal.yml +122 -0
  397. data/lib/locales/fr/appliance.yml +69 -0
  398. data/lib/locales/fr/book.yml +31 -0
  399. data/lib/locales/fr/color.yml +34 -0
  400. data/lib/locales/fr/company.yml +497 -0
  401. data/lib/locales/fr/compass.yml +71 -0
  402. data/lib/locales/fr/demographic.yml +6 -0
  403. data/lib/locales/fr/gender.yml +21 -0
  404. data/lib/locales/fr/internet.yml +15 -0
  405. data/lib/locales/fr/lorem.yml +1094 -0
  406. data/lib/locales/fr/measurement.yml +34 -0
  407. data/lib/locales/fr/name.yml +1193 -0
  408. data/lib/locales/fr/phone_number.yml +38 -0
  409. data/lib/locales/fr/pokemon.yml +421 -0
  410. data/lib/locales/fr-CA.yml +2754 -45
  411. data/lib/locales/fr-CH.yml +2455 -42
  412. data/lib/locales/fr.yml +2 -112
  413. data/lib/locales/he.yml +255 -9
  414. data/lib/locales/hy.yml +3630 -119
  415. data/lib/locales/id.yml +839 -10
  416. data/lib/locales/it.yml +1310 -31
  417. data/lib/locales/ja/README.md +13 -0
  418. data/lib/locales/ja/address.yml +363 -0
  419. data/lib/locales/ja/adjective.yml +148 -0
  420. data/lib/locales/ja/ancient.yml +18 -0
  421. data/lib/locales/ja/animal.yml +87 -0
  422. data/lib/locales/ja/artist.yml +46 -0
  423. data/lib/locales/ja/bank.yml +139 -0
  424. data/lib/locales/ja/book.yml +496 -0
  425. data/lib/locales/ja/cat.yml +79 -0
  426. data/lib/locales/ja/coffee.yml +22 -0
  427. data/lib/locales/ja/color.yml +35 -0
  428. data/lib/locales/ja/commerce.yml +103 -0
  429. data/lib/locales/ja/company.yml +26 -0
  430. data/lib/locales/ja/dog.yml +339 -0
  431. data/lib/locales/ja/emotion.yml +49 -0
  432. data/lib/locales/ja/food.yml +41 -0
  433. data/lib/locales/ja/football.yml +115 -0
  434. data/lib/locales/ja/gender.yml +6 -0
  435. data/lib/locales/ja/lorem.yml +1020 -0
  436. data/lib/locales/ja/name.yml +213 -0
  437. data/lib/locales/ja/naruto.yml +230 -0
  438. data/lib/locales/ja/overwatch.yml +37 -0
  439. data/lib/locales/ja/phone_number.yml +13 -0
  440. data/lib/locales/ja/pokemon.yml +441 -0
  441. data/lib/locales/ja/relationship.yml +33 -0
  442. data/lib/locales/ja/restaurant.yml +82 -0
  443. data/lib/locales/ja/space.yml +23 -0
  444. data/lib/locales/ja/sport.yml +130 -0
  445. data/lib/locales/ja/studio_ghibli.yml +112 -0
  446. data/lib/locales/ja/subscription.yml +50 -0
  447. data/lib/locales/ja/super_mario.yml +73 -0
  448. data/lib/locales/ja/super_smash_bros.yml +8 -0
  449. data/lib/locales/ja/touhou.yml +466 -0
  450. data/lib/locales/ja/university.yml +22 -0
  451. data/lib/locales/ja/zelda.yml +19 -0
  452. data/lib/locales/ko.yml +1380 -29
  453. data/lib/locales/lt.yml +315 -0
  454. data/lib/locales/lv.yml +1221 -27
  455. data/lib/locales/mi-NZ.yml +283 -0
  456. data/lib/locales/nb-NO.yml +518 -27
  457. data/lib/locales/nl.yml +33514 -55
  458. data/lib/locales/pl.yml +4008 -38
  459. data/lib/locales/pt-BR.yml +8207 -660
  460. data/lib/locales/pt.yml +844 -43
  461. data/lib/locales/ru.yml +1355 -30
  462. data/lib/locales/sk.yml +4416 -41
  463. data/lib/locales/sv.yml +731 -41
  464. data/lib/locales/th.yml +375 -375
  465. data/lib/locales/tr.yml +77 -19
  466. data/lib/locales/uk.yml +1810 -44
  467. data/lib/locales/vi.yml +392 -48
  468. data/lib/locales/zh-CN/bank.yml +17 -0
  469. data/lib/locales/zh-CN.yml +540 -18
  470. data/lib/locales/zh-TW.yml +1030 -14
  471. metadata +188 -141
  472. data/History.md +0 -176
  473. data/lib/faker/default/bossa_nova.rb +0 -33
  474. data/lib/faker/default/fillmurray.rb +0 -45
  475. data/lib/faker/default/internet.rb +0 -358
  476. data/lib/faker/default/lorem_pixel.rb +0 -69
  477. data/lib/faker/default/twitter.rb +0 -223
  478. data/lib/locales/en/hobbit.yml +0 -19
  479. data/lib/locales/en/lord_of_the_rings.yml +0 -6
  480. data/lib/locales/en/show.yml +0 -597
  481. data/lib/locales/ja.yml +0 -101
  482. /data/lib/faker/{books → default}/book.rb +0 -0
  483. /data/lib/faker/{games → default}/game.rb +0 -0
  484. /data/lib/faker/{movies → default}/movie.rb +0 -0
  485. /data/lib/faker/{default/internet_http.rb → internet/http.rb} +0 -0
data/README.md CHANGED
@@ -1,78 +1,94 @@
1
+ # Faker [![Gem Version][version-badge]][rubygems] [![Build Status][github-actions-badge]][github-actions] [![Total Downloads][downloads-total]][rubygems] [![Downloads][downloads-badge]][rubygems]
1
2
 
2
- ![logotype a happy-07](https://user-images.githubusercontent.com/36028424/40263395-4318481e-5b44-11e8-92e5-3dcc1ce169b3.png)
3
+ <div align="center">
4
+ <img src="https://user-images.githubusercontent.com/36028424/40263395-4318481e-5b44-11e8-92e5-3dcc1ce169b3.png" width="400"/>
5
+ <p>Generate (almost) realistic fake data for testing, demos, and populating your database during development.</p>
6
+ </div>
3
7
 
4
- # Faker
5
- [![Tests](https://github.com/faker-ruby/faker/workflows/Tests/badge.svg)](https://github.com/faker-ruby/faker/actions?query=workflow%3ATests)
6
- [![Gem Version](https://badge.fury.io/rb/faker.svg)](https://badge.fury.io/rb/faker)
7
- [![Inline docs](https://inch-ci.org/github/faker-ruby/faker.svg?branch=master)](https://inch-ci.org/github/faker-ruby/faker)
8
- [![Test Coverage](https://api.codeclimate.com/v1/badges/ef54c7f9df86e965d64b/test_coverage)](https://codeclimate.com/github/stympy/faker/test_coverage)
9
- [![Maintainability](https://api.codeclimate.com/v1/badges/ef54c7f9df86e965d64b/maintainability)](https://codeclimate.com/github/stympy/faker/maintainability)
10
- [![SemVer compatibility](https://api.dependabot.com/badges/compatibility_score?dependency-name=faker&package-manager=bundler&version-scheme=semver)](https://dependabot.com/compatibility-score.html?dependency-name=faker&package-manager=bundler&version-scheme=semver)
8
+ [version-badge]: https://img.shields.io/gem/v/faker.svg
9
+ [rubygems]: https://rubygems.org/gems/faker
10
+ [github-actions-badge]: https://img.shields.io/github/actions/workflow/status/faker-ruby/faker/.github/workflows/ruby.yml?branch=main
11
+ [github-actions]: https://github.com/faker-ruby/faker/actions
12
+ [downloads-total]: https://img.shields.io/gem/dt/faker.svg
13
+ [downloads-badge]: https://img.shields.io/gem/dtv/faker.svg
11
14
 
12
- This gem is a port of [Perl's Data::Faker library](https://metacpan.org/pod/Data::Faker) that generates fake data.
15
+ ## Quick links
13
16
 
14
- It comes in very handy for taking screenshots (taking screenshots for my
15
- project, [Catch the Best](http://catchthebest.com/) was the original impetus
16
- for the creation of this gem), having real-looking test data, and having your
17
- database populated with more than one or two records while you're doing
18
- development.
17
+ - 📖 **[Read the documentation for the latest version][rubydocs].**
18
+ - 📢 **[See what's changed in recent versions][changelog].**
19
19
 
20
- - [Faker](#faker)
21
- - [NOTE](#note)
22
- - [Installing](#installing)
23
- - [Usage](#usage)
24
- - [CLI](#cli)
25
- - [Ensuring unique values](#ensuring-unique-values)
26
- - [Deterministic Random](#deterministic-random)
27
- - [Generators](#generators)
28
- - [Default](#default)
29
- - [Blockchain](#blockchain)
30
- - [Books](#books)
31
- - [Creature](#creature)
32
- - [Games](#games)
33
- - [Japanese Media](#japanese-media)
34
- - [Movies](#movies)
35
- - [Music](#music)
36
- - [Quotes](#quotes)
37
- - [Sports](#sports)
38
- - [Tv Shows](#tv-shows)
39
- - [Customization](#customization)
40
- - [Contributing](#contributing)
41
- - [Contact](#contact)
42
- - [License](#license)
20
+ [rubydocs]: https://www.rubydoc.info/gems/faker/
21
+ [changelog]: CHANGELOG.md
43
22
 
44
- ### NOTE
45
- * While Faker generates data at random, returned values are not guaranteed to be unique by default.
46
- You must explicitly specify when you require unique values, see [details](#ensuring-unique-values).
47
- Values also can be deterministic if you use the deterministic feature, see [details](#deterministic-random)
48
- * This is the `master` branch of Faker and may contain changes that are not yet released.
49
- Please refer the README of your version for the available methods.
50
- List of all versions is [available here](https://github.com/stympy/faker/releases).
51
-
52
- ## Installing
53
- ```bash
54
- gem install faker
55
- ```
56
- 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:
23
+ ## Features
24
+
25
+ - Internet: Email addresses, Passwords, Domains, etc.
26
+ - Date and Time: Travel back in time or to the future.
27
+ - Person: Names, Genders, Bios, Job titles, and more.
28
+ - Number and String: Random numbers and strings.
29
+ - Location: Addresses, Zip Codes, Street Names, States, and Countries.
30
+ - Finance: Account Details, Transactions, and Crypto Addresses.
31
+ - Localization - Customize faker with over 40 locales to generate realistic-looking Names, Addresses, and Phone Numbers.
32
+
33
+ > **Note:** The generated names, addresses, emails, phone numbers, and/or other data might return valid information. Please be careful when using faker in your tests.
34
+
35
+ For a complete list of the generators, see [Generators](./GENERATORS.md).
36
+
37
+ ## Getting Started
38
+
39
+ Start by including `faker` in your Gemfile:
57
40
 
58
41
  ```ruby
59
- gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'master'
42
+ gem 'faker'
60
43
  ```
61
44
 
45
+ Then run `bundle install`.
46
+
62
47
  ## Usage
48
+
63
49
  ```ruby
64
50
  require 'faker'
65
51
 
66
- Faker::Name.name #=> "Christophe Bartell"
67
-
68
- Faker::Internet.email #=> "kirsten.greenholt@corkeryfisher.info"
52
+ Faker::Name.name #=> "Christophe Bartell"
53
+ Faker::Internet.password #=> "Vg5mSvY1UeRg7"
54
+ Faker::Internet.email #=> "eliza@mann.test"
55
+ Faker::Address.full_address #=> "5479 William Way, East Sonnyhaven, LA 63637"
56
+ Faker::Markdown.emphasis #=> "Quo qui aperiam. Amet corrupti distinctio. Sit quia *dolor.*"
57
+ Faker::Lorem.paragraph #=> "Recusandae minima consequatur. Expedita sequi blanditiis. Ut fuga et."
58
+ Faker::Alphanumeric.alpha(number: 10) #=> "zlvubkrwga"
59
+ Faker::ProgrammingLanguage.name #=> "Ruby"
69
60
  ```
70
61
 
71
- ### CLI
72
- Instructions are available in the [faker-bot README](https://github.com/faker-ruby/faker-bot).
62
+ ## Table of Contents
63
+
64
+ - [Faker ](#faker----)
65
+ - [Quick links](#quick-links)
66
+ - [Features](#features)
67
+ - [Getting Started](#getting-started)
68
+ - [Usage](#usage)
69
+ - [Table of Contents](#table-of-contents)
70
+ - [Notes](#notes)
71
+ - [Ensuring unique values](#ensuring-unique-values)
72
+ - [Deterministic Random](#deterministic-random)
73
+ - [Localization](#localization)
74
+ - [Minitest and Faker \>= 2.22](#minitest-and-faker--222)
75
+ - [Generators](#generators)
76
+ - [Contributing](#contributing)
77
+ - [Versioning](#versioning)
78
+ - [Inspiration](#inspiration)
79
+ - [In the media](#in-the-media)
80
+ - [License](#license)
81
+
82
+ ### Notes
83
+
84
+ * While Faker generates data at random, returned values are not guaranteed to be unique by default. To explicitly specify when you require unique values, see [Ensuring Unique Values](#ensuring-unique-values).
85
+ * Values also can be deterministic if you use the deterministic feature, see [Deterministic Random](#deterministic-random).
86
+ * This is the `main` branch of Faker and may contain changes that are not yet released. The list of all versions is [available here](https://github.com/stympy/faker/releases).
73
87
 
74
88
  ### Ensuring unique values
75
- Prefix your method call with `unique`. For example:
89
+
90
+ To ensure Faker generates unique values, prefix your method call with `unique`:
91
+
76
92
  ```ruby
77
93
  Faker::Name.unique.name # This will return a unique name every time it is called
78
94
  ```
@@ -81,17 +97,17 @@ If too many unique values are requested from a generator that has a limited
81
97
  number of potential values, a `Faker::UniqueGenerator::RetryLimitExceeded`
82
98
  exception may be raised. It is possible to clear the record of unique values
83
99
  that have been returned, for example between tests.
100
+
84
101
  ```ruby
85
- Faker::Name.unique.clear # Clears used values for Faker::Name
102
+ Faker::Name.unique.clear # Clears used values for Faker::Name
86
103
  Faker::UniqueGenerator.clear # Clears used values for all generators
87
104
  ```
88
105
 
89
- You also can give some already used values to the unique generator if you have
90
- collisions with the generated data (i.e: using FactoryBot with random and
106
+ You can also give some already-used values to the unique generator if you have
107
+ collisions with the generated data (i.e., using FactoryBot with random and
91
108
  manually set values).
92
109
 
93
110
  ```ruby
94
- # Usage:
95
111
  # Faker::<generator>.unique.exclude(method, arguments, list)
96
112
 
97
113
  # Add 'azerty' and 'wxcvbn' to the string generator with 6 char length
@@ -99,281 +115,83 @@ Faker::Lorem.unique.exclude :string, [number: 6], %w[azerty wxcvbn]
99
115
  ```
100
116
 
101
117
  ### Deterministic Random
102
- Faker supports seeding of its pseudo-random number generator (PRNG) to provide deterministic output of repeated method calls.
118
+
119
+ Faker supports seeding of its pseudo-random number generator (PRNG)
120
+ to provide deterministic output of repeated method calls.
103
121
 
104
122
  ```ruby
105
123
  Faker::Config.random = Random.new(42)
106
- Faker::Company.bs #=> "seize collaborative mindshare"
107
- Faker::Company.bs #=> "engage strategic platforms"
124
+ Faker::Lorem.word #=> "velit"
125
+ Faker::Lorem.word #=> "quisquam"
126
+
108
127
  Faker::Config.random = Random.new(42)
109
- Faker::Company.bs #=> "seize collaborative mindshare"
110
- Faker::Company.bs #=> "engage strategic platforms"
128
+ Faker::Lorem.word #=> "velit"
129
+ Faker::Lorem.word #=> "quisquam"
111
130
 
112
- Faker::Config.random = nil # seeds the PRNG using default entropy sources
113
- Faker::Config.random.seed #=> 185180369676275068918401850258677722187
114
- Faker::Company.bs #=> "cultivate viral synergies"
131
+ Faker::Config.random = nil # seeds the PRNG using default entropy sources
132
+ Faker::Config.random.seed #=> 185180369676275068918401850258677722187
133
+ Faker::Lorem.word #=> "ipsam"
115
134
  ```
116
135
 
117
- ## Generators
118
- **NOTE: Some of the generators below aren't released yet. If you want to use them, change the line in your gemfile to:**
136
+ ### Localization
137
+
138
+ You may want Faker to print information depending on your location in the world.
139
+ To assist you in this, Faker uses the `I18n` gem to store strings and formats to
140
+ represent the names and postal codes of the area of your choosing.
141
+
142
+ Just set the locale you want as shown below, and Faker will take care of the rest.
119
143
 
120
144
  ```ruby
121
- gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'master'
145
+ Faker::Config.locale = 'es'
146
+ # or
147
+ Faker::Config.locale = :es
122
148
  ```
123
149
 
124
- ### Default
125
- - [Faker::Address](doc/default/address.md)
126
- - [Faker::Alphanumeric](doc/default/alphanumeric.md)
127
- - [Faker::Ancient](doc/default/ancient.md)
128
- - [Faker::App](doc/default/app.md)
129
- - [Faker::Appliance](doc/default/appliance.md)
130
- - [Faker::Artist](doc/default/artist.md)
131
- - [Faker::Avatar](doc/default/avatar.md)
132
- - [Faker::Bank](doc/default/bank.md)
133
- - [Faker::Beer](doc/default/beer.md)
134
- - [Faker::Blood](doc/default/blood.md)
135
- - [Faker::Boolean](doc/default/boolean.md)
136
- - [Faker::BossaNova](doc/default/bossa_nova.md)
137
- - [Faker::Business](doc/default/business.md)
138
- - [Faker::Cannabis](doc/default/cannabis.md)
139
- - [Faker::ChileRut](doc/default/chile_rut.md)
140
- - [Faker::ChuckNorris](doc/default/chuck_norris.md)
141
- - [Faker::Code](doc/default/code.md)
142
- - [Faker::Coffee](doc/default/coffee.md)
143
- - [Faker::Coin](doc/default/coin.md)
144
- - [Faker::Color](doc/default/color.md)
145
- - [Faker::Commerce](doc/default/commerce.md)
146
- - [Faker::Company](doc/default/company.md)
147
- - [Faker::Compass](doc/default/compass.md)
148
- - [Faker::Computer](doc/default/computer.md)
149
- - [Faker::Construction](doc/default/construction.md)
150
- - [Faker::Cosmere](doc/default/cosmere.md)
151
- - [Faker::Crypto](doc/default/crypto.md)
152
- - [Faker::CryptoCoin](doc/default/crypto_coin.md)
153
- - [Faker::Currency](doc/default/currency.md)
154
- - [Faker::Date](doc/default/date.md)
155
- - [Faker::DcComics](doc/default/dc_comics.md)
156
- - [Faker::Demographic](doc/default/demographic.md)
157
- - [Faker::Dessert](doc/default/dessert.md)
158
- - [Faker::Device](doc/default/device.md)
159
- - [Faker::DrivingLicence](doc/default/driving_licence.md)
160
- - [Faker::Educator](doc/default/educator.md)
161
- - [Faker::ElectricalComponents](doc/default/electrical_components.md)
162
- - [Faker::Esport](doc/default/esport.md)
163
- - [Faker::File](doc/default/file.md)
164
- - [Faker::Fillmurray](doc/default/fillmurray.md)
165
- - [Faker::Finance](doc/default/finance.md)
166
- - [Faker::Food](doc/default/food.md)
167
- - [Faker::FunnyName](doc/default/funny_name.md)
168
- - [Faker::Gender](doc/default/gender.md)
169
- - [Faker::GreekPhilosophers](doc/default/greek_philosophers.md)
170
- - [Faker::Hacker](doc/default/hacker.md)
171
- - [Faker::Hipster](doc/default/hipster.md)
172
- - [Faker::House](doc/default/house.md)
173
- - [Faker::IDNumber](doc/default/id_number.md)
174
- - [Faker::IndustrySegments](doc/default/industry_segments.md)
175
- - [Faker::Internet](doc/default/internet.md)
176
- - [Faker::Invoice](doc/default/invoice.md)
177
- - [Faker::Job](doc/default/job.md)
178
- - [Faker::Json](doc/default/json.md)
179
- - [Faker::Kpop](doc/default/kpop.md)
180
- - [Faker::Lorem](doc/default/lorem.md)
181
- - [Faker::LoremFlickr](doc/default/lorem_flickr.md)
182
- - [Faker::LoremPixel](doc/default/lorem_pixel.md)
183
- - [Faker::Markdown](doc/default/markdown.md)
184
- - [Faker::Marketing](doc/default/marketing.md)
185
- - [Faker::Measurement](doc/default/measurement.md)
186
- - [Faker::Military](doc/default/military.md)
187
- - [Faker::Name](doc/default/name.md)
188
- - [Faker::Nation](doc/default/nation.md)
189
- - [Faker::NatoPhoneticAlphabet](doc/default/nato_phonetic_alphabet.md)
190
- - [Faker::NationalHealthService](doc/default/national_health_service.md)
191
- - [Faker::Number](doc/default/number.md)
192
- - [Faker::Omniauth](doc/default/omniauth.md)
193
- - [Faker::PhoneNumber](doc/default/phone_number.md)
194
- - [Faker::Placeholdit](doc/default/placeholdit.md)
195
- - [Faker::ProgrammingLanguage](doc/default/programming_language.md)
196
- - [Faker::Relationship](doc/default/relationship.md)
197
- - [Faker::Restaurant](doc/default/restaurant.md)
198
- - [Faker::Science](doc/default/science.md)
199
- - [Faker::SlackEmoji](doc/default/slack_emoji.md)
200
- - [Faker::Source](doc/default/source.md)
201
- - [Faker::SouthAfrica](doc/default/south_africa.md)
202
- - [Faker::Space](doc/default/space.md)
203
- - [Faker::String](doc/default/string.md)
204
- - [Faker::Stripe](doc/default/stripe.md)
205
- - [Faker::Subscription](doc/default/subscription.md)
206
- - [Faker::Superhero](doc/default/superhero.md)
207
- - [Faker::Team](doc/default/team.md)
208
- - [Faker::Time](doc/default/time.md)
209
- - [Faker::Twitter](doc/default/twitter.md)
210
- - [Faker::Types](doc/default/types.md)
211
- - [Faker::University](doc/default/university.md)
212
- - [Faker::Vehicle](doc/default/vehicle.md)
213
- - [Faker::Verbs](doc/default/verbs.md)
214
- - [Faker::WorldCup](doc/default/world_cup.md)
215
-
216
- ### Blockchain
217
- - [Faker::Blockchain::Aeternity](doc/blockchain/aeternity.md)
218
- - [Faker::Blockchain::Bitcoin](doc/blockchain/bitcoin.md)
219
- - [Faker::Blockchain::Ethereum](doc/blockchain/ethereum.md)
220
- - [Faker::Blockchain::Tezos](doc/blockchain/tezos.md)
221
-
222
- ### Books
223
- - [Faker::Book](doc/books/book.md)
224
- - [Faker::Books::CultureSeries](doc/books/culture_series.md)
225
- - [Faker::Books::Dune](doc/books/dune.md)
226
- - [Faker::Books::Lovecraft](doc/books/lovecraft.md)
227
-
228
- ### Creature
229
- - [Faker::Creature::Animal](doc/creature/animal.md)
230
- - [Faker::Creature::Cat](doc/creature/cat.md)
231
- - [Faker::Creature::Dog](doc/creature/dog.md)
232
- - [Faker::Creature::Horse](doc/creature/horse.md)
233
-
234
- ### Games
235
- - [Faker::Game](doc/games/game.md)
236
- - [Faker::Games::DnD](doc/games/dnd.md)
237
- - [Faker::Games::Dota](doc/games/dota.md)
238
- - [Faker::Games::ElderScrolls](doc/games/elder_scrolls.md)
239
- - [Faker::Games::Fallout](doc/games/fallout.md)
240
- - [Faker::Games::HalfLife](doc/games/half_life.md)
241
- - [Faker::Games::Heroes](doc/games/heroes.md)
242
- - [Faker::Games::HeroesOfTheStorm](doc/games/heroes_of_the_storm.md)
243
- - [Faker::Games::LeagueOfLegends](doc/games/league_of_legends.md)
244
- - [Faker::Games::Myst](doc/games/myst.md)
245
- - [Faker::Games::Overwatch](doc/games/overwatch.md)
246
- - [Faker::Games::Pokemon](doc/games/pokemon.md)
247
- - [Faker::Games::SonicTheHedgehog](doc/games/sonic_the_hedgehog.md)
248
- - [Faker::Games::SuperSmashBros](doc/games/super_smash_bros.md)
249
- - [Faker::Games::WarhammerFantasy](doc/games/warhammer_fantasy.md)
250
- - [Faker::Games::Witcher](doc/games/witcher.md)
251
- - [Faker::Games::WorldOfWarcraft](doc/games/world_of_warcraft.md)
252
- - [Faker::Games::Zelda](doc/games/zelda.md)
253
-
254
- ### Japanese Media
255
- - [Faker::JapaneseMedia::DragonBall](doc/japanese_media/dragon_ball.md)
256
- - [Faker::JapaneseMedia::OnePiece](doc/japanese_media/one_piece.md)
257
- - [Faker::JapaneseMedia::SwordArtOnline](doc/japanese_media/sword_art_online.md)
258
-
259
- ### Movies
260
- - [Faker::Movie](doc/movies/movie.md)
261
- - [Faker::Movies::BackToTheFuture](doc/movies/back_to_the_future.md)
262
- - [Faker::Movies::Departed](doc/movies/departed.md)
263
- - [Faker::Movies::Ghostbusters](doc/movies/ghostbusters.md)
264
- - [Faker::Movies::HarryPotter](doc/movies/harry_potter.md)
265
- - [Faker::Movies::HitchhikersGuideToTheGalaxy](doc/movies/hitchhikers_guide_to_the_galaxy.md)
266
- - [Faker::Movies::Hobbit](doc/movies/hobbit.md)
267
- - [Faker::Movies::Lebowski](doc/movies/lebowski.md)
268
- - [Faker::Movies::LordOfTheRings](doc/movies/lord_of_the_rings.md)
269
- - [Faker::Movies::PrincessBride](doc/movies/princess_bride.md)
270
- - [Faker::Movies::StarWars](doc/movies/star_wars.md)
271
- - [Faker::Movies::VForVendetta](doc/movies/v_for_vendetta.md)
272
-
273
- ### Music
274
- - [Faker::Music](doc/music/music.md)
275
- - [Faker::Music::GratefulDead](doc/music/grateful_dead.md)
276
- - [Faker::Music::Opera](doc/music/opera.md)
277
- - [Faker::Music::Phish](doc/music/phish.md)
278
- - [Faker::Music::Prince](doc/music/prince.md)
279
- - [Faker::Music::RockBand](doc/music/rock_band.md)
280
- - [Faker::Music::Rush](doc/music/rush.md)
281
- - [Faker::Music::UmphreysMcgee](doc/music/umphreys_mcgee.md)
282
-
283
- ### Quotes
284
- - [Faker::Quote](doc/quotes/quote.md)
285
- - [Faker::Quotes::Chiquito](doc/quotes/chiquito.md)
286
- - [Faker::Quotes::Rajnikanth](doc/quotes/rajnikanth.md)
287
- - [Faker::Quotes::Shakespeare](doc/quotes/shakespeare.md)
288
-
289
-
290
- ### Sports
291
- - [Faker::Sports::Basketball](doc/sports/basketball.md)
292
- - [Faker::Sports::Football](doc/sports/football.md)
293
-
294
- ### Tv Shows
295
- - [Faker::TvShows::AquaTeenHungerForce](doc/tv_shows/aqua_teen_hunger_force.md)
296
- - [Faker::TvShows::BigBangTheory](doc/tv_shows/big_bang_theory.md)
297
- - [Faker::TvShows::BojackHorseman](doc/tv_shows/bojack_horseman.md)
298
- - [Faker::TvShows::BreakingBad](doc/tv_shows/breaking_bad.md)
299
- - [Faker::TvShows::Buffy](doc/tv_shows/buffy.md)
300
- - [Faker::TvShows::Community](doc/tv_shows/community.md)
301
- - [Faker::TvShows::DrWho](doc/tv_shows/dr_who.md)
302
- - [Faker::TvShows::DumbAndDumber](doc/tv_shows/dumb_and_dumber.md)
303
- - [Faker::TvShows::FamilyGuy](doc/tv_shows/family_guy.md)
304
- - [Faker::TvShows::Friends](doc/tv_shows/friends.md)
305
- - [Faker::TvShows::GameOfThrones](doc/tv_shows/game_of_thrones.md)
306
- - [Faker::TvShows::HeyArnold](doc/tv_shows/hey_arnold.md)
307
- - [Faker::TvShows::HowIMetYourMother](doc/tv_shows/how_i_met_your_mother.md)
308
- - [Faker::TvShows::MichaelScott](doc/tv_shows/michael_scott.md)
309
- - [Faker::TvShows::NewGirl](doc/tv_shows/new_girl.md)
310
- - [Faker::TvShows::ParksAndRec](doc/tv_shows/parks_and_rec.md)
311
- - [Faker::TvShows::RickAndMorty](doc/tv_shows/rick_and_morty.md)
312
- - [Faker::TvShows::RuPaul](doc/tv_shows/rupaul.md)
313
- - [Faker::TvShows::Seinfeld](doc/tv_shows/seinfeld.md)
314
- - [Faker::TvShows::SiliconValley](doc/tv_shows/silicon_valley.md)
315
- - [Faker::TvShows::Simpsons](doc/tv_shows/simpsons.md)
316
- - [Faker::TvShows::SouthPark](doc/tv_shows/south_park.md)
317
- - [Faker::TvShows::StarTrek](doc/tv_shows/star_trek.md)
318
- - [Faker::TvShows::Stargate](doc/tv_shows/stargate.md)
319
- - [Faker::TvShows::StrangerThings](doc/tv_shows/stranger_things.md)
320
- - [Faker::TvShows::Suits](doc/tv_shows/suits.md)
321
- - [Faker::TvShows::TheExpanse](doc/tv_shows/the_expanse.md)
322
- - [Faker::TvShows::TheFreshPrinceOfBelAir](doc/tv_shows/the_fresh_prince_of_bel_air.md)
323
- - [Faker::TvShows::TheITCrowd](doc/tv_shows/the_it_crowd.md)
324
- - [Faker::TvShows::TheThickOfIt](doc/tv_shows/the_thick_of_it.md)
325
- - [Faker::TvShows::TwinPeaks](doc/tv_shows/twin_peaks.md)
326
- - [Faker::TvShows::VentureBros](doc/tv_shows/venture_bros.md)
327
-
328
- ## Customization
329
- Since you may want to make addresses and other types of data look different
330
- depending on where in the world you are (US postal codes vs. UK postal codes,
331
- for example), Faker uses the I18n gem to store strings (like state names) and
332
- formats (US postal codes are NNNNN while UK postal codes are AAN NAA),
333
- allowing you to get different formats by switching locales. Just set
334
- Faker::Config.locale to the locale you want, and Faker will take care of the
335
- rest.
336
-
337
- If your locale doesn't already exist, create it in the `lib/locales` directory
338
- and you can then override or add elements to suit your needs. See more about how to
339
- use locales [here](lib/locales/README.md)
340
-
341
- ```yaml
342
- en-au-ocker:
343
- faker:
344
- name:
345
- # Existing faker field, new data
346
- first_name:
347
- - Charlotte
348
- - Ava
349
- - Chloe
350
- - Emily
351
-
352
- # New faker fields
353
- ocker_first_name:
354
- - Bazza
355
- - Bluey
356
- - Davo
357
- - Johno
358
- - Shano
359
- - Shazza
360
- region:
361
- - South East Queensland
362
- - Wide Bay Burnett
363
- - Margaret River
364
- - Port Pirie
365
- - Gippsland
366
- - Elizabeth
367
- - Barossa
150
+ To override Faker's locales, and set it on threaded server environments
151
+ check out the [locales README](lib/locales/README.md).
152
+
153
+ ### Minitest and Faker >= 2.22
154
+
155
+ To prevent Faker (version >= 2.22) from [generating duplicate values](https://github.com/faker-ruby/faker/issues/2534) when using Minitest,
156
+ you might need to add the following to the `test_helper.rb` or `rails_helper.rb` file:
157
+
158
+ ```ruby
159
+ Faker::Config.random = Random.new
368
160
  ```
369
161
 
162
+ ## Generators
163
+
164
+ To see the full list, check out the [GENERATORS](./GENERATORS.md) document.
165
+
370
166
  ## Contributing
371
- See [CONTRIBUTING.md](https://github.com/stympy/faker/blob/master/CONTRIBUTING.md).
372
167
 
373
- ## Contact
374
- Comments and feedback are welcome. Send an email to Benjamin Curtis via the [google group](http://groups.google.com/group/ruby-faker).
168
+ **Note**: We are not accepting proposals for new generators and locales. The [Contributing](https://github.com/faker-ruby/faker/blob/main/CONTRIBUTING.md) guide has a few notes about this decision.
169
+
170
+ Take a look at the [Contributing](https://github.com/faker-ruby/faker/blob/main/CONTRIBUTING.md) document for
171
+ instructions on setting up the repo on your machine, opening bug reports, understanding the codebase,
172
+ and creating a good pull request.
173
+
174
+ There is a [Discord channel](https://discord.gg/RMumTwB) to discuss anything
175
+ regarding improvements or feature requests. This is not actively monitored by the current maintainers.
176
+
177
+ Thank you, contributors!
178
+
179
+ ## Versioning
375
180
 
376
- You can also join our [discord channel](https://discord.gg/RMumTwB) to discuss anything regarding improvements or feature requests.
181
+ Faker follows Semantic Versioning 2.0 as defined at https://semver.org.
182
+
183
+ ## Inspiration
184
+
185
+ Faker was inspired by [Perl's Data::Faker library](https://metacpan.org/pod/Data::Faker).
186
+
187
+ ## In the media
188
+
189
+ - 📰 [With Great Humor Comes Great Developer Engagement] - KTH Royal Institute of Technology research
190
+ - 🎧 [Computer und Kommunikation 4.5.2024, komplette Sendung] - Deutschland Funk Radio Interview
191
+
192
+ [With Great Humor Comes Great Developer Engagement]: https://arxiv.org/pdf/2312.01680
193
+ [Computer und Kommunikation 4.5.2024, komplette Sendung]: https://www.deutschlandfunk.de/computer-und-kommunikation-4-5-2024-komplette-sendung-dlf-16492b03-100.html
377
194
 
378
195
  ## License
196
+
379
197
  This code is free to use under the terms of the MIT license.
@@ -14,7 +14,7 @@ module Faker
14
14
  # #=> "ak_zvU8YQLagjcfng7Tg8yCdiZ1rpiWNp1PBn3vtUs44utSvbJVR"
15
15
  #
16
16
  def address
17
- 'ak_' + rand_strings
17
+ "ak_#{rand_strings}"
18
18
  end
19
19
 
20
20
  ##
@@ -27,7 +27,7 @@ module Faker
27
27
  # #=> "th_147nDP22h3pHrLt2qykTH4txUwQh1ccaXp"
28
28
  #
29
29
  def transaction
30
- 'th_' + rand_strings(51)
30
+ "th_#{rand_strings(51)}"
31
31
  end
32
32
 
33
33
  ##
@@ -40,7 +40,7 @@ module Faker
40
40
  # #=> "ct_Hk2JsNeWGEYQEHHQCfcBeGrwbhtYSwFTPdDhW2SvjFYVojyhW"
41
41
  #
42
42
  def contract
43
- 'ct_' + rand_strings
43
+ "ct_#{rand_strings}"
44
44
  end
45
45
 
46
46
  ##
@@ -53,7 +53,7 @@ module Faker
53
53
  # #=> "ok_28QDg7fkF5qiKueSdUvUBtCYPJdmMEoS73CztzXCRAwMGKHKZh"
54
54
  #
55
55
  def oracle
56
- 'ok_' + rand_strings(51)
56
+ "ok_#{rand_strings(51)}"
57
57
  end
58
58
 
59
59
  protected
@@ -61,7 +61,7 @@ module Faker
61
61
  def rand_strings(length = 50)
62
62
  hex_alphabet = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
63
63
  var = +''
64
- length.times { var << sample(shuffle(hex_alphabet.split(''))) }
64
+ length.times { var << sample(shuffle(hex_alphabet.chars)) }
65
65
  var
66
66
  end
67
67
  end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'digest'
4
3
  require 'securerandom'
5
4
 
6
5
  module Faker
@@ -51,7 +50,7 @@ module Faker
51
50
  def address_for(network)
52
51
  version = PROTOCOL_VERSIONS.fetch(network)
53
52
  packed = version.chr + Faker::Config.random.bytes(20)
54
- checksum = Digest::SHA2.digest(Digest::SHA2.digest(packed))[0..3]
53
+ checksum = OpenSSL::Digest::SHA256.digest(OpenSSL::Digest::SHA256.digest(packed))[0..3]
55
54
  Faker::Base58.encode(packed + checksum)
56
55
  end
57
56
  end
@@ -17,7 +17,7 @@ module Faker
17
17
  def address
18
18
  hex_alphabet = '0123456789abcdef'
19
19
  var = +'0x'
20
- 40.times { var << sample(shuffle(hex_alphabet.split(''))) }
20
+ 40.times { var << sample(shuffle(hex_alphabet.chars)) }
21
21
  var
22
22
  end
23
23
  end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'digest'
4
3
  require 'securerandom'
5
4
 
6
5
  module Faker
@@ -88,6 +87,34 @@ module Faker
88
87
  encode_tz(:edsig, 64)
89
88
  end
90
89
 
90
+ ##
91
+ # Produces a random Tezos public key
92
+ #
93
+ # @return [String]
94
+ #
95
+ # @example
96
+ # Faker::Blockchain::Tezos.public_key
97
+ # #=> "edpkuib9x8QXRc5nWwHUg7U1dXsVmaUrUNU5sX9pVEEvwbMVdfMCeq"
98
+ #
99
+ # @faker.version 2.15.2
100
+ def public_key
101
+ encode_tz(:edpk, 32)
102
+ end
103
+
104
+ ##
105
+ # Produces a random Tezos public key
106
+ #
107
+ # @return [String]
108
+ #
109
+ # @example
110
+ # Faker::Blockchain::Tezos.secret_key
111
+ # #=> "edsk3HZCAGEGpzQPnQUwQeFY4ESanFhQCgLpKriQw8GHyhKCrjHawv"
112
+ #
113
+ # @faker.version 2.15.2
114
+ def secret_key
115
+ encode_tz(:edsk, 32)
116
+ end
117
+
91
118
  protected
92
119
 
93
120
  ##
@@ -97,8 +124,8 @@ module Faker
97
124
  # @return [String]
98
125
  def encode_tz(prefix, payload_size)
99
126
  prefix = PREFIXES.fetch(prefix)
100
- packed = prefix.map(&:chr).join('') + Faker::Config.random.bytes(payload_size)
101
- checksum = Digest::SHA2.digest(Digest::SHA2.digest(packed))[0..3]
127
+ packed = prefix.map(&:chr).join + Faker::Config.random.bytes(payload_size)
128
+ checksum = OpenSSL::Digest::SHA256.digest(OpenSSL::Digest::SHA256.digest(packed))[0..3]
102
129
  Faker::Base58.encode(packed + checksum)
103
130
  end
104
131
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Blockchain
5
+ if Faker::Config.lazy_loading?
6
+ Faker.lazy_load(self)
7
+ end
8
+ end
9
+ end