faker 2.11.0 → 3.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (404) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1131 -19
  3. data/README.md +249 -105
  4. data/lib/faker/blockchain/aeternity.rb +5 -5
  5. data/lib/faker/blockchain/bitcoin.rb +2 -2
  6. data/lib/faker/blockchain/ethereum.rb +1 -1
  7. data/lib/faker/blockchain/tezos.rb +31 -3
  8. data/lib/faker/books/dune.rb +17 -12
  9. data/lib/faker/books/lovecraft.rb +16 -44
  10. data/lib/faker/books/the_kingkiller_chronicle.rb +61 -0
  11. data/lib/faker/creature/bird.rb +203 -0
  12. data/lib/faker/default/address.rb +42 -32
  13. data/lib/faker/default/adjective.rb +35 -0
  14. data/lib/faker/default/alphanumeric.rb +2 -8
  15. data/lib/faker/default/app.rb +1 -10
  16. data/lib/faker/default/avatar.rb +1 -12
  17. data/lib/faker/default/bank.rb +104 -19
  18. data/lib/faker/default/barcode.rb +165 -0
  19. data/lib/faker/default/beer.rb +3 -3
  20. data/lib/faker/default/blood.rb +48 -0
  21. data/lib/faker/default/boolean.rb +1 -4
  22. data/lib/faker/default/business.rb +1 -1
  23. data/lib/faker/default/camera.rb +46 -0
  24. data/lib/faker/default/cannabis.rb +10 -0
  25. data/lib/faker/default/chile_rut.rb +62 -18
  26. data/lib/faker/default/chuck_norris.rb +1 -0
  27. data/lib/faker/default/code.rb +162 -52
  28. data/lib/faker/default/color.rb +77 -6
  29. data/lib/faker/default/commerce.rb +105 -28
  30. data/lib/faker/default/company.rb +210 -28
  31. data/lib/faker/default/compass.rb +135 -0
  32. data/lib/faker/default/computer.rb +63 -0
  33. data/lib/faker/default/construction.rb +54 -0
  34. data/lib/faker/default/cosmere.rb +90 -0
  35. data/lib/faker/default/crypto.rb +26 -4
  36. data/lib/faker/default/crypto_coin.rb +48 -15
  37. data/lib/faker/default/date.rb +81 -54
  38. data/lib/faker/default/demographic.rb +1 -5
  39. data/lib/faker/default/driving_licence.rb +85 -18
  40. data/lib/faker/default/drone.rb +332 -0
  41. data/lib/faker/default/educator.rb +13 -0
  42. data/lib/faker/default/emotion.rb +33 -0
  43. data/lib/faker/default/file.rb +53 -21
  44. data/lib/faker/default/finance.rb +75 -7
  45. data/lib/faker/default/food.rb +28 -2
  46. data/lib/faker/default/gender.rb +1 -1
  47. data/lib/faker/default/hipster.rb +108 -51
  48. data/lib/faker/default/hobby.rb +22 -0
  49. data/lib/faker/default/html.rb +230 -0
  50. data/lib/faker/default/id_number.rb +251 -17
  51. data/lib/faker/default/internet.rb +361 -113
  52. data/lib/faker/default/internet_http.rb +48 -0
  53. data/lib/faker/default/invoice.rb +37 -23
  54. data/lib/faker/default/json.rb +63 -25
  55. data/lib/faker/default/lorem.rb +177 -75
  56. data/lib/faker/default/lorem_flickr.rb +69 -37
  57. data/lib/faker/default/markdown.rb +97 -11
  58. data/lib/faker/default/marketing.rb +1 -1
  59. data/lib/faker/default/measurement.rb +101 -42
  60. data/lib/faker/default/military.rb +26 -0
  61. data/lib/faker/default/mountain.rb +33 -0
  62. data/lib/faker/default/name.rb +99 -5
  63. data/lib/faker/default/nation.rb +0 -3
  64. data/lib/faker/default/{nhs.rb → national_health_service.rb} +26 -6
  65. data/lib/faker/default/number.rb +39 -69
  66. data/lib/faker/default/omniauth.rb +115 -57
  67. data/lib/faker/default/phone_number.rb +112 -14
  68. data/lib/faker/default/placeholdit.rb +23 -12
  69. data/lib/faker/default/relationship.rb +2 -6
  70. data/lib/faker/default/religion.rb +6 -0
  71. data/lib/faker/default/science.rb +108 -0
  72. data/lib/faker/default/slack_emoji.rb +81 -0
  73. data/lib/faker/default/source.rb +3 -16
  74. data/lib/faker/default/south_africa.rb +93 -3
  75. data/lib/faker/default/space.rb +1 -1
  76. data/lib/faker/default/string.rb +18 -8
  77. data/lib/faker/default/stripe.rb +68 -23
  78. data/lib/faker/default/tea.rb +41 -0
  79. data/lib/faker/default/theater.rb +52 -0
  80. data/lib/faker/default/time.rb +4 -34
  81. data/lib/faker/default/twitter.rb +42 -23
  82. data/lib/faker/default/types.rb +92 -34
  83. data/lib/faker/default/university.rb +45 -0
  84. data/lib/faker/default/vehicle.rb +227 -57
  85. data/lib/faker/default/verb.rb +45 -0
  86. data/lib/faker/default/vulnerability_identifier.rb +23 -0
  87. data/lib/faker/default/world_cup.rb +6 -15
  88. data/lib/faker/fantasy/tolkien.rb +67 -0
  89. data/lib/faker/games/clash_of_clans.rb +48 -0
  90. data/lib/faker/games/control.rb +113 -0
  91. data/lib/faker/games/dnd.rb +178 -0
  92. data/lib/faker/games/dota.rb +14 -5
  93. data/lib/faker/games/elder_scrolls.rb +26 -0
  94. data/lib/faker/games/final_fantasy_xiv.rb +73 -0
  95. data/lib/faker/games/heroes.rb +13 -0
  96. data/lib/faker/games/heroes_of_the_storm.rb +16 -5
  97. data/lib/faker/games/minecraft.rb +113 -0
  98. data/lib/faker/games/myst.rb +1 -1
  99. data/lib/faker/games/street_fighter.rb +61 -0
  100. data/lib/faker/games/super_mario.rb +48 -0
  101. data/lib/faker/games/tarkov.rb +205 -0
  102. data/lib/faker/games/touhou.rb +75 -0
  103. data/lib/faker/games/warhammer_fantasy.rb +74 -0
  104. data/lib/faker/games/witcher.rb +39 -0
  105. data/lib/faker/games/world_of_warcraft.rb +26 -1
  106. data/lib/faker/japanese_media/conan.rb +48 -0
  107. data/lib/faker/japanese_media/cowboy_bebop.rb +61 -0
  108. data/lib/faker/japanese_media/doraemon.rb +48 -0
  109. data/lib/faker/japanese_media/dragon_ball.rb +26 -0
  110. data/lib/faker/japanese_media/fullmetal_alchemist_brotherhood.rb +51 -0
  111. data/lib/faker/japanese_media/kamen_rider.rb +102 -0
  112. data/lib/faker/japanese_media/naruto.rb +61 -0
  113. data/lib/faker/japanese_media/one_piece.rb +1 -1
  114. data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
  115. data/lib/faker/locations/australia.rb +52 -0
  116. data/lib/faker/movies/avatar.rb +49 -0
  117. data/lib/faker/movies/departed.rb +49 -0
  118. data/lib/faker/movies/hackers.rb +48 -0
  119. data/lib/faker/movies/hobbit.rb +4 -4
  120. data/lib/faker/movies/how_to_train_your_dragon.rb +48 -0
  121. data/lib/faker/movies/lord_of_the_rings.rb +3 -3
  122. data/lib/faker/movies/movie.rb +13 -0
  123. data/lib/faker/movies/star_wars.rb +75 -7
  124. data/lib/faker/movies/the_room.rb +63 -0
  125. data/lib/faker/movies/tron.rb +161 -0
  126. data/lib/faker/music/hiphop.rb +48 -0
  127. data/lib/faker/music/music.rb +12 -0
  128. data/lib/faker/music/opera.rb +237 -1
  129. data/lib/faker/music/pearl_jam.rb +50 -0
  130. data/lib/faker/music/phish.rb +27 -1
  131. data/lib/faker/music/prince.rb +64 -0
  132. data/lib/faker/music/rock_band.rb +12 -0
  133. data/lib/faker/music/rush.rb +37 -0
  134. data/lib/faker/music/smashing_pumpkins.rb +64 -0
  135. data/lib/faker/quotes/quote.rb +93 -1
  136. data/lib/faker/quotes/rajnikanth.rb +1 -0
  137. data/lib/faker/quotes/shakespeare.rb +70 -0
  138. data/lib/faker/religion/bible.rb +50 -0
  139. data/lib/faker/sports/chess.rb +90 -0
  140. data/lib/faker/sports/mountaineering.rb +22 -0
  141. data/lib/faker/sports/sport.rb +116 -0
  142. data/lib/faker/sports/volleyball.rb +74 -0
  143. data/lib/faker/travel/airport.rb +43 -0
  144. data/lib/faker/travel/train_station.rb +54 -0
  145. data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +13 -0
  146. data/lib/faker/tv_shows/archer.rb +51 -0
  147. data/lib/faker/tv_shows/big_bang_theory.rb +37 -0
  148. data/lib/faker/tv_shows/brooklyn_nine_nine.rb +38 -0
  149. data/lib/faker/tv_shows/buffy.rb +17 -4
  150. data/lib/faker/tv_shows/dr_who.rb +1 -1
  151. data/lib/faker/tv_shows/final_space.rb +51 -0
  152. data/lib/faker/tv_shows/futurama.rb +65 -0
  153. data/lib/faker/tv_shows/michael_scott.rb +0 -3
  154. data/lib/faker/tv_shows/simpsons.rb +14 -0
  155. data/lib/faker/tv_shows/south_park.rb +15 -0
  156. data/lib/faker/tv_shows/spongebob.rb +50 -0
  157. data/lib/faker/tv_shows/suits.rb +37 -0
  158. data/lib/faker/tv_shows/supernatural.rb +48 -0
  159. data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +17 -4
  160. data/lib/faker/tv_shows/the_office.rb +37 -0
  161. data/lib/faker/version.rb +2 -2
  162. data/lib/faker.rb +51 -87
  163. data/lib/helpers/base58.rb +1 -1
  164. data/lib/helpers/char.rb +22 -27
  165. data/lib/helpers/deprecator.rb +53 -0
  166. data/lib/helpers/positional_generator.rb +480 -0
  167. data/lib/helpers/unique_generator.rb +13 -13
  168. data/lib/locales/README.md +18 -2
  169. data/lib/locales/ar.yml +6 -1
  170. data/lib/locales/bg.yml +1 -2
  171. data/lib/locales/da-DK.yml +529 -35
  172. data/lib/locales/de-AT.yml +3487 -25
  173. data/lib/locales/de-CH.yml +6020 -9
  174. data/lib/locales/de.yml +7185 -97
  175. data/lib/locales/ee.yml +0 -1
  176. data/lib/locales/en/address.yml +1828 -562
  177. data/lib/locales/en/adjective.yml +179 -0
  178. data/lib/locales/en/airport.yml +381 -0
  179. data/lib/locales/en/animal.yml +1 -1
  180. data/lib/locales/en/aqua_teen_hunger_force.yml +33 -1
  181. data/lib/locales/en/archer.yml +75 -0
  182. data/lib/locales/en/australia.yml +108 -0
  183. data/lib/locales/en/avatar.yml +31 -0
  184. data/lib/locales/en/bank.yml +2 -2
  185. data/lib/locales/en/barcode.yml +24 -0
  186. data/lib/locales/en/bible.yml +90 -0
  187. data/lib/locales/en/big_bang_theory.yml +38 -0
  188. data/lib/locales/en/bird.yml +1281 -0
  189. data/lib/locales/en/blood.yml +13 -0
  190. data/lib/locales/en/book.yml +487 -3
  191. data/lib/locales/en/brooklyn_nine_nine.yml +35 -0
  192. data/lib/locales/en/buffy.yml +1 -1
  193. data/lib/locales/en/camera.yml +611 -0
  194. data/lib/locales/en/cat.yml +1 -1
  195. data/lib/locales/en/chess.yml +103 -0
  196. data/lib/locales/en/clash_of_clan.yml +101 -0
  197. data/lib/locales/en/coffee.yml +1 -1
  198. data/lib/locales/en/commerce.yml +17 -0
  199. data/lib/locales/en/community.yml +17 -17
  200. data/lib/locales/en/company.yml +3 -2
  201. data/lib/locales/en/computer.yml +55 -0
  202. data/lib/locales/en/conan.yml +171 -0
  203. data/lib/locales/en/control.yml +247 -0
  204. data/lib/locales/en/cowboy_bebop.yml +163 -0
  205. data/lib/locales/en/demographic.yml +218 -5
  206. data/lib/locales/en/departed.yml +50 -0
  207. data/lib/locales/en/device.yml +112 -4
  208. data/lib/locales/en/dnd.yml +636 -0
  209. data/lib/locales/en/dog.yml +262 -7
  210. data/lib/locales/en/doraemon.yml +286 -0
  211. data/lib/locales/en/dota.yml +704 -63
  212. data/lib/locales/en/dragon_ball.yml +243 -1
  213. data/lib/locales/en/driving_license.yml +181 -0
  214. data/lib/locales/en/drone.yml +95 -0
  215. data/lib/locales/en/dune.yml +270 -131
  216. data/lib/locales/en/educator.yml +6 -0
  217. data/lib/locales/en/elder_scrolls.yml +583 -9
  218. data/lib/locales/en/emotion.yml +480 -0
  219. data/lib/locales/en/fallout.yml +311 -133
  220. data/lib/locales/en/file.yml +9 -1
  221. data/lib/locales/en/final_fantasy_xiv.yml +754 -0
  222. data/lib/locales/en/final_space.yml +37 -0
  223. data/lib/locales/en/finance.yml +80 -4
  224. data/lib/locales/en/food.yml +1067 -10
  225. data/lib/locales/en/football.yml +3 -3
  226. data/lib/locales/en/fresh_prince_of_bel_air.yml +1 -1
  227. data/lib/locales/en/fullmetal_alchemist_brotherhood.yml +78 -0
  228. data/lib/locales/en/futurama.yml +344 -0
  229. data/lib/locales/en/game.yml +11 -0
  230. data/lib/locales/en/hackers.yml +53 -0
  231. data/lib/locales/en/half_life.yml +84 -3
  232. data/lib/locales/en/harry_potter.yml +1 -1
  233. data/lib/locales/en/heroes.yml +408 -3
  234. data/lib/locales/en/heroes_of_the_storm.yml +131 -4
  235. data/lib/locales/en/hobby.yml +171 -0
  236. data/lib/locales/en/horse.yml +2 -2
  237. data/lib/locales/en/house.yml +1 -1
  238. data/lib/locales/en/how_to_train_your_dragon.yml +174 -0
  239. data/lib/locales/en/id_number.yml +1 -1
  240. data/lib/locales/en/internet.yml +136 -3
  241. data/lib/locales/en/jack_handey.yml +54 -0
  242. data/lib/locales/en/kamen_rider.yml +452 -0
  243. data/lib/locales/en/kpop.yml +7 -7
  244. data/lib/locales/en/league_of_legends.yml +285 -6
  245. data/lib/locales/en/lebowski.yml +1 -1
  246. data/lib/locales/en/lovecraft.yml +76 -6
  247. data/lib/locales/en/military.yml +179 -5
  248. data/lib/locales/en/minecraft.yml +663 -0
  249. data/lib/locales/en/mitch_hedberg.yml +46 -0
  250. data/lib/locales/en/mountain.yml +171 -0
  251. data/lib/locales/en/mountaineering.yml +14 -0
  252. data/lib/locales/en/movie.yml +194 -2
  253. data/lib/locales/en/music.yml +461 -29
  254. data/lib/locales/en/myst.yml +87 -31
  255. data/lib/locales/en/name.yml +5 -4
  256. data/lib/locales/en/naruto.yml +230 -0
  257. data/lib/locales/en/one_piece.yml +2 -2
  258. data/lib/locales/en/opera.yml +169 -1
  259. data/lib/locales/en/overwatch.yml +2648 -2622
  260. data/lib/locales/en/pearl_jam.yml +213 -0
  261. data/lib/locales/en/phish.yml +392 -1
  262. data/lib/locales/en/phone_number.yml +78 -3
  263. data/lib/locales/en/pokemon.yml +417 -4
  264. data/lib/locales/en/prince.yml +227 -0
  265. data/lib/locales/en/quote.yml +692 -163
  266. data/lib/locales/en/rock_band.yml +1 -0
  267. data/lib/locales/en/rush.yml +32 -0
  268. data/lib/locales/en/science.yml +481 -3
  269. data/lib/locales/en/shakespeare.yml +21 -24
  270. data/lib/locales/en/simpsons.yml +668 -0
  271. data/lib/locales/en/smashing_pumpkins.yml +382 -0
  272. data/lib/locales/en/source.yml +35 -0
  273. data/lib/locales/en/south_park.yml +360 -2
  274. data/lib/locales/en/space.yml +1 -1
  275. data/lib/locales/en/spongebob.yml +489 -0
  276. data/lib/locales/en/sport.yml +130 -0
  277. data/lib/locales/en/star_trek.yml +1 -1
  278. data/lib/locales/en/star_wars.yml +568 -220
  279. data/lib/locales/en/stranger_thing.yml +1 -1
  280. data/lib/locales/en/street_fighter.yml +1524 -0
  281. data/lib/locales/en/studio_ghibli.yml +107 -0
  282. data/lib/locales/en/suits.yml +45 -0
  283. data/lib/locales/en/super_mario.yml +58 -0
  284. data/lib/locales/en/super_smash_bros.yml +23 -6
  285. data/lib/locales/en/supernatural.yml +141 -0
  286. data/lib/locales/en/tarkov.yml +593 -0
  287. data/lib/locales/en/tea.yml +172 -0
  288. data/lib/locales/en/the_kingkiller_chronicle.yml +56 -0
  289. data/lib/locales/en/the_office.yml +86 -0
  290. data/lib/locales/en/the_room.yml +68 -0
  291. data/lib/locales/en/theater.yml +597 -0
  292. data/lib/locales/en/tolkien.yml +2453 -0
  293. data/lib/locales/en/touhou.yml +839 -0
  294. data/lib/locales/en/train_station.yml +280 -0
  295. data/lib/locales/en/tron.yml +227 -0
  296. data/lib/locales/en/vehicle.yml +2809 -75
  297. data/lib/locales/en/volleyball.yml +501 -0
  298. data/lib/locales/en/warhammer_fantasy.yml +582 -0
  299. data/lib/locales/en/witcher.yml +426 -7
  300. data/lib/locales/en/world_of_warcraft.yml +122 -4
  301. data/lib/locales/en/zelda.yml +962 -4
  302. data/lib/locales/en-AU.yml +728 -17
  303. data/lib/locales/en-CA.yml +373 -16
  304. data/lib/locales/en-GB.yml +116 -8
  305. data/lib/locales/en-IND.yml +1259 -16
  306. data/lib/locales/en-KE.yml +212 -0
  307. data/lib/locales/en-MS.yml +364 -16
  308. data/lib/locales/en-NEP.yml +212 -35
  309. data/lib/locales/en-NG.yml +1 -0
  310. data/lib/locales/en-NZ.yml +1153 -121
  311. data/lib/locales/en-PAK.yml +369 -9
  312. data/lib/locales/en-SG.yml +581 -15
  313. data/lib/locales/en-UG.yml +1 -0
  314. data/lib/locales/en-US.yml +6937 -71
  315. data/lib/locales/en-ZA.yml +1 -1
  316. data/lib/locales/en-au-ocker.yml +266 -21
  317. data/lib/locales/en.yml +0 -3
  318. data/lib/locales/es-AR.yml +4570 -0
  319. data/lib/locales/es-MX.yml +1 -2
  320. data/lib/locales/es.yml +58 -3
  321. data/lib/locales/fi-FI.yml +4 -2
  322. data/lib/locales/fr/address.yml +20 -0
  323. data/lib/locales/fr/adjective.yml +266 -0
  324. data/lib/locales/fr/ancient.yml +141 -0
  325. data/lib/locales/fr/animal.yml +5 -0
  326. data/lib/locales/fr/appliance.yml +4 -0
  327. data/lib/locales/fr/book.yml +7 -0
  328. data/lib/locales/fr/color.yml +4 -0
  329. data/lib/locales/fr/company.yml +17 -0
  330. data/lib/locales/fr/compass.yml +23 -0
  331. data/lib/locales/fr/demographic.yml +4 -0
  332. data/lib/locales/fr/gender.yml +6 -0
  333. data/lib/locales/fr/internet.yml +4 -0
  334. data/lib/locales/fr/lorem.yml +5 -0
  335. data/lib/locales/fr/measurement.yml +7 -0
  336. data/lib/locales/fr/name.yml +22 -0
  337. data/lib/locales/fr/phone_number.yml +7 -0
  338. data/lib/locales/fr/pokemon.yml +7 -0
  339. data/lib/locales/fr-CA.yml +2748 -43
  340. data/lib/locales/fr-CH.yml +3 -4
  341. data/lib/locales/fr.yml +2 -112
  342. data/lib/locales/hy.yml +3624 -119
  343. data/lib/locales/id.yml +839 -10
  344. data/lib/locales/it.yml +1304 -31
  345. data/lib/locales/ja/README.md +13 -0
  346. data/lib/locales/ja/address.yml +120539 -0
  347. data/lib/locales/ja/adjective.yml +148 -0
  348. data/lib/locales/ja/ancient.yml +4 -0
  349. data/lib/locales/ja/animal.yml +5 -0
  350. data/lib/locales/ja/bank.yml +4 -0
  351. data/lib/locales/ja/book.yml +7 -0
  352. data/lib/locales/ja/cat.yml +5 -0
  353. data/lib/locales/ja/coffee.yml +4 -0
  354. data/lib/locales/ja/color.yml +4 -0
  355. data/lib/locales/ja/commerce.yml +11 -0
  356. data/lib/locales/ja/company.yml +8 -0
  357. data/lib/locales/ja/dog.yml +6 -0
  358. data/lib/locales/ja/emotion.yml +51 -0
  359. data/lib/locales/ja/food.yml +4 -0
  360. data/lib/locales/ja/football.yml +115 -0
  361. data/lib/locales/ja/gender.yml +4 -0
  362. data/lib/locales/ja/lorem.yml +9 -0
  363. data/lib/locales/ja/name.yml +13 -0
  364. data/lib/locales/ja/naruto.yml +230 -0
  365. data/lib/locales/ja/overwatch.yml +5 -0
  366. data/lib/locales/ja/phone_number.yml +7 -0
  367. data/lib/locales/ja/pokemon.yml +7 -0
  368. data/lib/locales/ja/relationship.yml +10 -0
  369. data/lib/locales/ja/restaurant.yml +11 -0
  370. data/lib/locales/ja/space.yml +5 -0
  371. data/lib/locales/ja/sport.yml +130 -0
  372. data/lib/locales/ja/studio_ghibli.yml +112 -0
  373. data/lib/locales/ja/subscription.yml +8 -0
  374. data/lib/locales/ja/super_mario.yml +9 -0
  375. data/lib/locales/ja/super_smash_bros.yml +8 -0
  376. data/lib/locales/ja/touhou.yml +466 -0
  377. data/lib/locales/ja/university.yml +9 -0
  378. data/lib/locales/ja/zelda.yml +5 -0
  379. data/lib/locales/ko.yml +1450 -17
  380. data/lib/locales/lt.yml +315 -0
  381. data/lib/locales/lv.yml +1 -2
  382. data/lib/locales/mi-NZ.yml +283 -0
  383. data/lib/locales/nb-NO.yml +518 -27
  384. data/lib/locales/nl.yml +1 -1
  385. data/lib/locales/pl.yml +1 -2
  386. data/lib/locales/pt-BR.yml +8157 -659
  387. data/lib/locales/pt.yml +844 -43
  388. data/lib/locales/ru.yml +1355 -30
  389. data/lib/locales/sk.yml +4410 -41
  390. data/lib/locales/sv.yml +100 -0
  391. data/lib/locales/th.yml +76 -76
  392. data/lib/locales/tr.yml +1 -2
  393. data/lib/locales/uk.yml +1810 -44
  394. data/lib/locales/vi.yml +1 -0
  395. data/lib/locales/zh-CN/bank.yml +17 -0
  396. data/lib/locales/zh-CN.yml +1 -0
  397. data/lib/locales/zh-TW.yml +1 -0
  398. metadata +192 -127
  399. data/History.md +0 -176
  400. data/lib/faker/default/fillmurray.rb +0 -45
  401. data/lib/faker/default/lorem_pixel.rb +0 -47
  402. data/lib/locales/en/hobbit.yml +0 -19
  403. data/lib/locales/en/lord_of_the_rings.yml +0 -6
  404. data/lib/locales/ja.yml +0 -101
@@ -42,8 +42,6 @@ module Faker
42
42
  parse('app.author')
43
43
  end
44
44
 
45
- # rubocop:disable Metrics/ParameterLists
46
-
47
45
  ##
48
46
  # Produces a String representing a semantic version identifier.
49
47
  #
@@ -62,14 +60,7 @@ module Faker
62
60
  # Faker::App.semantic_version(patch: 5..6) #=> "7.2.6"
63
61
  #
64
62
  # @faker.version 1.4.3
65
- def semantic_version(legacy_major = NOT_GIVEN, legacy_minor = NOT_GIVEN, legacy_patch = NOT_GIVEN, major: 0..9, minor: 0..9, patch: 1..9)
66
- # rubocop:enable Metrics/ParameterLists
67
- warn_for_deprecated_arguments do |keywords|
68
- keywords << :major if legacy_major != NOT_GIVEN
69
- keywords << :minor if legacy_minor != NOT_GIVEN
70
- keywords << :patch if legacy_patch != NOT_GIVEN
71
- end
72
-
63
+ def semantic_version(major: 0..9, minor: 0..9, patch: 1..9)
73
64
  [major, minor, patch].map { |chunk| sample(Array(chunk)) }.join('.')
74
65
  end
75
66
  end
@@ -6,8 +6,6 @@ module Faker
6
6
  # @private
7
7
  SUPPORTED_FORMATS = %w[png jpg bmp].freeze
8
8
 
9
- # rubocop:disable Metrics/ParameterLists
10
-
11
9
  ##
12
10
  # Produces a URL for an avatar from robohash.org
13
11
  #
@@ -38,16 +36,7 @@ module Faker
38
36
  # #=> "https://robohash.org/my-own-slug.bmp?size=50x50&set=set1&bgset=bg1"
39
37
  #
40
38
  # @faker.version 1.4.3
41
- def image(legacy_slug = NOT_GIVEN, legacy_size = NOT_GIVEN, legacy_format = NOT_GIVEN, legacy_set = NOT_GIVEN, legacy_bgset = NOT_GIVEN, slug: nil, size: '300x300', format: 'png', set: 'set1', bgset: nil)
42
- # rubocop:enable Metrics/ParameterLists
43
- warn_for_deprecated_arguments do |keywords|
44
- keywords << :slug if legacy_slug != NOT_GIVEN
45
- keywords << :size if legacy_size != NOT_GIVEN
46
- keywords << :format if legacy_format != NOT_GIVEN
47
- keywords << :set if legacy_set != NOT_GIVEN
48
- keywords << :bgset if legacy_bgset != NOT_GIVEN
49
- end
50
-
39
+ def image(slug: nil, size: '300x300', format: 'png', set: 'set1', bgset: nil)
51
40
  raise ArgumentError, 'Size should be specified in format 300x300' unless size =~ /^[0-9]+x[0-9]+$/
52
41
  raise ArgumentError, "Supported formats are #{SUPPORTED_FORMATS.join(', ')}" unless SUPPORTED_FORMATS.include?(format)
53
42
 
@@ -5,25 +5,42 @@ module Faker
5
5
  flexible :bank
6
6
 
7
7
  class << self
8
- def account_number(legacy_digits = NOT_GIVEN, digits: 10)
9
- warn_for_deprecated_arguments do |keywords|
10
- keywords << :digits if legacy_digits != NOT_GIVEN
11
- end
12
-
8
+ ##
9
+ # Produces a bank account number.
10
+ #
11
+ # @param digits [Integer] Number of digits that the generated account number should have.
12
+ # @return [String]
13
+ #
14
+ # @example
15
+ # Faker::Bank.account_number #=> 6738582379
16
+ # Faker::Bank.account_number(digits: 13) #=> 673858237902
17
+ #
18
+ # @faker.version 1.9.1
19
+ def account_number(digits: 10)
13
20
  output = ''
14
21
 
15
- output += rand.to_s[2..-1] while output.length < digits
22
+ output += rand.to_s[2..] while output.length < digits
16
23
 
17
24
  output[0...digits]
18
25
  end
19
26
 
20
- def iban(legacy_country_code = NOT_GIVEN, country_code: 'GB')
27
+ ##
28
+ # Produces a bank iban number.
29
+ #
30
+ # @param country_code [String, nil] Specifies what country prefix is used to generate the iban code. Providing `nil` will use a random country.
31
+ # @return [String]
32
+ #
33
+ # @example
34
+ # Faker::Bank.iban #=> "GB76DZJM33188515981979"
35
+ # Faker::Bank.iban(country_code: "be") #=> "BE6375388567752043"
36
+ # Faker::Bank.iban(country_code: nil) #=> "DE45186738071857270067"
37
+ #
38
+ # @faker.version 1.7.0
39
+ def iban(country_code: 'GB')
21
40
  # Each country has its own format for bank accounts
22
41
  # Many of them use letters in certain parts of the account
23
42
  # Using regex patterns we can create virtually any type of bank account
24
- warn_for_deprecated_arguments do |keywords|
25
- keywords << :country_code if legacy_country_code != NOT_GIVEN
26
- end
43
+ country_code ||= iban_country_code
27
44
 
28
45
  begin
29
46
  pattern = fetch("bank.iban_details.#{country_code.downcase}.bban_pattern")
@@ -38,26 +55,89 @@ module Faker
38
55
  country_code.upcase + iban_checksum(country_code, account) + account
39
56
  end
40
57
 
58
+ ##
59
+ # Produces the ISO 3166 code of a country that uses the IBAN system.
60
+ #
61
+ # @return [String]
62
+ #
63
+ # @example
64
+ # Faker::Bank.iban_country_code #=> "CH"
65
+ #
66
+ # @faker.version next
67
+ def iban_country_code
68
+ sample(translate('faker.bank.iban_details').keys).to_s.upcase
69
+ end
70
+
71
+ ##
72
+ # Produces a bank name.
73
+ #
74
+ # @return [String]
75
+ #
76
+ # @example
77
+ # Faker::Bank.name #=> "ABN AMRO CORPORATE FINANCE LIMITED"
78
+ #
79
+ # @faker.version 1.7.0
41
80
  def name
42
81
  fetch('bank.name')
43
82
  end
44
83
 
84
+ ##
85
+ # Produces a routing number.
86
+ #
87
+ # @return [String]
88
+ #
89
+ # @example
90
+ # Faker::Bank.routing_number #=> "729343831"
91
+ #
92
+ # @faker.version 1.9.1
45
93
  def routing_number
46
94
  valid_routing_number
47
95
  end
48
96
 
97
+ ##
98
+ # Produces a valid routing number.
99
+ #
100
+ # @return [String]
101
+ #
102
+ # @example
103
+ # Faker::Bank.routing_number #=> "729343831"
104
+ #
105
+ # @faker.version 1.9.1
49
106
  def routing_number_with_format
50
107
  compile_fraction(valid_routing_number)
51
108
  end
52
109
 
110
+ ##
111
+ # Produces a swift / bic number.
112
+ #
113
+ # @return [String]
114
+ #
115
+ # @example
116
+ # Faker::Bank.swift_bic #=> "AAFMGB21"
117
+ #
118
+ # @faker.version 1.7.0
53
119
  def swift_bic
54
120
  fetch('bank.swift_bic')
55
121
  end
56
122
 
123
+ ##
124
+ # Produces an Australian BSB (Bank-State-Branch) number
125
+ #
126
+ # @return [String]
127
+ #
128
+ # @example
129
+ # Faker::Bank.bsb_number
130
+ # #=> "036616"
131
+ #
132
+ # @faker.version 2.13.0
133
+ def bsb_number
134
+ compile_bsb_number
135
+ end
136
+
57
137
  private
58
138
 
59
139
  def checksum(num_string)
60
- num_array = num_string.split('').map(&:to_i)
140
+ num_array = num_string.chars.map(&:to_i)
61
141
  (
62
142
  7 * (num_array[0] + num_array[3] + num_array[6]) +
63
143
  3 * (num_array[1] + num_array[4] + num_array[7]) +
@@ -68,20 +148,25 @@ module Faker
68
148
  def compile_routing_number
69
149
  digit_one_two = %w[00 01 02 03 04 05 06 07 08 09 10 11 12]
70
150
  ((21..32).to_a + (61..72).to_a + [80]).each { |x| digit_one_two << x.to_s }
71
- routing_num = digit_one_two.sample + rand_numstring + rand_numstring + rand_numstring + rand_numstring + rand_numstring + rand_numstring + rand_numstring
72
- routing_num
151
+ digit_one_two.sample + rand_numstring + rand_numstring + rand_numstring + rand_numstring + rand_numstring + rand_numstring + rand_numstring
152
+ end
153
+
154
+ def compile_bsb_number
155
+ digit_one_two = %w[01 03 06 08 11 12 73 76 78 30]
156
+ state = (2..7).to_a.map(&:to_s).sample
157
+ digit_one_two.sample + state + rand_numstring + rand_numstring + rand_numstring
73
158
  end
74
159
 
75
160
  # Calculates the mandatory checksum in 3rd and 4th characters in IBAN format
76
- # source: https://en.wikipedia.org/wiki/International_Bank_Account_Number#Validating_the_IBAN
161
+ # source: https://en.wikipedia.org/wiki/International_Bank_Account_Number#Generating_IBAN_check_digits
77
162
  def iban_checksum(country_code, account)
78
163
  # Converts letters to numbers according the iban rules, A=10..Z=35
79
164
  account_to_number = "#{account}#{country_code}00".upcase.chars.map do |d|
80
165
  d =~ /[A-Z]/ ? (d.ord - 55).to_s : d
81
166
  end.join.to_i
82
167
 
83
- # This is answer to (iban_to_num + checksum) % 97 == 1
84
- checksum = (1 - account_to_number) % 97
168
+ # This is the correct answer to (iban_to_num + checksum) % 97 == 1
169
+ checksum = 98 - (account_to_number % 97)
85
170
 
86
171
  # Use leftpad to make the size always to 2
87
172
  checksum.to_s.rjust(2, '0')
@@ -101,9 +186,9 @@ module Faker
101
186
 
102
187
  def compile_fraction(routing_num)
103
188
  prefix = (1..50).to_a.map(&:to_s).sample
104
- numerator = routing_num.split('')[5..8].join.to_i.to_s
105
- denominator = routing_num.split('')[0..4].join.to_i.to_s
106
- prefix + '-' + numerator + '/' + denominator
189
+ numerator = routing_num.chars[5..8].join.to_i.to_s
190
+ denominator = routing_num.chars[0..4].join.to_i.to_s
191
+ "#{prefix}-#{numerator}/#{denominator}"
107
192
  end
108
193
 
109
194
  def rand_numstring
@@ -0,0 +1,165 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Barcode < Base
5
+ class << self
6
+ ##
7
+ # Returns a EAN 8 or 13 digit format barcode number with check digit
8
+ # @return [String]
9
+ #
10
+ # @example
11
+ # Faker::Barcode.ean => "85657526"
12
+ # Faker::Barcode.ean(8) => "30152700"
13
+ # Faker::Barcode.ean(13) => "2115190480285"
14
+ #
15
+ # @faker.version 2.14.0
16
+ def ean(length = 8)
17
+ generate_barcode("barcode.ean_#{Integer(length)}")
18
+ end
19
+
20
+ ##
21
+ # Returns a EAN 8 or 13 digit format barcode number with composite string attached with check digit
22
+ # @return [String]
23
+ #
24
+ # @example
25
+ # Faker::Barcode.ean_with_composite_sumbology => "41007624|JHOC6649"
26
+ # Faker::Barcode.ean_with_composite_sumbology(8) => "38357961|XUYJ3266"
27
+ # Faker::Barcode.ean_with_composite_sumbology(13) => "9530722443911|CKHWQHID"
28
+ #
29
+ # @faker.version 2.14.0
30
+ def ean_with_composite_symbology(length = 8)
31
+ "#{ean(length)}|#{bothify(parse('barcode.composite_symbol'))}"
32
+ end
33
+
34
+ ##
35
+ # Returns a UPC_A format barcode number with check digit
36
+ # @return [String]
37
+ #
38
+ # @example
39
+ # Faker::Barcode.upc_a => "766807541831"
40
+ #
41
+ # @faker.version 2.14.0
42
+ def upc_a
43
+ generate_barcode('barcode.upc_a')
44
+ end
45
+
46
+ ##
47
+ # Returns a UPC_E format barcode number with check digit
48
+ # @return [String]
49
+ #
50
+ # @example
51
+ # Faker::Barcode.upc_e => "03746820"
52
+ #
53
+ # @faker.version 2.14.0
54
+ def upc_e
55
+ generate_barcode('barcode.upc_e')
56
+ end
57
+
58
+ ##
59
+ # Returns a UPC_A format barcode number with composite string attached with check digit
60
+ # @return [String]
61
+ #
62
+ # @example
63
+ # Faker::Barcode.upc_a_with_composite_symbology => "790670155765|JOVG6208"
64
+ #
65
+ # @faker.version 2.14.0
66
+ def upc_a_with_composite_symbology
67
+ "#{upc_a}|#{bothify(parse('barcode.composite_symbol'))}"
68
+ end
69
+
70
+ ##
71
+ # Returns a UPC_E format barcode number with composite string attached with check digit
72
+ # @return [String]
73
+ #
74
+ # @example
75
+ # Faker::Barcode.upc_e_with_composite_symbology => "05149247|BKZX9722"
76
+ #
77
+ # @faker.version 2.14.0
78
+ def upc_e_with_composite_symbology
79
+ "#{upc_e}|#{bothify(parse('barcode.composite_symbol'))}"
80
+ end
81
+
82
+ ##
83
+ # Returns a ISBN format barcode number with check digit
84
+ # @return [String]
85
+ #
86
+ # @example
87
+ # Faker::Barcode.isbn => "9798363807732"
88
+ #
89
+ # @faker.version 2.14.0
90
+ def isbn
91
+ generate_barcode('barcode.isbn')
92
+ end
93
+
94
+ ##
95
+ # Returns a ISMN format barcode number with check digit
96
+ # @return [String]
97
+ #
98
+ # @example
99
+ # Faker::Barcode.ismn => "9790527672897"
100
+ #
101
+ # @faker.version 2.14.0
102
+ def ismn
103
+ generate_barcode('barcode.ismn')
104
+ end
105
+
106
+ ##
107
+ # Returns a ISSN format barcode number with check digit
108
+ # @return [String]
109
+ #
110
+ # @example
111
+ # Faker::Barcode.issn => "9775541703338"
112
+ #
113
+ # @faker.version 2.14.0
114
+ def issn
115
+ generate_barcode('barcode.issn')
116
+ end
117
+
118
+ private
119
+
120
+ def generate_barcode(key)
121
+ barcode = parse(key)
122
+ check_digit = generate_check_digit(*sum_even_odd(barcode))
123
+ "#{barcode}#{check_digit}"
124
+ end
125
+
126
+ ##
127
+ # Returns the sum of even and odd numbers from value passed
128
+ #
129
+ # @return [Array]
130
+ #
131
+ # @example
132
+ # Faker::Barcode.send(:sum_even_odd, 12345) => [9, 5]
133
+ # Faker::Barcode.send(:sum_even_odd, 87465) => [17, 13]
134
+ #
135
+ # @faker.version 2.14.0
136
+ def sum_even_odd(fake_num)
137
+ number = fake_num.to_i
138
+ sum_even, sum_odd = 0, 0, index = 1
139
+
140
+ while number != 0
141
+ index.even? ? sum_even += number % 10 : sum_odd += number % 10
142
+
143
+ number /= 10
144
+ index += 1
145
+ end
146
+
147
+ [sum_odd, sum_even]
148
+ end
149
+
150
+ ##
151
+ # Generates the check digits from sum passed
152
+ #
153
+ # @return [Integer]
154
+ #
155
+ # @example
156
+ # Faker::Barcode.send(:generate_check_digit, 12, 4) => 0
157
+ # Faker::Barcode.send(:generate_check_digit, 23, 5) => 6
158
+ #
159
+ # @faker.version 2.14.0
160
+ def generate_check_digit(odd_sum, even_sum)
161
+ (10 - (odd_sum * 3 + even_sum) % 10) % 10
162
+ end
163
+ end
164
+ end
165
+ end
@@ -80,7 +80,7 @@ module Faker
80
80
  #
81
81
  # @faker.version 1.6.2
82
82
  def ibu
83
- rand(10..100).to_s + ' IBU'
83
+ "#{rand(10..100)} IBU"
84
84
  end
85
85
 
86
86
  ##
@@ -93,7 +93,7 @@ module Faker
93
93
  #
94
94
  # @faker.version 1.6.2
95
95
  def alcohol
96
- rand(2.0..10.0).round(1).to_s + '%'
96
+ "#{rand(2.0..10.0).round(1)}%"
97
97
  end
98
98
 
99
99
  ##
@@ -106,7 +106,7 @@ module Faker
106
106
  #
107
107
  # @faker.version 1.6.2
108
108
  def blg
109
- rand(5.0..20.0).round(1).to_s + '°Blg'
109
+ "#{rand(5.0..20.0).round(1)}°Blg"
110
110
  end
111
111
  end
112
112
  end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Blood < Base
5
+ flexible :blood
6
+
7
+ class << self
8
+ ##
9
+ # Produces a random blood type.
10
+ #
11
+ # @return [String]
12
+ #
13
+ # @example
14
+ # Faker::Blood.type #=> "AB"
15
+ #
16
+ # @faker.version 2.13.0
17
+ def type
18
+ fetch('blood.type')
19
+ end
20
+
21
+ ##
22
+ # Produces a random blood RH-Factor.
23
+ #
24
+ # @return [String]
25
+ #
26
+ # @example
27
+ # Faker::Blood.rh_factor #=> "-"
28
+ #
29
+ # @faker.version 2.13.0
30
+ def rh_factor
31
+ fetch('blood.rh_factor')
32
+ end
33
+
34
+ ##
35
+ # Produces a random blood group name.
36
+ #
37
+ # @return [String]
38
+ #
39
+ # @example
40
+ # Faker::Blood.group #=> "AB-"
41
+ #
42
+ # @faker.version 2.13.0
43
+ def group
44
+ parse('blood.group')
45
+ end
46
+ end
47
+ end
48
+ end
@@ -15,10 +15,7 @@ module Faker
15
15
  # Faker::Boolean.boolean(true_ratio: 0.2) #=> false
16
16
  #
17
17
  # @faker.version 1.6.2
18
- def boolean(legacy_true_ratio = NOT_GIVEN, true_ratio: 0.5)
19
- warn_for_deprecated_arguments do |keywords|
20
- keywords << :true_ratio if legacy_true_ratio != NOT_GIVEN
21
- end
18
+ def boolean(true_ratio: 0.5)
22
19
  (rand < true_ratio)
23
20
  end
24
21
  end
@@ -26,7 +26,7 @@ module Faker
26
26
  # @return [Date]
27
27
  #
28
28
  # @example
29
- # Faker::Business.credit_card_number #=> <Date: 2015-11-11 ((2457338j,0s,0n),+0s,2299161j)>
29
+ # Faker::Business.credit_card_expiry_date #=> <Date: 2015-11-11 ((2457338j,0s,0n),+0s,2299161j)>
30
30
  #
31
31
  # @faker.version 1.2.0
32
32
  def credit_card_expiry_date
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Camera < Base
5
+ class << self
6
+ ##
7
+ # Produces a brand of a camera
8
+ #
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::Camera.brand #=> "Canon"
13
+ #
14
+ # @faker.version next
15
+ def brand
16
+ fetch('camera.brand')
17
+ end
18
+
19
+ ##
20
+ # Produces a model of camera
21
+ #
22
+ # @return [String]
23
+ #
24
+ # @example
25
+ # Faker::Camera.model #=> "450D"
26
+ #
27
+ # @faker.version next
28
+ def model
29
+ fetch('camera.model')
30
+ end
31
+
32
+ ##
33
+ # Produces a brand with model
34
+ #
35
+ # @return [String]
36
+ #
37
+ # @example
38
+ # Faker::Camera.brand_with_model #=> "Canon 450D"
39
+ #
40
+ # @faker.version next
41
+ def brand_with_model
42
+ fetch('camera.brand_with_model')
43
+ end
44
+ end
45
+ end
46
+ end
@@ -2,6 +2,7 @@
2
2
 
3
3
  module Faker
4
4
  class Cannabis < Base
5
+ ##
5
6
  # Produces a random strain.
6
7
  #
7
8
  # @return [String]
@@ -14,6 +15,7 @@ module Faker
14
15
  fetch('cannabis.strains')
15
16
  end
16
17
 
18
+ ##
17
19
  # Produces a random abbreviation.
18
20
  #
19
21
  # @return [String]
@@ -26,6 +28,7 @@ module Faker
26
28
  fetch('cannabis.cannabinoid_abbreviations')
27
29
  end
28
30
 
31
+ ##
29
32
  # Produces a random cannabinoid type.
30
33
  #
31
34
  # @return [String]
@@ -38,6 +41,7 @@ module Faker
38
41
  fetch('cannabis.cannabinoids')
39
42
  end
40
43
 
44
+ ##
41
45
  # Produces a random terpene type.
42
46
  #
43
47
  # @return [String]
@@ -50,6 +54,7 @@ module Faker
50
54
  fetch('cannabis.terpenes')
51
55
  end
52
56
 
57
+ ##
53
58
  # Produces a random kind of medical use.
54
59
  #
55
60
  # @return [String]
@@ -62,6 +67,7 @@ module Faker
62
67
  fetch('cannabis.medical_uses')
63
68
  end
64
69
 
70
+ ##
65
71
  # Produces a random health benefit.
66
72
  #
67
73
  # @return [String]
@@ -74,6 +80,7 @@ module Faker
74
80
  fetch('cannabis.health_benefits')
75
81
  end
76
82
 
83
+ ##
77
84
  # Produces a random category.
78
85
  #
79
86
  # @return [String]
@@ -86,6 +93,7 @@ module Faker
86
93
  fetch('cannabis.categories')
87
94
  end
88
95
 
96
+ ##
89
97
  # Produces a random type.
90
98
  #
91
99
  # @return [String]
@@ -98,6 +106,7 @@ module Faker
98
106
  fetch('cannabis.types')
99
107
  end
100
108
 
109
+ ##
101
110
  # Produces a random buzzword.
102
111
  #
103
112
  # @return [String]
@@ -110,6 +119,7 @@ module Faker
110
119
  fetch('cannabis.buzzwords')
111
120
  end
112
121
 
122
+ ##
113
123
  # Produces a random brand.
114
124
  #
115
125
  # @return [String]