faker 2.0.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 (584) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1896 -11
  3. data/README.md +140 -307
  4. data/lib/faker/blockchain/aeternity.rb +70 -0
  5. data/lib/faker/blockchain/bitcoin.rb +27 -2
  6. data/lib/faker/blockchain/ethereum.rb +11 -1
  7. data/lib/faker/blockchain/tezos.rb +92 -9
  8. data/lib/faker/blockchain.rb +9 -0
  9. data/lib/faker/books/culture_series.rb +49 -0
  10. data/lib/faker/books/dune.rb +71 -5
  11. data/lib/faker/books/lovecraft.rb +182 -7
  12. data/lib/faker/books/the_kingkiller_chronicle.rb +61 -0
  13. data/lib/faker/books.rb +9 -0
  14. data/lib/faker/creature/animal.rb +9 -0
  15. data/lib/faker/creature/bird.rb +203 -0
  16. data/lib/faker/creature/cat.rb +27 -0
  17. data/lib/faker/creature/dog.rb +72 -0
  18. data/lib/faker/creature/horse.rb +18 -0
  19. data/lib/faker/creature.rb +9 -0
  20. data/lib/faker/default/address.rb +251 -6
  21. data/lib/faker/default/adjective.rb +35 -0
  22. data/lib/faker/default/alphanumeric.rb +49 -6
  23. data/lib/faker/default/ancient.rb +36 -0
  24. data/lib/faker/default/app.rb +45 -0
  25. data/lib/faker/default/appliance.rb +18 -0
  26. data/lib/faker/default/artist.rb +9 -0
  27. data/lib/faker/default/avatar.rb +32 -1
  28. data/lib/faker/default/bank.rb +117 -22
  29. data/lib/faker/default/barcode.rb +165 -0
  30. data/lib/faker/default/beer.rb +75 -3
  31. data/lib/faker/default/blood.rb +48 -0
  32. data/lib/faker/default/book.rb +61 -0
  33. data/lib/faker/default/boolean.rb +14 -1
  34. data/lib/faker/default/business.rb +27 -0
  35. data/lib/faker/default/camera.rb +46 -0
  36. data/lib/faker/default/cannabis.rb +90 -0
  37. data/lib/faker/default/chile_rut.rb +62 -8
  38. data/lib/faker/default/chuck_norris.rb +13 -2
  39. data/lib/faker/default/code.rb +165 -38
  40. data/lib/faker/default/coffee.rb +45 -0
  41. data/lib/faker/default/coin.rb +18 -0
  42. data/lib/faker/default/color.rb +123 -5
  43. data/lib/faker/default/commerce.rb +102 -11
  44. data/lib/faker/default/company.rb +445 -23
  45. data/lib/faker/default/compass.rb +135 -0
  46. data/lib/faker/default/computer.rb +63 -0
  47. data/lib/faker/default/construction.rb +54 -0
  48. data/lib/faker/default/cosmere.rb +90 -0
  49. data/lib/faker/default/crypto.rb +52 -5
  50. data/lib/faker/default/crypto_coin.rb +45 -0
  51. data/lib/faker/default/currency.rb +27 -0
  52. data/lib/faker/default/date.rb +145 -5
  53. data/lib/faker/default/dc_comics.rb +45 -0
  54. data/lib/faker/default/demographic.rb +57 -0
  55. data/lib/faker/default/dessert.rb +27 -0
  56. data/lib/faker/default/device.rb +54 -0
  57. data/lib/faker/default/driving_licence.rb +87 -14
  58. data/lib/faker/default/drone.rb +332 -0
  59. data/lib/faker/default/educator.rb +73 -6
  60. data/lib/faker/default/electrical_components.rb +27 -0
  61. data/lib/faker/default/emotion.rb +33 -0
  62. data/lib/faker/default/esport.rb +45 -0
  63. data/lib/faker/default/file.rb +53 -4
  64. data/lib/faker/default/finance.rb +74 -2
  65. data/lib/faker/default/food.rb +93 -3
  66. data/lib/faker/default/funny_name.rb +45 -0
  67. data/lib/faker/default/game.rb +48 -0
  68. data/lib/faker/default/gender.rb +31 -0
  69. data/lib/faker/default/greek_philosophers.rb +18 -0
  70. data/lib/faker/default/hacker.rb +59 -1
  71. data/lib/faker/default/hipster.rb +103 -7
  72. data/lib/faker/default/hobby.rb +22 -0
  73. data/lib/faker/default/house.rb +18 -0
  74. data/lib/faker/default/html.rb +230 -0
  75. data/lib/faker/default/id_number.rb +313 -8
  76. data/lib/faker/default/industry_segments.rb +36 -0
  77. data/lib/faker/default/invoice.rb +34 -7
  78. data/lib/faker/default/job.rb +36 -0
  79. data/lib/faker/default/json.rb +68 -8
  80. data/lib/faker/default/kpop.rb +54 -0
  81. data/lib/faker/default/lorem.rb +194 -21
  82. data/lib/faker/default/lorem_flickr.rb +67 -2
  83. data/lib/faker/default/markdown.rb +100 -9
  84. data/lib/faker/default/marketing.rb +9 -0
  85. data/lib/faker/default/measurement.rb +93 -2
  86. data/lib/faker/default/military.rb +71 -0
  87. data/lib/faker/default/mountain.rb +33 -0
  88. data/lib/faker/default/movie.rb +33 -0
  89. data/lib/faker/default/name.rb +98 -0
  90. data/lib/faker/default/nation.rb +45 -5
  91. data/lib/faker/default/{nhs.rb → national_health_service.rb} +27 -4
  92. data/lib/faker/default/nato_phonetic_alphabet.rb +9 -0
  93. data/lib/faker/default/number.rb +151 -12
  94. data/lib/faker/default/omniauth.rb +233 -92
  95. data/lib/faker/default/phone_number.rb +113 -11
  96. data/lib/faker/default/placeholdit.rb +24 -3
  97. data/lib/faker/default/programming_language.rb +18 -0
  98. data/lib/faker/default/quote.rb +124 -0
  99. data/lib/faker/default/relationship.rb +46 -1
  100. data/lib/faker/default/restaurant.rb +54 -2
  101. data/lib/faker/default/science.rb +135 -0
  102. data/lib/faker/default/slack_emoji.rb +81 -0
  103. data/lib/faker/default/source.rb +43 -0
  104. data/lib/faker/default/south_africa.rb +93 -3
  105. data/lib/faker/default/space.rb +128 -1
  106. data/lib/faker/default/sport.rb +116 -0
  107. data/lib/faker/default/string.rb +18 -4
  108. data/lib/faker/default/stripe.rb +64 -3
  109. data/lib/faker/default/subscription.rb +45 -0
  110. data/lib/faker/default/superhero.rb +45 -0
  111. data/lib/faker/default/tea.rb +41 -0
  112. data/lib/faker/default/team.rb +45 -0
  113. data/lib/faker/default/theater.rb +49 -0
  114. data/lib/faker/default/time.rb +80 -0
  115. data/lib/faker/default/types.rb +91 -11
  116. data/lib/faker/default/university.rb +45 -0
  117. data/lib/faker/default/vehicle.rb +225 -42
  118. data/lib/faker/default/verb.rb +45 -0
  119. data/lib/faker/default/vulnerability_identifier.rb +23 -0
  120. data/lib/faker/default/world_cup.rb +50 -0
  121. data/lib/faker/default/x.rb +189 -0
  122. data/lib/faker/default.rb +9 -0
  123. data/lib/faker/fantasy/tolkien.rb +67 -0
  124. data/lib/faker/fantasy.rb +9 -0
  125. data/lib/faker/games/clash_of_clans.rb +48 -0
  126. data/lib/faker/games/control.rb +113 -0
  127. data/lib/faker/games/dnd.rb +178 -0
  128. data/lib/faker/games/dota.rb +60 -0
  129. data/lib/faker/games/elder_scrolls.rb +98 -0
  130. data/lib/faker/games/fallout.rb +37 -0
  131. data/lib/faker/games/final_fantasy_xiv.rb +73 -0
  132. data/lib/faker/games/half_life.rb +27 -0
  133. data/lib/faker/games/heroes.rb +40 -0
  134. data/lib/faker/games/heroes_of_the_storm.rb +38 -2
  135. data/lib/faker/games/league_of_legends.rb +54 -0
  136. data/lib/faker/games/minecraft.rb +113 -0
  137. data/lib/faker/games/myst.rb +45 -0
  138. data/lib/faker/games/overwatch.rb +27 -0
  139. data/lib/faker/games/pokemon.rb +27 -0
  140. data/lib/faker/games/sonic_the_hedgehog.rb +27 -0
  141. data/lib/faker/games/street_fighter.rb +61 -0
  142. data/lib/faker/games/super_mario.rb +48 -0
  143. data/lib/faker/games/super_smash_bros.rb +18 -0
  144. data/lib/faker/games/tarkov.rb +205 -0
  145. data/lib/faker/games/touhou.rb +75 -0
  146. data/lib/faker/games/warhammer_fantasy.rb +74 -0
  147. data/lib/faker/games/witcher.rb +93 -0
  148. data/lib/faker/games/world_of_warcraft.rb +44 -1
  149. data/lib/faker/games/zelda.rb +37 -1
  150. data/lib/faker/games.rb +9 -0
  151. data/lib/faker/internet/http.rb +48 -0
  152. data/lib/faker/internet.rb +582 -0
  153. data/lib/faker/japanese_media/conan.rb +48 -0
  154. data/lib/faker/japanese_media/cowboy_bebop.rb +61 -0
  155. data/lib/faker/japanese_media/doraemon.rb +48 -0
  156. data/lib/faker/japanese_media/dragon_ball.rb +35 -0
  157. data/lib/faker/japanese_media/fullmetal_alchemist_brotherhood.rb +48 -0
  158. data/lib/faker/japanese_media/kamen_rider.rb +102 -0
  159. data/lib/faker/japanese_media/naruto.rb +61 -0
  160. data/lib/faker/japanese_media/one_piece.rb +55 -1
  161. data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
  162. data/lib/faker/japanese_media/sword_art_online.rb +36 -0
  163. data/lib/faker/japanese_media.rb +9 -0
  164. data/lib/faker/locations/australia.rb +49 -0
  165. data/lib/faker/locations.rb +9 -0
  166. data/lib/faker/movies/avatar.rb +49 -0
  167. data/lib/faker/movies/back_to_the_future.rb +28 -0
  168. data/lib/faker/movies/departed.rb +49 -0
  169. data/lib/faker/movies/ghostbusters.rb +28 -0
  170. data/lib/faker/movies/hackers.rb +48 -0
  171. data/lib/faker/movies/harry_potter.rb +54 -0
  172. data/lib/faker/movies/hitchhikers_guide_to_the_galaxy.rb +69 -0
  173. data/lib/faker/movies/hobbit.rb +41 -4
  174. data/lib/faker/movies/how_to_train_your_dragon.rb +48 -0
  175. data/lib/faker/movies/lebowski.rb +27 -0
  176. data/lib/faker/movies/lord_of_the_rings.rb +31 -3
  177. data/lib/faker/movies/princess_bride.rb +19 -0
  178. data/lib/faker/movies/star_wars.rb +169 -5
  179. data/lib/faker/movies/the_room.rb +63 -0
  180. data/lib/faker/movies/tron.rb +161 -0
  181. data/lib/faker/movies/v_for_vendetta.rb +29 -0
  182. data/lib/faker/movies.rb +9 -0
  183. data/lib/faker/music/bossa_nova.rb +35 -0
  184. data/lib/faker/music/grateful_dead.rb +18 -2
  185. data/lib/faker/music/hiphop.rb +48 -0
  186. data/lib/faker/music/opera.rb +273 -1
  187. data/lib/faker/music/pearl_jam.rb +48 -0
  188. data/lib/faker/music/phish.rb +36 -1
  189. data/lib/faker/music/prince.rb +64 -0
  190. data/lib/faker/music/rock_band.rb +21 -0
  191. data/lib/faker/music/rush.rb +35 -0
  192. data/lib/faker/music/smashing_pumpkins.rb +62 -0
  193. data/lib/faker/music/umphreys_mcgee.rb +9 -0
  194. data/lib/faker/music.rb +149 -0
  195. data/lib/faker/quotes/chiquito.rb +80 -0
  196. data/lib/faker/quotes/rajnikanth.rb +27 -0
  197. data/lib/faker/quotes/shakespeare.rb +70 -0
  198. data/lib/faker/quotes.rb +9 -0
  199. data/lib/faker/religion/bible.rb +50 -0
  200. data/lib/faker/religion.rb +9 -0
  201. data/lib/faker/sports/basketball.rb +36 -0
  202. data/lib/faker/sports/chess.rb +90 -0
  203. data/lib/faker/sports/football.rb +45 -0
  204. data/lib/faker/sports/mountaineering.rb +22 -0
  205. data/lib/faker/sports/volleyball.rb +74 -0
  206. data/lib/faker/sports.rb +9 -0
  207. data/lib/faker/travel/airport.rb +43 -0
  208. data/lib/faker/travel/train_station.rb +54 -0
  209. data/lib/faker/travel.rb +9 -0
  210. data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +22 -0
  211. data/lib/faker/tv_shows/archer.rb +51 -0
  212. data/lib/faker/tv_shows/big_bang_theory.rb +37 -0
  213. data/lib/faker/tv_shows/bojack_horseman.rb +28 -0
  214. data/lib/faker/tv_shows/breaking_bad.rb +18 -0
  215. data/lib/faker/tv_shows/brooklyn_nine_nine.rb +38 -0
  216. data/lib/faker/tv_shows/buffy.rb +47 -2
  217. data/lib/faker/tv_shows/community.rb +19 -0
  218. data/lib/faker/tv_shows/dr_who.rb +65 -2
  219. data/lib/faker/tv_shows/dumb_and_dumber.rb +28 -0
  220. data/lib/faker/tv_shows/family_guy.rb +28 -0
  221. data/lib/faker/tv_shows/final_space.rb +51 -0
  222. data/lib/faker/tv_shows/friends.rb +27 -0
  223. data/lib/faker/tv_shows/futurama.rb +65 -0
  224. data/lib/faker/tv_shows/game_of_thrones.rb +46 -0
  225. data/lib/faker/tv_shows/hey_arnold.rb +27 -0
  226. data/lib/faker/tv_shows/how_i_met_your_mother.rb +37 -0
  227. data/lib/faker/tv_shows/michael_scott.rb +10 -0
  228. data/lib/faker/tv_shows/new_girl.rb +19 -0
  229. data/lib/faker/tv_shows/parks_and_rec.rb +18 -0
  230. data/lib/faker/tv_shows/rick_and_morty.rb +28 -0
  231. data/lib/faker/tv_shows/ru_paul.rb +18 -0
  232. data/lib/faker/tv_shows/seinfeld.rb +28 -0
  233. data/lib/faker/tv_shows/silicon_valley.rb +75 -0
  234. data/lib/faker/tv_shows/simpsons.rb +42 -0
  235. data/lib/faker/tv_shows/south_park.rb +34 -0
  236. data/lib/faker/tv_shows/spongebob.rb +50 -0
  237. data/lib/faker/tv_shows/star_trek.rb +36 -0
  238. data/lib/faker/tv_shows/stargate.rb +28 -0
  239. data/lib/faker/tv_shows/stranger_things.rb +19 -0
  240. data/lib/faker/tv_shows/suits.rb +37 -0
  241. data/lib/faker/tv_shows/supernatural.rb +48 -0
  242. data/lib/faker/tv_shows/the_expanse.rb +36 -0
  243. data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +30 -2
  244. data/lib/faker/tv_shows/the_it_crowd.rb +37 -0
  245. data/lib/faker/tv_shows/the_office.rb +37 -0
  246. data/lib/faker/tv_shows/the_thick_of_it.rb +28 -0
  247. data/lib/faker/tv_shows/twin_peaks.rb +28 -0
  248. data/lib/faker/tv_shows/venture_bros.rb +38 -0
  249. data/lib/faker/tv_shows.rb +9 -0
  250. data/lib/faker/version.rb +2 -2
  251. data/lib/faker.rb +125 -45
  252. data/lib/helpers/base58.rb +1 -1
  253. data/lib/helpers/char.rb +22 -27
  254. data/lib/helpers/deprecator.rb +118 -0
  255. data/lib/helpers/positional_generator.rb +478 -0
  256. data/lib/helpers/unique_generator.rb +18 -14
  257. data/lib/locales/README.md +18 -2
  258. data/lib/locales/ar.yml +1608 -46
  259. data/lib/locales/bg.yml +937 -21
  260. data/lib/locales/ca-CAT.yml +347 -12
  261. data/lib/locales/ca.yml +580 -15
  262. data/lib/locales/da-DK.yml +530 -36
  263. data/lib/locales/de-AT.yml +3487 -25
  264. data/lib/locales/de-CH.yml +6051 -9
  265. data/lib/locales/de.yml +7185 -97
  266. data/lib/locales/ee.yml +1185 -27
  267. data/lib/locales/en/address.yml +1829 -559
  268. data/lib/locales/en/adjective.yml +179 -0
  269. data/lib/locales/en/airport.yml +381 -0
  270. data/lib/locales/en/ancient.yml +128 -4
  271. data/lib/locales/en/animal.yml +141 -2
  272. data/lib/locales/en/app.yml +89 -2
  273. data/lib/locales/en/appliance.yml +81 -2
  274. data/lib/locales/en/aqua_teen_hunger_force.yml +33 -1
  275. data/lib/locales/en/archer.yml +75 -0
  276. data/lib/locales/en/artist.yml +43 -1
  277. data/lib/locales/en/australia.yml +108 -0
  278. data/lib/locales/en/avatar.yml +57 -0
  279. data/lib/locales/en/back_to_the_future.yml +145 -117
  280. data/lib/locales/en/bank.yml +92 -3
  281. data/lib/locales/en/barcode.yml +24 -0
  282. data/lib/locales/en/beer.yml +232 -6
  283. data/lib/locales/en/bible.yml +87 -0
  284. data/lib/locales/en/big_bang_theory.yml +37 -0
  285. data/lib/locales/en/bird.yml +1280 -0
  286. data/lib/locales/en/blood.yml +13 -0
  287. data/lib/locales/en/bojack_horseman.yml +63 -3
  288. data/lib/locales/en/book.yml +486 -3
  289. data/lib/locales/en/bossa_nova.yml +110 -3
  290. data/lib/locales/en/breaking_bad.yml +110 -25
  291. data/lib/locales/en/brooklyn_nine_nine.yml +34 -0
  292. data/lib/locales/en/buffy.yml +239 -257
  293. data/lib/locales/en/business.yml +18 -2
  294. data/lib/locales/en/camera.yml +611 -0
  295. data/lib/locales/en/cannabis.yml +344 -10
  296. data/lib/locales/en/cat.yml +155 -3
  297. data/lib/locales/en/chess.yml +102 -0
  298. data/lib/locales/en/chiquito.yml +63 -0
  299. data/lib/locales/en/chuck_norris.yml +78 -79
  300. data/lib/locales/en/clash_of_clan.yml +99 -0
  301. data/lib/locales/en/code.yml +501 -1
  302. data/lib/locales/en/coffee.yml +450 -25
  303. data/lib/locales/en/color.yml +73 -1
  304. data/lib/locales/en/commerce.yml +117 -6
  305. data/lib/locales/en/community.yml +55 -30
  306. data/lib/locales/en/company.yml +1756 -13
  307. data/lib/locales/en/compass.yml +108 -12
  308. data/lib/locales/en/computer.yml +55 -0
  309. data/lib/locales/en/conan.yml +169 -0
  310. data/lib/locales/en/construction.yml +416 -422
  311. data/lib/locales/en/control.yml +247 -0
  312. data/lib/locales/en/cosmere.yml +219 -54
  313. data/lib/locales/en/cowboy_bebop.yml +160 -0
  314. data/lib/locales/en/culture_series.yml +298 -298
  315. data/lib/locales/en/currency.yml +358 -3
  316. data/lib/locales/en/dc_comics.yml +178 -49
  317. data/lib/locales/en/demographic.yml +218 -5
  318. data/lib/locales/en/departed.yml +46 -0
  319. data/lib/locales/en/dessert.yml +78 -3
  320. data/lib/locales/en/device.yml +112 -4
  321. data/lib/locales/en/dnd.yml +636 -0
  322. data/lib/locales/en/dog.yml +262 -7
  323. data/lib/locales/en/doraemon.yml +284 -0
  324. data/lib/locales/en/dota.yml +704 -63
  325. data/lib/locales/en/dr_who.yml +468 -93
  326. data/lib/locales/en/dragon_ball.yml +243 -1
  327. data/lib/locales/en/driving_license.yml +181 -0
  328. data/lib/locales/en/drone.yml +95 -0
  329. data/lib/locales/en/dumb_and_dumber.yml +72 -56
  330. data/lib/locales/en/dune.yml +270 -131
  331. data/lib/locales/en/educator.yml +75 -6
  332. data/lib/locales/en/elder_scrolls.yml +582 -9
  333. data/lib/locales/en/electrical_components.yml +49 -3
  334. data/lib/locales/en/emotion.yml +480 -0
  335. data/lib/locales/en/esport.yml +58 -5
  336. data/lib/locales/en/fallout.yml +311 -133
  337. data/lib/locales/en/family_guy.yml +54 -4
  338. data/lib/locales/en/file.yml +109 -2
  339. data/lib/locales/en/final_fantasy_xiv.yml +754 -0
  340. data/lib/locales/en/final_space.yml +35 -0
  341. data/lib/locales/en/finance.yml +80 -4
  342. data/lib/locales/en/food.yml +1067 -10
  343. data/lib/locales/en/football.yml +121 -5
  344. data/lib/locales/en/fresh_prince_of_bel_air.yml +119 -70
  345. data/lib/locales/en/friends.yml +162 -3
  346. data/lib/locales/en/fullmetal_alchemist_brotherhood.yml +78 -0
  347. data/lib/locales/en/funny_name.yml +752 -1
  348. data/lib/locales/en/futurama.yml +336 -0
  349. data/lib/locales/en/game.yml +11 -0
  350. data/lib/locales/en/game_of_thrones.yml +2487 -5
  351. data/lib/locales/en/gender.yml +15 -2
  352. data/lib/locales/en/ghostbusters.yml +101 -88
  353. data/lib/locales/en/grateful_dead.yml +47 -45
  354. data/lib/locales/en/greek_philosophers.yml +44 -23
  355. data/lib/locales/en/hacker.yml +110 -5
  356. data/lib/locales/en/hackers.yml +53 -0
  357. data/lib/locales/en/half_life.yml +84 -3
  358. data/lib/locales/en/harry_potter.yml +323 -6
  359. data/lib/locales/en/heroes.yml +408 -3
  360. data/lib/locales/en/heroes_of_the_storm.yml +131 -4
  361. data/lib/locales/en/hey_arnold.yml +104 -21
  362. data/lib/locales/en/hipster.yml +203 -1
  363. data/lib/locales/en/hitchhikers_guide_to_the_galaxy.yml +243 -42
  364. data/lib/locales/en/hobby.yml +170 -0
  365. data/lib/locales/en/horse.yml +446 -2
  366. data/lib/locales/en/house.yml +34 -2
  367. data/lib/locales/en/how_i_met_your_mother.yml +97 -25
  368. data/lib/locales/en/how_to_train_your_dragon.yml +173 -0
  369. data/lib/locales/en/id_number.yml +7 -2
  370. data/lib/locales/en/industry_segments.yml +188 -4
  371. data/lib/locales/en/internet.yml +136 -3
  372. data/lib/locales/en/jack_handey.yml +54 -0
  373. data/lib/locales/en/job.yml +98 -7
  374. data/lib/locales/en/kamen_rider.yml +718 -0
  375. data/lib/locales/en/kpop.yml +954 -80
  376. data/lib/locales/en/league_of_legends.yml +285 -6
  377. data/lib/locales/en/lebowski.yml +58 -40
  378. data/lib/locales/en/lorem.yml +1095 -6
  379. data/lib/locales/en/lovecraft.yml +76 -6
  380. data/lib/locales/en/markdown.yml +12 -2
  381. data/lib/locales/en/marketing.yml +54 -1
  382. data/lib/locales/en/measurement.yml +42 -8
  383. data/lib/locales/en/michael_scott.yml +41 -42
  384. data/lib/locales/en/military.yml +179 -5
  385. data/lib/locales/en/minecraft.yml +663 -0
  386. data/lib/locales/en/mitch_hedberg.yml +46 -0
  387. data/lib/locales/en/mountain.yml +171 -0
  388. data/lib/locales/en/mountaineering.yml +14 -0
  389. data/lib/locales/en/movie.yml +206 -2
  390. data/lib/locales/en/music.yml +461 -29
  391. data/lib/locales/en/myst.yml +87 -31
  392. data/lib/locales/en/name.yml +6068 -5
  393. data/lib/locales/en/naruto.yml +230 -0
  394. data/lib/locales/en/nato_phonetic_alphabet.yml +27 -1
  395. data/lib/locales/en/new_girl.yml +35 -37
  396. data/lib/locales/en/one_piece.yml +359 -6
  397. data/lib/locales/en/opera.yml +169 -1
  398. data/lib/locales/en/overwatch.yml +2648 -37
  399. data/lib/locales/en/parks_and_rec.yml +33 -4
  400. data/lib/locales/en/pearl_jam.yml +213 -0
  401. data/lib/locales/en/phish.yml +391 -1
  402. data/lib/locales/en/phone_number.yml +78 -3
  403. data/lib/locales/en/pokemon.yml +417 -4
  404. data/lib/locales/en/prince.yml +227 -0
  405. data/lib/locales/en/princess_bride.yml +48 -2
  406. data/lib/locales/en/programming_language.yml +753 -3
  407. data/lib/locales/en/quote.yml +606 -163
  408. data/lib/locales/en/rajnikanth.yml +77 -0
  409. data/lib/locales/en/relationship.yml +29 -6
  410. data/lib/locales/en/restaurant.yml +31 -31
  411. data/lib/locales/en/rick_and_morty.yml +116 -3
  412. data/lib/locales/en/rock_band.yml +228 -1
  413. data/lib/locales/en/rupaul.yml +120 -122
  414. data/lib/locales/en/rush.yml +32 -0
  415. data/lib/locales/en/science.yml +481 -3
  416. data/lib/locales/en/seinfeld.yml +110 -3
  417. data/lib/locales/en/shakespeare.yml +46 -53
  418. data/lib/locales/en/silicon_valley.yml +122 -50
  419. data/lib/locales/en/simpsons.yml +897 -23
  420. data/lib/locales/en/slack_emoji.yml +874 -8
  421. data/lib/locales/en/smashing_pumpkins.yml +382 -0
  422. data/lib/locales/en/source.yml +35 -0
  423. data/lib/locales/en/south_park.yml +360 -2
  424. data/lib/locales/en/space.yml +373 -14
  425. data/lib/locales/en/spongebob.yml +489 -0
  426. data/lib/locales/en/sport.yml +130 -0
  427. data/lib/locales/en/star_trek.yml +105 -4
  428. data/lib/locales/en/star_wars.yml +564 -219
  429. data/lib/locales/en/stargate.yml +65 -18
  430. data/lib/locales/en/stranger_thing.yml +31 -33
  431. data/lib/locales/en/street_fighter.yml +1524 -0
  432. data/lib/locales/en/stripe.yml +3 -3
  433. data/lib/locales/en/studio_ghibli.yml +107 -0
  434. data/lib/locales/en/subscription.yml +47 -5
  435. data/lib/locales/en/suits.yml +45 -0
  436. data/lib/locales/en/super_mario.yml +58 -0
  437. data/lib/locales/en/super_smash_bros.yml +23 -5
  438. data/lib/locales/en/superhero.yml +574 -4
  439. data/lib/locales/en/supernatural.yml +141 -0
  440. data/lib/locales/en/sword_art_online.yml +327 -331
  441. data/lib/locales/en/tarkov.yml +593 -0
  442. data/lib/locales/en/tea.yml +172 -0
  443. data/lib/locales/en/team.yml +125 -3
  444. data/lib/locales/en/the_expanse.yml +92 -4
  445. data/lib/locales/en/the_it_crowd.yml +148 -152
  446. data/lib/locales/en/the_kingkiller_chronicle.yml +56 -0
  447. data/lib/locales/en/the_office.yml +82 -0
  448. data/lib/locales/en/the_room.yml +68 -0
  449. data/lib/locales/en/the_thick_of_it.yml +83 -3
  450. data/lib/locales/en/theater.yml +597 -0
  451. data/lib/locales/en/tolkien.yml +2453 -0
  452. data/lib/locales/en/touhou.yml +839 -0
  453. data/lib/locales/en/train_station.yml +280 -0
  454. data/lib/locales/en/tron.yml +227 -0
  455. data/lib/locales/en/twin_peaks.yml +130 -3
  456. data/lib/locales/en/umphreys_mcgee.yml +266 -1
  457. data/lib/locales/en/university.yml +15 -2
  458. data/lib/locales/en/v_for_vendetta.yml +157 -160
  459. data/lib/locales/en/vehicle.yml +2809 -75
  460. data/lib/locales/en/venture_bros.yml +225 -4
  461. data/lib/locales/en/verbs.yml +3785 -5
  462. data/lib/locales/en/volleyball.yml +501 -0
  463. data/lib/locales/en/warhammer_fantasy.yml +549 -0
  464. data/lib/locales/en/witcher.yml +426 -7
  465. data/lib/locales/en/world_cup.yml +1132 -235
  466. data/lib/locales/en/world_of_warcraft.yml +122 -4
  467. data/lib/locales/en/yoda.yml +38 -1
  468. data/lib/locales/en/zelda.yml +962 -4
  469. data/lib/locales/en-AU.yml +728 -17
  470. data/lib/locales/en-BORK.yml +104 -1
  471. data/lib/locales/en-CA.yml +373 -15
  472. data/lib/locales/en-GB.yml +118 -8
  473. data/lib/locales/en-IND.yml +1259 -16
  474. data/lib/locales/en-KE.yml +212 -0
  475. data/lib/locales/en-MS.yml +364 -16
  476. data/lib/locales/en-NEP.yml +213 -36
  477. data/lib/locales/en-NG.yml +737 -65
  478. data/lib/locales/en-NZ.yml +1183 -27
  479. data/lib/locales/en-PAK.yml +392 -9
  480. data/lib/locales/en-SG.yml +581 -15
  481. data/lib/locales/en-TH.yml +360 -0
  482. data/lib/locales/en-UG.yml +374 -75
  483. data/lib/locales/en-US.yml +6937 -71
  484. data/lib/locales/en-ZA.yml +1394 -13
  485. data/lib/locales/en-au-ocker.yml +266 -21
  486. data/lib/locales/en.yml +0 -50
  487. data/lib/locales/es-AR.yml +4570 -0
  488. data/lib/locales/es-MX.yml +1910 -41
  489. data/lib/locales/es.yml +2172 -52
  490. data/lib/locales/fa.yml +1624 -3
  491. data/lib/locales/fi-FI.yml +316 -16
  492. data/lib/locales/fr/address.yml +773 -0
  493. data/lib/locales/fr/adjective.yml +266 -0
  494. data/lib/locales/fr/ancient.yml +141 -0
  495. data/lib/locales/fr/animal.yml +122 -0
  496. data/lib/locales/fr/appliance.yml +69 -0
  497. data/lib/locales/fr/book.yml +31 -0
  498. data/lib/locales/fr/color.yml +34 -0
  499. data/lib/locales/fr/company.yml +497 -0
  500. data/lib/locales/fr/compass.yml +71 -0
  501. data/lib/locales/fr/demographic.yml +6 -0
  502. data/lib/locales/fr/gender.yml +21 -0
  503. data/lib/locales/fr/internet.yml +15 -0
  504. data/lib/locales/fr/lorem.yml +1094 -0
  505. data/lib/locales/fr/measurement.yml +34 -0
  506. data/lib/locales/fr/name.yml +1193 -0
  507. data/lib/locales/fr/phone_number.yml +38 -0
  508. data/lib/locales/fr/pokemon.yml +421 -0
  509. data/lib/locales/fr-CA.yml +2756 -44
  510. data/lib/locales/fr-CH.yml +2455 -42
  511. data/lib/locales/fr.yml +2 -111
  512. data/lib/locales/he.yml +255 -9
  513. data/lib/locales/hy.yml +3630 -124
  514. data/lib/locales/id.yml +840 -10
  515. data/lib/locales/it.yml +1310 -31
  516. data/lib/locales/ja/README.md +13 -0
  517. data/lib/locales/ja/address.yml +363 -0
  518. data/lib/locales/ja/adjective.yml +148 -0
  519. data/lib/locales/ja/ancient.yml +18 -0
  520. data/lib/locales/ja/animal.yml +87 -0
  521. data/lib/locales/ja/artist.yml +46 -0
  522. data/lib/locales/ja/bank.yml +139 -0
  523. data/lib/locales/ja/book.yml +496 -0
  524. data/lib/locales/ja/cat.yml +79 -0
  525. data/lib/locales/ja/coffee.yml +22 -0
  526. data/lib/locales/ja/color.yml +35 -0
  527. data/lib/locales/ja/commerce.yml +103 -0
  528. data/lib/locales/ja/company.yml +26 -0
  529. data/lib/locales/ja/dog.yml +339 -0
  530. data/lib/locales/ja/emotion.yml +49 -0
  531. data/lib/locales/ja/food.yml +41 -0
  532. data/lib/locales/ja/football.yml +115 -0
  533. data/lib/locales/ja/gender.yml +6 -0
  534. data/lib/locales/ja/lorem.yml +1020 -0
  535. data/lib/locales/ja/name.yml +213 -0
  536. data/lib/locales/ja/naruto.yml +230 -0
  537. data/lib/locales/ja/overwatch.yml +37 -0
  538. data/lib/locales/ja/phone_number.yml +13 -0
  539. data/lib/locales/ja/pokemon.yml +441 -0
  540. data/lib/locales/ja/relationship.yml +33 -0
  541. data/lib/locales/ja/restaurant.yml +82 -0
  542. data/lib/locales/ja/space.yml +23 -0
  543. data/lib/locales/ja/sport.yml +130 -0
  544. data/lib/locales/ja/studio_ghibli.yml +112 -0
  545. data/lib/locales/ja/subscription.yml +50 -0
  546. data/lib/locales/ja/super_mario.yml +73 -0
  547. data/lib/locales/ja/super_smash_bros.yml +8 -0
  548. data/lib/locales/ja/touhou.yml +466 -0
  549. data/lib/locales/ja/university.yml +22 -0
  550. data/lib/locales/ja/zelda.yml +19 -0
  551. data/lib/locales/ko.yml +1450 -17
  552. data/lib/locales/lt.yml +315 -0
  553. data/lib/locales/lv.yml +1221 -27
  554. data/lib/locales/mi-NZ.yml +283 -0
  555. data/lib/locales/nb-NO.yml +518 -27
  556. data/lib/locales/nl.yml +33514 -55
  557. data/lib/locales/pl.yml +4008 -38
  558. data/lib/locales/pt-BR.yml +8210 -641
  559. data/lib/locales/pt.yml +846 -45
  560. data/lib/locales/ru.yml +1355 -30
  561. data/lib/locales/sk.yml +4416 -41
  562. data/lib/locales/sv.yml +731 -41
  563. data/lib/locales/th.yml +380 -0
  564. data/lib/locales/tr.yml +77 -19
  565. data/lib/locales/uk.yml +1814 -48
  566. data/lib/locales/vi.yml +392 -48
  567. data/lib/locales/zh-CN/bank.yml +17 -0
  568. data/lib/locales/zh-CN.yml +541 -19
  569. data/lib/locales/zh-TW.yml +1031 -15
  570. metadata +230 -125
  571. data/History.md +0 -176
  572. data/lib/faker/books/book.rb +0 -25
  573. data/lib/faker/default/bossa_nova.rb +0 -15
  574. data/lib/faker/default/fillmurray.rb +0 -15
  575. data/lib/faker/default/internet.rb +0 -207
  576. data/lib/faker/default/lorem_pixel.rb +0 -38
  577. data/lib/faker/default/twitter.rb +0 -174
  578. data/lib/faker/games/game.rb +0 -21
  579. data/lib/faker/movies/movie.rb +0 -11
  580. data/lib/faker/music/music.rb +0 -47
  581. data/lib/faker/quotes/quote.rb +0 -32
  582. data/lib/locales/en/hobbit.yml +0 -19
  583. data/lib/locales/en/lord_of_the_rings.yml +0 -6
  584. data/lib/locales/ja.yml +0 -98
data/README.md CHANGED
@@ -1,77 +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
- [![Build Status](https://travis-ci.org/stympy/faker.svg?branch=master)](https://travis-ci.org/stympy/faker)
6
- [![Gem Version](https://badge.fury.io/rb/faker.svg)](https://badge.fury.io/rb/faker)
7
- [![Inline docs](http://inch-ci.org/github/stympy/faker.svg?branch=master)](http://inch-ci.org/github/stympy/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)
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
10
14
 
11
- This gem is a port of [Perl's Data::Faker library](https://metacpan.org/pod/Data::Faker) that generates fake data.
15
+ ## Quick links
12
16
 
13
- It comes in very handy for taking screenshots (taking screenshots for my
14
- project, [Catch the Best](http://catchthebest.com/) was the original impetus
15
- for the creation of this gem), having real-looking test data, and having your
16
- database populated with more than one or two records while you're doing
17
- development.
17
+ - 📖 **[Read the documentation for the latest version][rubydocs].**
18
+ - 📢 **[See what's changed in recent versions][changelog].**
18
19
 
19
- - [Faker](#faker)
20
- - [NOTE](#note)
21
- - [Installing](#installing)
22
- - [Usage](#usage)
23
- - [CLI](#cli)
24
- - [Ensuring unique values](#ensuring-unique-values)
25
- - [Deterministic Random](#deterministic-random)
26
- - [Generators](#generators)
27
- - [Default](#default)
28
- - [Blockchain](#blockchain)
29
- - [Books](#books)
30
- - [Creature](#creature)
31
- - [Games](#games)
32
- - [Japanese Media](#japanese-media)
33
- - [Movies](#movies)
34
- - [Music](#music)
35
- - [Quotes](#quotes)
36
- - [Sports](#sports)
37
- - [Tv Shows](#tv-shows)
38
- - [Customization](#customization)
39
- - [Contributing](#contributing)
40
- - [Contact](#contact)
41
- - [License](#license)
20
+ [rubydocs]: https://www.rubydoc.info/gems/faker/
21
+ [changelog]: CHANGELOG.md
42
22
 
43
- ### NOTE
44
- * While Faker generates data at random, returned values are not guaranteed to be unique by default.
45
- You must explicity specify when you require unique values, see [details](#ensuring-unique-values).
46
- Values also can be deterministic if you use the deterministic feature, see [details](#deterministic-random)
47
- * This is the `master` branch of Faker and may contain changes that are not yet released.
48
- Please refer the README of your version for the available methods.
49
- List of all versions is [available here](https://github.com/stympy/faker/releases).
50
-
51
- ## Installing
52
- ```bash
53
- gem install faker
54
- ```
55
- Note: if you are getting a `uninitialized constant Faker::[some_class]` error, your version of the gem is behind the one documented here. To make sure that your gem is the one documented here, change the line in your Gemfile to:
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:
56
40
 
57
41
  ```ruby
58
- gem 'faker', :git => 'https://github.com/stympy/faker.git', :branch => 'master'
42
+ gem 'faker'
59
43
  ```
60
44
 
45
+ Then run `bundle install`.
46
+
61
47
  ## Usage
48
+
62
49
  ```ruby
63
50
  require 'faker'
64
51
 
65
- Faker::Name.name #=> "Christophe Bartell"
66
-
67
- 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"
68
60
  ```
69
61
 
70
- ### CLI
71
- 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).
72
87
 
73
88
  ### Ensuring unique values
74
- Prefix your method call with `unique`. For example:
89
+
90
+ To ensure Faker generates unique values, prefix your method call with `unique`:
91
+
75
92
  ```ruby
76
93
  Faker::Name.unique.name # This will return a unique name every time it is called
77
94
  ```
@@ -80,285 +97,101 @@ If too many unique values are requested from a generator that has a limited
80
97
  number of potential values, a `Faker::UniqueGenerator::RetryLimitExceeded`
81
98
  exception may be raised. It is possible to clear the record of unique values
82
99
  that have been returned, for example between tests.
100
+
83
101
  ```ruby
84
- Faker::Name.unique.clear # Clears used values for Faker::Name
102
+ Faker::Name.unique.clear # Clears used values for Faker::Name
85
103
  Faker::UniqueGenerator.clear # Clears used values for all generators
86
104
  ```
87
105
 
88
- You also can give some already used values to the unique generator if you have
89
- 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
90
108
  manually set values).
91
109
 
92
110
  ```ruby
93
- # Usage:
94
111
  # Faker::<generator>.unique.exclude(method, arguments, list)
95
112
 
96
113
  # Add 'azerty' and 'wxcvbn' to the string generator with 6 char length
97
- Faker::Lorem.unique.exclude :string, [6], %w[azerty wxcvbn]
114
+ Faker::Lorem.unique.exclude :string, [number: 6], %w[azerty wxcvbn]
98
115
  ```
99
116
 
100
117
  ### Deterministic Random
101
- 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.
102
121
 
103
122
  ```ruby
104
123
  Faker::Config.random = Random.new(42)
105
- Faker::Company.bs #=> "seize collaborative mindshare"
106
- Faker::Company.bs #=> "engage strategic platforms"
124
+ Faker::Lorem.word #=> "velit"
125
+ Faker::Lorem.word #=> "quisquam"
126
+
107
127
  Faker::Config.random = Random.new(42)
108
- Faker::Company.bs #=> "seize collaborative mindshare"
109
- Faker::Company.bs #=> "engage strategic platforms"
128
+ Faker::Lorem.word #=> "velit"
129
+ Faker::Lorem.word #=> "quisquam"
110
130
 
111
- Faker::Config.random = nil # seeds the PRNG using default entropy sources
112
- Faker::Config.random.seed #=> 185180369676275068918401850258677722187
113
- 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"
114
134
  ```
115
135
 
116
- ## Generators
117
- **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.
118
143
 
119
144
  ```ruby
120
- gem 'faker', :git => 'https://github.com/stympy/faker.git', :branch => 'master'
145
+ Faker::Config.locale = 'es'
146
+ # or
147
+ Faker::Config.locale = :es
121
148
  ```
122
149
 
123
- ### Default
124
- - [Faker::Address](doc/default/address.md)
125
- - [Faker::Alphanumeric](doc/default/alphanumeric.md)
126
- - [Faker::Ancient](doc/default/ancient.md)
127
- - [Faker::App](doc/default/app.md)
128
- - [Faker::Appliance](doc/default/appliance.md)
129
- - [Faker::Artist](doc/default/artist.md)
130
- - [Faker::Avatar](doc/default/avatar.md)
131
- - [Faker::Bank](doc/default/bank.md)
132
- - [Faker::Beer](doc/default/beer.md)
133
- - [Faker::Boolean](doc/default/boolean.md)
134
- - [Faker::BossaNova](doc/default/bossa_nova.md)
135
- - [Faker::Business](doc/default/business.md)
136
- - [Faker::Cannabis](doc/default/cannabis.md)
137
- - [Faker::ChileRut](doc/default/chile_rut.md)
138
- - [Faker::ChuckNorris](doc/default/chuck_norris.md)
139
- - [Faker::Code](doc/default/code.md)
140
- - [Faker::Coffee](doc/default/coffee.md)
141
- - [Faker::Coin](doc/default/coin.md)
142
- - [Faker::Color](doc/default/color.md)
143
- - [Faker::Commerce](doc/default/commerce.md)
144
- - [Faker::Company](doc/default/company.md)
145
- - [Faker::Compass](doc/default/compass.md)
146
- - [Faker::Construction](doc/default/construction.md)
147
- - [Faker::Cosmere](doc/default/cosmere.md)
148
- - [Faker::Crypto](doc/default/crypto.md)
149
- - [Faker::CryptoCoin](doc/default/crypto_coin.md)
150
- - [Faker::Currency](doc/default/currency.md)
151
- - [Faker::Date](doc/default/date.md)
152
- - [Faker::DcComics](doc/default/dc_comics.md)
153
- - [Faker::Demographic](doc/default/demographic.md)
154
- - [Faker::Dessert](doc/default/dessert.md)
155
- - [Faker::Device](doc/default/device.md)
156
- - [Faker::DrivingLicence](doc/default/driving_licence.md)
157
- - [Faker::Educator](doc/default/educator.md)
158
- - [Faker::ElectricalComponents](doc/default/electrical_components.md)
159
- - [Faker::Esport](doc/default/esport.md)
160
- - [Faker::File](doc/default/file.md)
161
- - [Faker::Fillmurray](doc/default/fillmurray.md)
162
- - [Faker::Finance](doc/default/finance.md)
163
- - [Faker::Food](doc/default/food.md)
164
- - [Faker::Football](doc/default/football.md)
165
- - [Faker::FunnyName](doc/default/funny_name.md)
166
- - [Faker::Gender](doc/default/gender.md)
167
- - [Faker::GreekPhilosophers](doc/default/greek_philosophers.md)
168
- - [Faker::Hacker](doc/default/hacker.md)
169
- - [Faker::Hipster](doc/default/hipster.md)
170
- - [Faker::House](doc/default/house.md)
171
- - [Faker::IDNumber](doc/default/id_number.md)
172
- - [Faker::IndustrySegments](doc/default/industry_segments.md)
173
- - [Faker::Internet](doc/default/internet.md)
174
- - [Faker::Invoice](doc/default/invoice.md)
175
- - [Faker::Job](doc/default/job.md)
176
- - [Faker::Json](doc/default/json.md)
177
- - [Faker::Kpop](doc/default/kpop.md)
178
- - [Faker::Lorem](doc/default/lorem.md)
179
- - [Faker::LoremFlickr](doc/default/lorem_flickr.md)
180
- - [Faker::LoremPixel](doc/default/lorem_pixel.md)
181
- - [Faker::Markdown](doc/default/markdown.md)
182
- - [Faker::Marketing](doc/default/marketing.md)
183
- - [Faker::Measurement](doc/default/measurement.md)
184
- - [Faker::Military](doc/default/military.md)
185
- - [Faker::Name](doc/default/name.md)
186
- - [Faker::Nation](doc/default/nation.md)
187
- - [Faker::NatoPhoneticAlphabet](doc/default/nato_phonetic_alphabet.md)
188
- - [Faker::NationalHealthService](doc/default/national_health_service.md)
189
- - [Faker::Number](doc/default/number.md)
190
- - [Faker::Omniauth](doc/default/omniauth.md)
191
- - [Faker::PhoneNumber](doc/default/phone_number.md)
192
- - [Faker::Placeholdit](doc/default/placeholdit.md)
193
- - [Faker::ProgrammingLanguage](doc/default/programming_language.md)
194
- - [Faker::Relationship](doc/default/relationship.md)
195
- - [Faker::Restaurant](doc/default/restaurant.md)
196
- - [Faker::Science](doc/default/science.md)
197
- - [Faker::SlackEmoji](doc/default/slack_emoji.md)
198
- - [Faker::Source](doc/default/source.md)
199
- - [Faker::SouthAfrica](doc/default/south_africa.md)
200
- - [Faker::Space](doc/default/space.md)
201
- - [Faker::String](doc/default/string.md)
202
- - [Faker::Stripe](doc/default/stripe.md)
203
- - [Faker::Subscription](doc/default/subscription.md)
204
- - [Faker::Superhero](doc/default/superhero.md)
205
- - [Faker::Team](doc/default/team.md)
206
- - [Faker::Time](doc/default/time.md)
207
- - [Faker::Twitter](doc/default/twitter.md)
208
- - [Faker::Types](doc/default/types.md)
209
- - [Faker::University](doc/default/university.md)
210
- - [Faker::Vehicle](doc/default/vehicle.md)
211
- - [Faker::Verbs](doc/default/verbs.md)
212
- - [Faker::WorldCup](doc/default/world_cup.md)
213
-
214
- ### Blockchain
215
- - [Faker::Blockchain::Bitcoin](doc/blockchain/bitcoin.md)
216
- - [Faker::Blockchain::Ethereum](doc/blockchain/ethereum.md)
217
- - [Faker::Blockchain::Tezos](doc/blockchain/tezos.md)
218
-
219
- ### Books
220
- - [Faker::Book](doc/books/book.md)
221
- - [Faker::Books::CultureSeries](doc/books/culture_series.md)
222
- - [Faker::Books::Dune](doc/books/dune.md)
223
- - [Faker::Books::Lovecraft](doc/books/lovecraft.md)
224
-
225
- ### Creature
226
- - [Faker::Creature::Animal](doc/creature/animal.md)
227
- - [Faker::Creature::Cat](doc/creature/cat.md)
228
- - [Faker::Creature::Dog](doc/creature/dog.md)
229
- - [Faker::Creature::Horse](doc/creature/horse.md)
230
-
231
- ### Games
232
- - [Faker::Game](doc/games/game.md)
233
- - [Faker::Games::Dota](doc/games/dota.md)
234
- - [Faker::Games::ElderScrolls](doc/games/elder_scrolls.md)
235
- - [Faker::Games::Fallout](doc/games/fallout.md)
236
- - [Faker::Games::HalfLife](doc/games/half_life.md)
237
- - [Faker::Games::Heroes](doc/games/heroes.md)
238
- - [Faker::Games::HeroesOfTheStorm](doc/games/heroes_of_the_storm.md)
239
- - [Faker::Games::LeagueOfLegends](doc/games/league_of_legends.md)
240
- - [Faker::Games::Myst](doc/games/myst.md)
241
- - [Faker::Games::Overwatch](doc/games/overwatch.md)
242
- - [Faker::Games::Pokemon](doc/games/pokemon.md)
243
- - [Faker::Games::SonicTheHedgehog](doc/games/sonic_the_hedgehog.md)
244
- - [Faker::Games::SuperSmashBros](doc/games/super_smash_bros.md)
245
- - [Faker::Games::Witcher](doc/games/witcher.md)
246
- - [Faker::Games::WorldOfWarcraft](doc/games/world_of_warcraft.md)
247
- - [Faker::Games::Zelda](doc/games/zelda.md)
248
-
249
- ### Japanese Media
250
- - [Faker::JapaneseMedia::DragonBall](doc/japanese_media/dragon_ball.md)
251
- - [Faker::JapaneseMedia::OnePiece](doc/japanese_media/one_piece.md)
252
- - [Faker::JapaneseMedia::SwordArtOnline](doc/japanese_media/sword_art_online.md)
253
-
254
- ### Movies
255
- - [Faker::Movie](doc/movies/movie.md)
256
- - [Faker::Movies::BackToTheFuture](doc/movies/back_to_the_future.md)
257
- - [Faker::Movies::Ghostbusters](doc/movies/ghostbusters.md)
258
- - [Faker::Movies::HarryPotter](doc/movies/harry_potter.md)
259
- - [Faker::Movies::HitchhikersGuideToTheGalaxy](doc/movies/hitchhikers_guide_to_the_galaxy.md)
260
- - [Faker::Movies::Hobbit](doc/movies/hobbit.md)
261
- - [Faker::Movies::Lebowski](doc/movies/lebowski.md)
262
- - [Faker::Movies::LordOfTheRings](doc/movies/lord_of_the_rings.md)
263
- - [Faker::Movies::PrincessBride](doc/movies/princess_bride.md)
264
- - [Faker::Movies::StarWars](doc/movies/star_wars.md)
265
- - [Faker::Movies::VForVendetta](doc/movies/v_for_vendetta.md)
266
-
267
- ### Music
268
- - [Faker::Music](doc/music/music.md)
269
- - [Faker::Music::GratefulDead](doc/music/grateful_dead.md)
270
- - [Faker::Music::Opera](doc/music/opera.md)
271
- - [Faker::Music::Phish](doc/music/phish.md)
272
- - [Faker::Music::RockBand](doc/music/rock_band.md)
273
- - [Faker::Music::UmphreysMcgee](doc/music/umphreys_mcgee.md)
274
-
275
- ### Quotes
276
- - [Faker::Quote](doc/quotes/quote.md)
277
- - [Faker::Quotes::Shakespeare](doc/quotes/shakespeare.md)
278
-
279
- ### Sports
280
- - [Faker::Sports::Basketball](doc/sports/basketball.md)
281
- - [Faker::Sports::Football](doc/sports/football.md)
282
-
283
- ### Tv Shows
284
- - [Faker::TvShows::AquaTeenHungerForce](doc/tv_shows/aqua_teen_hunger_force.md)
285
- - [Faker::TvShows::BojackHorseman](doc/tv_shows/bojack_horseman.md)
286
- - [Faker::TvShows::BreakingBad](doc/tv_shows/breaking_bad.md)
287
- - [Faker::TvShows::Buffy](doc/tv_shows/buffy.md)
288
- - [Faker::TvShows::Community](doc/tv_shows/community.md)
289
- - [Faker::TvShows::DrWho](doc/tv_shows/dr_who.md)
290
- - [Faker::TvShows::DumbAndDumber](doc/tv_shows/dumb_and_dumber.md)
291
- - [Faker::TvShows::FamilyGuy](doc/tv_shows/family_guy.md)
292
- - [Faker::TvShows::Friends](doc/tv_shows/friends.md)
293
- - [Faker::TvShows::GameOfThrones](doc/tv_shows/game_of_thrones.md)
294
- - [Faker::TvShows::HeyArnold](doc/tv_shows/hey_arnold.md)
295
- - [Faker::TvShows::HowIMetYourMother](doc/tv_shows/how_i_met_your_mother.md)
296
- - [Faker::TvShows::MichaelScott](doc/tv_shows/michael_scott.md)
297
- - [Faker::TvShows::NewGirl](doc/tv_shows/new_girl.md)
298
- - [Faker::TvShows::ParksAndRec](doc/tv_shows/parks_and_rec.md)
299
- - [Faker::TvShows::RickAndMorty](doc/tv_shows/rick_and_morty.md)
300
- - [Faker::TvShows::RuPaul](doc/tv_shows/rupaul.md)
301
- - [Faker::TvShows::Seinfeld](doc/tv_shows/seinfeld.md)
302
- - [Faker::TvShows::SiliconValley](doc/tv_shows/silicon_valley.md)
303
- - [Faker::TvShows::Simpsons](doc/tv_shows/simpsons.md)
304
- - [Faker::TvShows::SouthPark](doc/tv_shows/south_park.md)
305
- - [Faker::TvShows::StarTrek](doc/tv_shows/star_trek.md)
306
- - [Faker::TvShows::Stargate](doc/tv_shows/stargate.md)
307
- - [Faker::TvShows::StrangerThings](doc/tv_shows/stranger_things.md)
308
- - [Faker::TvShows::TheExpanse](doc/tv_shows/the_expanse.md)
309
- - [Faker::TvShows::TheFreshPrinceOfBelAir](doc/tv_shows/the_fresh_prince_of_bel_air.md)
310
- - [Faker::TvShows::TheITCrowd](doc/tv_shows/the_it_crowd.md)
311
- - [Faker::TvShows::TheThickOfIt](doc/tv_shows/the_thick_of_it.md)
312
- - [Faker::TvShows::TwinPeaks](doc/tv_shows/twin_peaks.md)
313
- - [Faker::TvShows::VentureBros](doc/tv_shows/venture_bros.md)
314
-
315
- ## Customization
316
- Since you may want to make addresses and other types of data look different
317
- depending on where in the world you are (US postal codes vs. UK postal codes,
318
- for example), Faker uses the I18n gem to store strings (like state names) and
319
- formats (US postal codes are NNNNN while UK postal codes are AAN NAA),
320
- allowing you to get different formats by switching locales. Just set
321
- Faker::Config.locale to the locale you want, and Faker will take care of the
322
- rest.
323
-
324
- If your locale doesn't already exist, create it in the `lib/locales` directory
325
- and you can then override or add elements to suit your needs. See more about how to
326
- use locales [here](lib/locales/README.md)
327
-
328
- ```yaml
329
- en-au-ocker:
330
- faker:
331
- name:
332
- # Existing faker field, new data
333
- first_name:
334
- - Charlotte
335
- - Ava
336
- - Chloe
337
- - Emily
338
-
339
- # New faker fields
340
- ocker_first_name:
341
- - Bazza
342
- - Bluey
343
- - Davo
344
- - Johno
345
- - Shano
346
- - Shazza
347
- region:
348
- - South East Queensland
349
- - Wide Bay Burnett
350
- - Margaret River
351
- - Port Pirie
352
- - Gippsland
353
- - Elizabeth
354
- - 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
355
160
  ```
356
161
 
162
+ ## Generators
163
+
164
+ To see the full list, check out the [GENERATORS](./GENERATORS.md) document.
165
+
357
166
  ## Contributing
358
- See [CONTRIBUTING.md](https://github.com/stympy/faker/blob/master/CONTRIBUTING.md).
359
167
 
360
- ## Contact
361
- 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
180
+
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
362
194
 
363
195
  ## License
196
+
364
197
  This code is free to use under the terms of the MIT license.
@@ -0,0 +1,70 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Blockchain
5
+ class Aeternity < Base
6
+ class << self
7
+ ##
8
+ # Produces a random Aeternity wallet address
9
+ #
10
+ # @return [String]
11
+ #
12
+ # @example
13
+ # Faker::Blockchain::Aeternity.address
14
+ # #=> "ak_zvU8YQLagjcfng7Tg8yCdiZ1rpiWNp1PBn3vtUs44utSvbJVR"
15
+ #
16
+ def address
17
+ "ak_#{rand_strings}"
18
+ end
19
+
20
+ ##
21
+ # Produces a random Aeternity transaction
22
+ #
23
+ # @return [String]
24
+ #
25
+ # @example
26
+ # Faker::Blockchain::Aeternity.transaction
27
+ # #=> "th_147nDP22h3pHrLt2qykTH4txUwQh1ccaXp"
28
+ #
29
+ def transaction
30
+ "th_#{rand_strings(51)}"
31
+ end
32
+
33
+ ##
34
+ # Produces a random Aeternity contract
35
+ #
36
+ # @return [String]
37
+ #
38
+ # @example
39
+ # Faker::Blockchain::Aeternity.contract
40
+ # #=> "ct_Hk2JsNeWGEYQEHHQCfcBeGrwbhtYSwFTPdDhW2SvjFYVojyhW"
41
+ #
42
+ def contract
43
+ "ct_#{rand_strings}"
44
+ end
45
+
46
+ ##
47
+ # Produces a random Aeternity oracle
48
+ #
49
+ # @return [String]
50
+ #
51
+ # @example
52
+ # Faker::Blockchain::Aeternity.oracle
53
+ # #=> "ok_28QDg7fkF5qiKueSdUvUBtCYPJdmMEoS73CztzXCRAwMGKHKZh"
54
+ #
55
+ def oracle
56
+ "ok_#{rand_strings(51)}"
57
+ end
58
+
59
+ protected
60
+
61
+ def rand_strings(length = 50)
62
+ hex_alphabet = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
63
+ var = +''
64
+ length.times { var << sample(shuffle(hex_alphabet.chars)) }
65
+ var
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
@@ -1,31 +1,56 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'digest'
4
3
  require 'securerandom'
5
4
 
6
5
  module Faker
7
6
  class Blockchain
8
7
  class Bitcoin < Base
9
8
  class << self
9
+ # @private
10
10
  PROTOCOL_VERSIONS = {
11
11
  main: 0,
12
12
  testnet: 111
13
13
  }.freeze
14
14
 
15
+ ##
16
+ # Produces a Bitcoin wallet address
17
+ #
18
+ # @return [String]
19
+ #
20
+ # @example
21
+ # Faker::Blockchain::Bitcoin.address
22
+ # #=> "147nDP22h3pHrLt2qykTH4txUwQh1ccaXp"
23
+ #
24
+ # @faker.version 1.9.2
15
25
  def address
16
26
  address_for(:main)
17
27
  end
18
28
 
29
+ ##
30
+ # Produces a Bitcoin testnet address
31
+ #
32
+ # @return [String]
33
+ #
34
+ # @example
35
+ # Faker::Blockchain::Bitcoin.testnet_address
36
+ # #=> "n4YjRyYD6V6zREpk6opqESDqD3KYnMdVEB"
37
+ #
38
+ # @faker.version 1.9.2
19
39
  def testnet_address
20
40
  address_for(:testnet)
21
41
  end
22
42
 
23
43
  protected
24
44
 
45
+ ##
46
+ # Generates a random Bitcoin address for the given network
47
+ #
48
+ # @param network [Symbol] The name of network protocol to generate an address for
49
+ # @return [String] A Bitcoin address
25
50
  def address_for(network)
26
51
  version = PROTOCOL_VERSIONS.fetch(network)
27
52
  packed = version.chr + Faker::Config.random.bytes(20)
28
- checksum = Digest::SHA2.digest(Digest::SHA2.digest(packed))[0..3]
53
+ checksum = OpenSSL::Digest::SHA256.digest(OpenSSL::Digest::SHA256.digest(packed))[0..3]
29
54
  Faker::Base58.encode(packed + checksum)
30
55
  end
31
56
  end
@@ -4,10 +4,20 @@ module Faker
4
4
  class Blockchain
5
5
  class Ethereum < Base
6
6
  class << self
7
+ ##
8
+ # Produces a random Ethereum wallet address
9
+ #
10
+ # @return [String]
11
+ #
12
+ # @example
13
+ # Faker::Blockchain::Ethereum.address
14
+ # #=> "0xd392b0c0500700d02d27ab30805ec80ddd3320ff"
15
+ #
16
+ # @faker.version 1.9.1
7
17
  def address
8
18
  hex_alphabet = '0123456789abcdef'
9
19
  var = +'0x'
10
- 40.times { var << sample(shuffle(hex_alphabet.split(''))) }
20
+ 40.times { var << sample(shuffle(hex_alphabet.chars)) }
11
21
  var
12
22
  end
13
23
  end