faker 2.2.0 → 3.2.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 (482) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1298 -24
  3. data/History.md +5 -5
  4. data/README.md +239 -104
  5. data/lib/faker/blockchain/aeternity.rb +70 -0
  6. data/lib/faker/blockchain/bitcoin.rb +28 -2
  7. data/lib/faker/blockchain/ethereum.rb +11 -1
  8. data/lib/faker/blockchain/tezos.rb +93 -9
  9. data/lib/faker/books/book.rb +36 -0
  10. data/lib/faker/books/culture_series.rb +49 -0
  11. data/lib/faker/books/dune.rb +73 -17
  12. data/lib/faker/books/lovecraft.rb +186 -57
  13. data/lib/faker/books/the_kingkiller_chronicle.rb +61 -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/default/address.rb +253 -33
  20. data/lib/faker/default/adjective.rb +35 -0
  21. data/lib/faker/default/alphanumeric.rb +27 -22
  22. data/lib/faker/default/ancient.rb +36 -0
  23. data/lib/faker/default/app.rb +46 -16
  24. data/lib/faker/default/appliance.rb +18 -0
  25. data/lib/faker/default/artist.rb +9 -0
  26. data/lib/faker/default/avatar.rb +32 -24
  27. data/lib/faker/default/bank.rb +118 -29
  28. data/lib/faker/default/barcode.rb +165 -0
  29. data/lib/faker/default/beer.rb +75 -3
  30. data/lib/faker/default/blood.rb +48 -0
  31. data/lib/faker/default/boolean.rb +13 -6
  32. data/lib/faker/default/bossa_nova.rb +18 -0
  33. data/lib/faker/default/business.rb +27 -0
  34. data/lib/faker/default/camera.rb +46 -0
  35. data/lib/faker/default/cannabis.rb +90 -0
  36. data/lib/faker/default/chile_rut.rb +62 -26
  37. data/lib/faker/default/chuck_norris.rb +13 -2
  38. data/lib/faker/default/code.rb +162 -58
  39. data/lib/faker/default/coffee.rb +45 -0
  40. data/lib/faker/default/coin.rb +18 -0
  41. data/lib/faker/default/color.rb +123 -5
  42. data/lib/faker/default/commerce.rb +105 -37
  43. data/lib/faker/default/company.rb +446 -34
  44. data/lib/faker/default/compass.rb +135 -0
  45. data/lib/faker/default/computer.rb +63 -0
  46. data/lib/faker/default/construction.rb +54 -0
  47. data/lib/faker/default/cosmere.rb +90 -0
  48. data/lib/faker/default/crypto.rb +44 -4
  49. data/lib/faker/default/crypto_coin.rb +48 -18
  50. data/lib/faker/default/currency.rb +27 -0
  51. data/lib/faker/default/date.rb +149 -52
  52. data/lib/faker/default/dc_comics.rb +45 -0
  53. data/lib/faker/default/demographic.rb +58 -6
  54. data/lib/faker/default/dessert.rb +27 -0
  55. data/lib/faker/default/device.rb +54 -0
  56. data/lib/faker/default/driving_licence.rb +85 -28
  57. data/lib/faker/default/drone.rb +332 -0
  58. data/lib/faker/default/educator.rb +73 -6
  59. data/lib/faker/default/electrical_components.rb +27 -0
  60. data/lib/faker/default/emotion.rb +33 -0
  61. data/lib/faker/default/esport.rb +45 -0
  62. data/lib/faker/default/file.rb +53 -38
  63. data/lib/faker/default/finance.rb +75 -8
  64. data/lib/faker/default/food.rb +93 -3
  65. data/lib/faker/default/funny_name.rb +45 -0
  66. data/lib/faker/default/gender.rb +31 -0
  67. data/lib/faker/default/greek_philosophers.rb +18 -0
  68. data/lib/faker/default/hacker.rb +59 -1
  69. data/lib/faker/default/hipster.rb +106 -81
  70. data/lib/faker/default/hobby.rb +22 -0
  71. data/lib/faker/default/house.rb +18 -0
  72. data/lib/faker/default/html.rb +230 -0
  73. data/lib/faker/default/id_number.rb +276 -18
  74. data/lib/faker/default/industry_segments.rb +36 -0
  75. data/lib/faker/default/internet.rb +442 -147
  76. data/lib/faker/default/internet_http.rb +48 -0
  77. data/lib/faker/default/invoice.rb +37 -29
  78. data/lib/faker/default/job.rb +36 -0
  79. data/lib/faker/default/json.rb +61 -30
  80. data/lib/faker/default/kpop.rb +54 -0
  81. data/lib/faker/default/lorem.rb +184 -121
  82. data/lib/faker/default/lorem_flickr.rb +69 -68
  83. data/lib/faker/default/markdown.rb +97 -15
  84. data/lib/faker/default/marketing.rb +9 -0
  85. data/lib/faker/default/measurement.rb +101 -50
  86. data/lib/faker/default/military.rb +71 -0
  87. data/lib/faker/default/mountain.rb +33 -0
  88. data/lib/faker/default/name.rb +99 -6
  89. data/lib/faker/default/nation.rb +45 -5
  90. data/lib/faker/default/nato_phonetic_alphabet.rb +9 -0
  91. data/lib/faker/default/nhs.rb +21 -7
  92. data/lib/faker/default/number.rb +160 -91
  93. data/lib/faker/default/omniauth.rb +199 -137
  94. data/lib/faker/default/phone_number.rb +89 -11
  95. data/lib/faker/default/placeholdit.rb +23 -25
  96. data/lib/faker/default/programming_language.rb +18 -0
  97. data/lib/faker/default/relationship.rb +47 -7
  98. data/lib/faker/default/religion.rb +6 -0
  99. data/lib/faker/default/restaurant.rb +54 -2
  100. data/lib/faker/default/science.rb +135 -0
  101. data/lib/faker/default/slack_emoji.rb +81 -0
  102. data/lib/faker/default/source.rb +46 -22
  103. data/lib/faker/default/south_africa.rb +90 -0
  104. data/lib/faker/default/space.rb +128 -1
  105. data/lib/faker/default/string.rb +18 -9
  106. data/lib/faker/default/stripe.rb +68 -27
  107. data/lib/faker/default/subscription.rb +45 -0
  108. data/lib/faker/default/superhero.rb +45 -0
  109. data/lib/faker/default/tea.rb +41 -0
  110. data/lib/faker/default/team.rb +45 -0
  111. data/lib/faker/default/time.rb +84 -68
  112. data/lib/faker/default/twitter.rb +57 -47
  113. data/lib/faker/default/types.rb +90 -41
  114. data/lib/faker/default/university.rb +45 -0
  115. data/lib/faker/default/vehicle.rb +223 -60
  116. data/lib/faker/default/verb.rb +45 -0
  117. data/lib/faker/default/vulnerability_identifier.rb +23 -0
  118. data/lib/faker/default/world_cup.rb +52 -16
  119. data/lib/faker/fantasy/tolkien.rb +67 -0
  120. data/lib/faker/games/clash_of_clans.rb +48 -0
  121. data/lib/faker/games/control.rb +113 -0
  122. data/lib/faker/games/dnd.rb +178 -0
  123. data/lib/faker/games/dota.rb +61 -6
  124. data/lib/faker/games/elder_scrolls.rb +98 -0
  125. data/lib/faker/games/fallout.rb +37 -0
  126. data/lib/faker/games/final_fantasy_xiv.rb +73 -0
  127. data/lib/faker/games/game.rb +27 -0
  128. data/lib/faker/games/half_life.rb +27 -0
  129. data/lib/faker/games/heroes.rb +40 -0
  130. data/lib/faker/games/heroes_of_the_storm.rb +48 -1
  131. data/lib/faker/games/league_of_legends.rb +54 -0
  132. data/lib/faker/games/minecraft.rb +113 -0
  133. data/lib/faker/games/myst.rb +45 -0
  134. data/lib/faker/games/overwatch.rb +27 -0
  135. data/lib/faker/games/pokemon.rb +27 -0
  136. data/lib/faker/games/sonic_the_hedgehog.rb +27 -0
  137. data/lib/faker/games/street_fighter.rb +61 -0
  138. data/lib/faker/games/super_mario.rb +48 -0
  139. data/lib/faker/games/super_smash_bros.rb +18 -0
  140. data/lib/faker/games/tarkov.rb +205 -0
  141. data/lib/faker/games/touhou.rb +75 -0
  142. data/lib/faker/games/warhammer_fantasy.rb +74 -0
  143. data/lib/faker/games/witcher.rb +93 -0
  144. data/lib/faker/games/world_of_warcraft.rb +44 -1
  145. data/lib/faker/games/zelda.rb +37 -1
  146. data/lib/faker/japanese_media/conan.rb +48 -0
  147. data/lib/faker/japanese_media/cowboy_bebop.rb +61 -0
  148. data/lib/faker/japanese_media/doraemon.rb +48 -0
  149. data/lib/faker/japanese_media/dragon_ball.rb +35 -0
  150. data/lib/faker/japanese_media/fullmetal_alchemist_brotherhood.rb +48 -0
  151. data/lib/faker/japanese_media/kamen_rider.rb +102 -0
  152. data/lib/faker/japanese_media/naruto.rb +61 -0
  153. data/lib/faker/japanese_media/one_piece.rb +55 -1
  154. data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
  155. data/lib/faker/japanese_media/sword_art_online.rb +36 -0
  156. data/lib/faker/locations/australia.rb +47 -0
  157. data/lib/faker/movies/avatar.rb +49 -0
  158. data/lib/faker/movies/back_to_the_future.rb +28 -0
  159. data/lib/faker/movies/departed.rb +49 -0
  160. data/lib/faker/movies/ghostbusters.rb +28 -0
  161. data/lib/faker/movies/hackers.rb +48 -0
  162. data/lib/faker/movies/harry_potter.rb +54 -0
  163. data/lib/faker/movies/hitchhikers_guide_to_the_galaxy.rb +69 -0
  164. data/lib/faker/movies/hobbit.rb +41 -4
  165. data/lib/faker/movies/how_to_train_your_dragon.rb +48 -0
  166. data/lib/faker/movies/lebowski.rb +27 -0
  167. data/lib/faker/movies/lord_of_the_rings.rb +31 -3
  168. data/lib/faker/movies/movie.rb +22 -0
  169. data/lib/faker/movies/princess_bride.rb +19 -0
  170. data/lib/faker/movies/room.rb +63 -0
  171. data/lib/faker/movies/star_wars.rb +170 -11
  172. data/lib/faker/movies/tron.rb +161 -0
  173. data/lib/faker/movies/v_for_vendetta.rb +29 -0
  174. data/lib/faker/music/grateful_dead.rb +18 -0
  175. data/lib/faker/music/hiphop.rb +48 -0
  176. data/lib/faker/music/music.rb +102 -4
  177. data/lib/faker/music/opera.rb +273 -1
  178. data/lib/faker/music/pearl_jam.rb +50 -0
  179. data/lib/faker/music/phish.rb +36 -1
  180. data/lib/faker/music/prince.rb +64 -0
  181. data/lib/faker/music/rock_band.rb +21 -0
  182. data/lib/faker/music/rush.rb +37 -0
  183. data/lib/faker/music/show.rb +49 -0
  184. data/lib/faker/music/smashing_pumpkins.rb +64 -0
  185. data/lib/faker/music/umphreys_mcgee.rb +9 -0
  186. data/lib/faker/quotes/chiquito.rb +80 -0
  187. data/lib/faker/quotes/quote.rb +93 -1
  188. data/lib/faker/quotes/rajnikanth.rb +27 -0
  189. data/lib/faker/quotes/shakespeare.rb +70 -0
  190. data/lib/faker/religion/bible.rb +50 -0
  191. data/lib/faker/sports/basketball.rb +36 -0
  192. data/lib/faker/sports/chess.rb +90 -0
  193. data/lib/faker/sports/football.rb +45 -0
  194. data/lib/faker/sports/mountaineering.rb +22 -0
  195. data/lib/faker/sports/sport.rb +116 -0
  196. data/lib/faker/sports/volleyball.rb +74 -0
  197. data/lib/faker/travel/airport.rb +43 -0
  198. data/lib/faker/travel/train_station.rb +54 -0
  199. data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +22 -0
  200. data/lib/faker/tv_shows/archer.rb +51 -0
  201. data/lib/faker/tv_shows/big_bang_theory.rb +37 -0
  202. data/lib/faker/tv_shows/bojack_horseman.rb +28 -0
  203. data/lib/faker/tv_shows/breaking_bad.rb +18 -0
  204. data/lib/faker/tv_shows/brooklyn_nine_nine.rb +38 -0
  205. data/lib/faker/tv_shows/buffy.rb +60 -2
  206. data/lib/faker/tv_shows/community.rb +19 -0
  207. data/lib/faker/tv_shows/dr_who.rb +78 -2
  208. data/lib/faker/tv_shows/dumb_and_dumber.rb +28 -0
  209. data/lib/faker/tv_shows/family_guy.rb +28 -0
  210. data/lib/faker/tv_shows/final_space.rb +51 -0
  211. data/lib/faker/tv_shows/friends.rb +27 -0
  212. data/lib/faker/tv_shows/futurama.rb +65 -0
  213. data/lib/faker/tv_shows/game_of_thrones.rb +46 -0
  214. data/lib/faker/tv_shows/hey_arnold.rb +27 -0
  215. data/lib/faker/tv_shows/how_i_met_your_mother.rb +37 -0
  216. data/lib/faker/tv_shows/michael_scott.rb +10 -0
  217. data/lib/faker/tv_shows/new_girl.rb +19 -0
  218. data/lib/faker/tv_shows/parks_and_rec.rb +18 -0
  219. data/lib/faker/tv_shows/rick_and_morty.rb +28 -0
  220. data/lib/faker/tv_shows/ru_paul.rb +18 -0
  221. data/lib/faker/tv_shows/seinfeld.rb +28 -0
  222. data/lib/faker/tv_shows/silicon_valley.rb +75 -0
  223. data/lib/faker/tv_shows/simpsons.rb +42 -0
  224. data/lib/faker/tv_shows/south_park.rb +34 -0
  225. data/lib/faker/tv_shows/spongebob.rb +50 -0
  226. data/lib/faker/tv_shows/star_trek.rb +36 -0
  227. data/lib/faker/tv_shows/stargate.rb +28 -0
  228. data/lib/faker/tv_shows/stranger_things.rb +19 -0
  229. data/lib/faker/tv_shows/suits.rb +37 -0
  230. data/lib/faker/tv_shows/supernatural.rb +48 -0
  231. data/lib/faker/tv_shows/the_expanse.rb +36 -0
  232. data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +43 -2
  233. data/lib/faker/tv_shows/the_it_crowd.rb +37 -0
  234. data/lib/faker/tv_shows/the_office.rb +37 -0
  235. data/lib/faker/tv_shows/the_thick_of_it.rb +28 -0
  236. data/lib/faker/tv_shows/twin_peaks.rb +28 -0
  237. data/lib/faker/tv_shows/venture_bros.rb +38 -0
  238. data/lib/faker/version.rb +2 -2
  239. data/lib/faker.rb +58 -58
  240. data/lib/helpers/base58.rb +1 -1
  241. data/lib/helpers/char.rb +22 -27
  242. data/lib/helpers/positional_generator.rb +480 -0
  243. data/lib/helpers/unique_generator.rb +17 -13
  244. data/lib/locales/README.md +18 -2
  245. data/lib/locales/ar.yml +6 -1
  246. data/lib/locales/bg.yml +3 -3
  247. data/lib/locales/ca.yml +0 -8
  248. data/lib/locales/da-DK.yml +6 -4
  249. data/lib/locales/de-AT.yml +7 -6
  250. data/lib/locales/de-CH.yml +6028 -9
  251. data/lib/locales/de.yml +12 -6
  252. data/lib/locales/en/address.yml +8 -3
  253. data/lib/locales/en/adjective.yml +179 -0
  254. data/lib/locales/en/airport.yml +381 -0
  255. data/lib/locales/en/animal.yml +1 -1
  256. data/lib/locales/en/aqua_teen_hunger_force.yml +33 -1
  257. data/lib/locales/en/archer.yml +75 -0
  258. data/lib/locales/en/australia.yml +107 -0
  259. data/lib/locales/en/avatar.yml +31 -0
  260. data/lib/locales/en/bank.yml +1 -1
  261. data/lib/locales/en/barcode.yml +24 -0
  262. data/lib/locales/en/bible.yml +90 -0
  263. data/lib/locales/en/big_bang_theory.yml +38 -0
  264. data/lib/locales/en/bird.yml +1281 -0
  265. data/lib/locales/en/blood.yml +13 -0
  266. data/lib/locales/en/book.yml +487 -3
  267. data/lib/locales/en/brooklyn_nine_nine.yml +35 -0
  268. data/lib/locales/en/buffy.yml +1 -1
  269. data/lib/locales/en/camera.yml +611 -0
  270. data/lib/locales/en/cat.yml +1 -1
  271. data/lib/locales/en/chess.yml +103 -0
  272. data/lib/locales/en/chiquito.yml +64 -0
  273. data/lib/locales/en/clash_of_clan.yml +101 -0
  274. data/lib/locales/en/coffee.yml +1 -1
  275. data/lib/locales/en/color.yml +1 -1
  276. data/lib/locales/en/commerce.yml +17 -0
  277. data/lib/locales/en/community.yml +17 -17
  278. data/lib/locales/en/company.yml +3 -2
  279. data/lib/locales/en/computer.yml +55 -0
  280. data/lib/locales/en/conan.yml +171 -0
  281. data/lib/locales/en/control.yml +247 -0
  282. data/lib/locales/en/cowboy_bebop.yml +163 -0
  283. data/lib/locales/en/demographic.yml +218 -5
  284. data/lib/locales/en/departed.yml +50 -0
  285. data/lib/locales/en/device.yml +112 -4
  286. data/lib/locales/en/dnd.yml +636 -0
  287. data/lib/locales/en/doraemon.yml +286 -0
  288. data/lib/locales/en/dota.yml +651 -63
  289. data/lib/locales/en/dr_who.yml +1 -1
  290. data/lib/locales/en/dragon_ball.yml +243 -1
  291. data/lib/locales/en/driving_license.yml +181 -0
  292. data/lib/locales/en/drone.yml +95 -0
  293. data/lib/locales/en/dune.yml +270 -131
  294. data/lib/locales/en/educator.yml +75 -6
  295. data/lib/locales/en/elder_scrolls.yml +583 -9
  296. data/lib/locales/en/emotion.yml +480 -0
  297. data/lib/locales/en/fallout.yml +311 -133
  298. data/lib/locales/en/file.yml +9 -1
  299. data/lib/locales/en/final_fantasy_xiv.yml +754 -0
  300. data/lib/locales/en/final_space.yml +37 -0
  301. data/lib/locales/en/finance.yml +77 -1
  302. data/lib/locales/en/fma_brotherhood.yml +78 -0
  303. data/lib/locales/en/food.yml +1066 -10
  304. data/lib/locales/en/football.yml +3 -3
  305. data/lib/locales/en/fresh_prince_of_bel_air.yml +1 -1
  306. data/lib/locales/en/futurama.yml +344 -0
  307. data/lib/locales/en/game.yml +11 -0
  308. data/lib/locales/en/gender.yml +1 -0
  309. data/lib/locales/en/hackers.yml +53 -0
  310. data/lib/locales/en/half_life.yml +84 -3
  311. data/lib/locales/en/heroes.yml +408 -3
  312. data/lib/locales/en/heroes_of_the_storm.yml +131 -4
  313. data/lib/locales/en/hobby.yml +171 -0
  314. data/lib/locales/en/horse.yml +2 -2
  315. data/lib/locales/en/house.yml +1 -1
  316. data/lib/locales/en/how_to_train_your_dragon.yml +174 -0
  317. data/lib/locales/en/internet.yml +140 -3
  318. data/lib/locales/en/jack_handey.yml +54 -0
  319. data/lib/locales/en/kamen_rider.yml +452 -0
  320. data/lib/locales/en/kpop.yml +7 -7
  321. data/lib/locales/en/league_of_legends.yml +285 -6
  322. data/lib/locales/en/lebowski.yml +1 -1
  323. data/lib/locales/en/lovecraft.yml +76 -6
  324. data/lib/locales/en/military.yml +179 -5
  325. data/lib/locales/en/minecraft.yml +663 -0
  326. data/lib/locales/en/mitch_hedberg.yml +46 -0
  327. data/lib/locales/en/mountain.yml +171 -0
  328. data/lib/locales/en/mountaineering.yml +14 -0
  329. data/lib/locales/en/movie.yml +194 -2
  330. data/lib/locales/en/music.yml +461 -29
  331. data/lib/locales/en/myst.yml +87 -31
  332. data/lib/locales/en/name.yml +6 -5
  333. data/lib/locales/en/naruto.yml +230 -0
  334. data/lib/locales/en/one_piece.yml +2 -2
  335. data/lib/locales/en/opera.yml +169 -1
  336. data/lib/locales/en/overwatch.yml +2648 -37
  337. data/lib/locales/en/pearl_jam.yml +213 -0
  338. data/lib/locales/en/phish.yml +392 -1
  339. data/lib/locales/en/phone_number.yml +1 -1
  340. data/lib/locales/en/pokemon.yml +417 -4
  341. data/lib/locales/en/prince.yml +227 -0
  342. data/lib/locales/en/quote.yml +692 -163
  343. data/lib/locales/en/rajnikanth.yml +77 -0
  344. data/lib/locales/en/rock_band.yml +1 -0
  345. data/lib/locales/en/room.yml +68 -0
  346. data/lib/locales/en/rush.yml +32 -0
  347. data/lib/locales/en/science.yml +481 -3
  348. data/lib/locales/en/shakespeare.yml +23 -26
  349. data/lib/locales/en/show.yml +597 -0
  350. data/lib/locales/en/simpsons.yml +668 -0
  351. data/lib/locales/en/smashing_pumpkins.yml +382 -0
  352. data/lib/locales/en/source.yml +35 -0
  353. data/lib/locales/en/south_park.yml +360 -2
  354. data/lib/locales/en/space.yml +1 -1
  355. data/lib/locales/en/spongebob.yml +489 -0
  356. data/lib/locales/en/sport.yml +130 -0
  357. data/lib/locales/en/star_trek.yml +1 -1
  358. data/lib/locales/en/star_wars.yml +568 -220
  359. data/lib/locales/en/stranger_thing.yml +1 -1
  360. data/lib/locales/en/street_fighter.yml +1524 -0
  361. data/lib/locales/en/stripe.yml +3 -3
  362. data/lib/locales/en/studio_ghibli.yml +107 -0
  363. data/lib/locales/en/suits.yml +45 -0
  364. data/lib/locales/en/super_mario.yml +58 -0
  365. data/lib/locales/en/super_smash_bros.yml +23 -5
  366. data/lib/locales/en/supernatural.yml +141 -0
  367. data/lib/locales/en/tarkov.yml +593 -0
  368. data/lib/locales/en/tea.yml +172 -0
  369. data/lib/locales/en/the_kingkiller_chronicle.yml +56 -0
  370. data/lib/locales/en/the_office.yml +86 -0
  371. data/lib/locales/en/tolkien.yml +2453 -0
  372. data/lib/locales/en/touhou.yml +839 -0
  373. data/lib/locales/en/train_station.yml +280 -0
  374. data/lib/locales/en/tron.yml +227 -0
  375. data/lib/locales/en/vehicle.yml +2809 -75
  376. data/lib/locales/en/volleyball.yml +501 -0
  377. data/lib/locales/en/warhammer_fantasy.yml +582 -0
  378. data/lib/locales/en/witcher.yml +426 -7
  379. data/lib/locales/en/world_of_warcraft.yml +122 -4
  380. data/lib/locales/en/zelda.yml +962 -4
  381. data/lib/locales/en-AU.yml +50 -10
  382. data/lib/locales/en-CA.yml +5 -1
  383. data/lib/locales/en-GB.yml +3 -2
  384. data/lib/locales/en-IND.yml +2 -1
  385. data/lib/locales/en-MS.yml +3 -1
  386. data/lib/locales/en-NEP.yml +5 -2
  387. data/lib/locales/en-NG.yml +1 -0
  388. data/lib/locales/en-NZ.yml +135 -8
  389. data/lib/locales/en-PAK.yml +3 -1
  390. data/lib/locales/en-SG.yml +3 -1
  391. data/lib/locales/en-TH.yml +360 -0
  392. data/lib/locales/en-UG.yml +1 -0
  393. data/lib/locales/en-US.yml +38 -12
  394. data/lib/locales/en-ZA.yml +2 -2
  395. data/lib/locales/en-au-ocker.yml +4 -1
  396. data/lib/locales/en.yml +0 -3
  397. data/lib/locales/es-AR.yml +4601 -0
  398. data/lib/locales/es-MX.yml +4 -1
  399. data/lib/locales/es.yml +58 -2
  400. data/lib/locales/fa.yml +2 -0
  401. data/lib/locales/fi-FI.yml +4 -2
  402. data/lib/locales/fr/address.yml +20 -0
  403. data/lib/locales/fr/adjective.yml +266 -0
  404. data/lib/locales/fr/ancient.yml +141 -0
  405. data/lib/locales/fr/animal.yml +5 -0
  406. data/lib/locales/fr/appliance.yml +4 -0
  407. data/lib/locales/fr/book.yml +7 -0
  408. data/lib/locales/fr/color.yml +4 -0
  409. data/lib/locales/fr/company.yml +17 -0
  410. data/lib/locales/fr/compass.yml +23 -0
  411. data/lib/locales/fr/demographic.yml +4 -0
  412. data/lib/locales/fr/gender.yml +6 -0
  413. data/lib/locales/fr/internet.yml +5 -0
  414. data/lib/locales/fr/lorem.yml +5 -0
  415. data/lib/locales/fr/measurement.yml +7 -0
  416. data/lib/locales/fr/name.yml +22 -0
  417. data/lib/locales/fr/phone_number.yml +7 -0
  418. data/lib/locales/fr/pokemon.yml +7 -0
  419. data/lib/locales/fr-CA.yml +28 -11
  420. data/lib/locales/fr-CH.yml +3 -3
  421. data/lib/locales/fr.yml +1 -112
  422. data/lib/locales/hy.yml +3 -7
  423. data/lib/locales/id.yml +5 -2
  424. data/lib/locales/it.yml +3 -1
  425. data/lib/locales/ja/README.md +13 -0
  426. data/lib/locales/ja/address.yml +120539 -0
  427. data/lib/locales/ja/adjective.yml +148 -0
  428. data/lib/locales/ja/ancient.yml +4 -0
  429. data/lib/locales/ja/animal.yml +5 -0
  430. data/lib/locales/ja/bank.yml +4 -0
  431. data/lib/locales/ja/book.yml +7 -0
  432. data/lib/locales/ja/cat.yml +5 -0
  433. data/lib/locales/ja/coffee.yml +4 -0
  434. data/lib/locales/ja/color.yml +4 -0
  435. data/lib/locales/ja/commerce.yml +11 -0
  436. data/lib/locales/ja/company.yml +8 -0
  437. data/lib/locales/ja/dog.yml +6 -0
  438. data/lib/locales/ja/emotion.yml +51 -0
  439. data/lib/locales/ja/food.yml +4 -0
  440. data/lib/locales/ja/gender.yml +4 -0
  441. data/lib/locales/ja/lorem.yml +9 -0
  442. data/lib/locales/ja/name.yml +13 -0
  443. data/lib/locales/ja/naruto.yml +230 -0
  444. data/lib/locales/ja/overwatch.yml +5 -0
  445. data/lib/locales/ja/phone_number.yml +7 -0
  446. data/lib/locales/ja/pokemon.yml +7 -0
  447. data/lib/locales/ja/relationship.yml +10 -0
  448. data/lib/locales/ja/restaurant.yml +11 -0
  449. data/lib/locales/ja/space.yml +5 -0
  450. data/lib/locales/ja/sport.yml +130 -0
  451. data/lib/locales/ja/studio_ghibli.yml +112 -0
  452. data/lib/locales/ja/subscription.yml +8 -0
  453. data/lib/locales/ja/super_mario.yml +9 -0
  454. data/lib/locales/ja/super_smash_bros.yml +8 -0
  455. data/lib/locales/ja/touhou.yml +466 -0
  456. data/lib/locales/ja/university.yml +9 -0
  457. data/lib/locales/ja/zelda.yml +5 -0
  458. data/lib/locales/ko.yml +95 -2
  459. data/lib/locales/lt.yml +34 -0
  460. data/lib/locales/lv.yml +1 -1
  461. data/lib/locales/mi-NZ.yml +283 -0
  462. data/lib/locales/nb-NO.yml +5 -2
  463. data/lib/locales/nl.yml +1 -0
  464. data/lib/locales/pl.yml +2 -2
  465. data/lib/locales/pt-BR.yml +33 -4
  466. data/lib/locales/pt.yml +6 -4
  467. data/lib/locales/ru.yml +43 -1
  468. data/lib/locales/sk.yml +5 -2
  469. data/lib/locales/sv.yml +1 -0
  470. data/lib/locales/th.yml +380 -0
  471. data/lib/locales/tr.yml +1 -0
  472. data/lib/locales/uk.yml +10 -5
  473. data/lib/locales/vi.yml +1 -0
  474. data/lib/locales/zh-CN/bank.yml +17 -0
  475. data/lib/locales/zh-CN.yml +2 -1
  476. data/lib/locales/zh-TW.yml +2 -1
  477. metadata +201 -109
  478. data/lib/faker/default/fillmurray.rb +0 -30
  479. data/lib/faker/default/lorem_pixel.rb +0 -63
  480. data/lib/locales/en/hobbit.yml +0 -19
  481. data/lib/locales/en/lord_of_the_rings.yml +0 -6
  482. data/lib/locales/ja.yml +0 -98
@@ -6,162 +6,325 @@ module Faker
6
6
 
7
7
  MILEAGE_MIN = 10_000
8
8
  MILEAGE_MAX = 90_000
9
- VIN_LETTERS = 'ABCDEFGHJKLMNPRSTUVWXYZ'
10
- VIN_MAP = '0123456789X'
11
- VIN_WEIGHTS = '8765432X098765432'
12
- VIN_REGEX = /^[A-Z0-9]{3}[A-Z0-9]{5}[A-Z0-9]{1}[A-Z0-9]{1}[A-Z0-0]{1}[A-Z0-9]{1}\d{5}$/
9
+ VIN_KEYSPACE = %w[A B C D E F G H J K L M N P R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9].freeze
10
+ VIN_TRANSLITERATION = { A: 1, B: 2, C: 3, D: 4, E: 5, F: 6, G: 7, H: 8, J: 1, K: 2, L: 3, M: 4, N: 5, P: 7, R: 9, S: 2, T: 3, U: 4, V: 5, W: 6, X: 7, Y: 8, Z: 9 }.freeze
11
+ VIN_WEIGHT = [8, 7, 6, 5, 4, 3, 2, 10, 0, 9, 8, 7, 6, 5, 4, 3, 2].freeze
13
12
  SG_CHECKSUM_WEIGHTS = [3, 14, 2, 12, 2, 11, 1].freeze
14
13
  SG_CHECKSUM_CHARS = 'AYUSPLJGDBZXTRMKHEC'
15
14
 
16
15
  class << self
16
+ # Produces a random vehicle VIN number.
17
+ #
18
+ # @return [String]
19
+ #
20
+ # @example
21
+ # Faker::Vehicle.vin #=> "LLDWXZLG77VK2LUUF"
22
+ #
23
+ # @faker.version 1.6.4
17
24
  def vin
18
- regexify(VIN_REGEX)
25
+ generate(:string) do |g|
26
+ g.letter(name: :wmi, ranges: ['100'..'199', '400'..'499', '500'..'599', '700'..'799', '7A0'..'7F9'])
27
+ g.letter(name: :vds, length: 5, ranges: [VIN_KEYSPACE])
28
+ g.computed(name: :checksum, deps: %i[wmi vds model_year plant_code vis]) do |wmi, vds, model_year, plant_code, vis|
29
+ checksum = "#{wmi}#{vds}0#{model_year}#{plant_code}#{vis}".chars.each_with_index.map do |char, i|
30
+ value = (char =~ /\A\d\z/ ? char.to_i : VIN_TRANSLITERATION[char.to_sym])
31
+ value * VIN_WEIGHT[i]
32
+ end.inject(:+) % 11
33
+
34
+ if checksum == 10
35
+ 'X'
36
+ else
37
+ checksum
38
+ end
39
+ end
40
+ g.letter(name: :model_year, length: 1, ranges: [VIN_KEYSPACE - %w[U Z 0]])
41
+ g.letter(name: :plant_code, length: 1, ranges: [VIN_KEYSPACE])
42
+ g.int(name: :vis, length: 6)
43
+ end
19
44
  end
20
45
 
46
+ # Produces a random vehicle manufacturer.
47
+ #
48
+ # @return [String]
49
+ #
50
+ # @example
51
+ # Faker::Vehicle.manufacture #=> "Lamborghini"
52
+ #
53
+ # @faker.version 1.6.4
21
54
  def manufacture
22
55
  fetch('vehicle.manufacture')
23
56
  end
24
57
 
58
+ ##
59
+ # Produces a random vehicle make.
60
+ #
61
+ # @return [String]
62
+ #
63
+ # @example
64
+ # Faker::Vehicle.make #=> "Honda"
65
+ #
66
+ # @faker.version 1.6.4
25
67
  def make
26
68
  fetch('vehicle.makes')
27
69
  end
28
70
 
29
- def model(legacy_make_of_model = NOT_GIVEN, make_of_model: '')
30
- if legacy_make_of_model != NOT_GIVEN
31
- warn_with_uplevel 'Passing `make_of_model` with the 1st argument of `Vehicle.model` is deprecated. Use keyword argument like `Vehicle.model(make_of_model: ...)` instead.', uplevel: 1
32
- make_of_model = legacy_make_of_model
33
- end
34
-
71
+ ##
72
+ # Produces a random vehicle model.
73
+ #
74
+ # @param make_of_model [String] Specific valid vehicle make.
75
+ # @return [String]
76
+ #
77
+ # @example
78
+ # Faker::Vehicle.model #=> "A8"
79
+ # Faker::Vehicle.model(make_of_model: 'Toyota') #=> "Prius"
80
+ #
81
+ # @faker.version 1.6.4
82
+ def model(make_of_model: '')
35
83
  return fetch("vehicle.models_by_make.#{make}") if make_of_model.empty?
36
84
 
37
85
  fetch("vehicle.models_by_make.#{make_of_model}")
38
86
  end
39
87
 
88
+ ##
89
+ # Produces a random vehicle make and model.
90
+ #
91
+ # @return [String]
92
+ #
93
+ # @example
94
+ # Faker::Vehicle.make_and_model #=> "Dodge Charger"
95
+ #
96
+ # @faker.version 1.6.4
40
97
  def make_and_model
41
98
  m = make
42
99
 
43
100
  "#{m} #{model(make_of_model: m)}"
44
101
  end
45
102
 
103
+ ##
104
+ # Produces a random vehicle style.
105
+ #
106
+ # @return [String]
107
+ #
108
+ # @example
109
+ # Faker::Vehicle.style #=> "ESi"
110
+ #
111
+ # @faker.version 1.6.4
46
112
  def style
47
113
  fetch('vehicle.styles')
48
114
  end
49
115
 
116
+ ##
117
+ # Produces a random vehicle color.
118
+ #
119
+ # @return [String]
120
+ #
121
+ # @example
122
+ # Faker::Vehicle.color #=> "Red"
123
+ #
124
+ # @faker.version 1.6.4
50
125
  def color
51
126
  fetch('vehicle.colors')
52
127
  end
53
128
 
129
+ ##
130
+ # Produces a random vehicle transmission.
131
+ #
132
+ # @return [String]
133
+ #
134
+ # @example
135
+ # Faker::Vehicle.transmission #=> "Automanual"
136
+ #
137
+ # @faker.version 1.6.4
54
138
  def transmission
55
139
  fetch('vehicle.transmissions')
56
140
  end
57
141
 
142
+ ##
143
+ # Produces a random vehicle drive type.
144
+ #
145
+ # @return [String]
146
+ #
147
+ # @example
148
+ # Faker::Vehicle.drive_type #=> "4x2/2-wheel drive"
149
+ #
150
+ # @faker.version 1.6.4
58
151
  def drive_type
59
152
  fetch('vehicle.drive_types')
60
153
  end
61
154
 
155
+ ##
156
+ # Produces a random vehicle fuel type.
157
+ #
158
+ # @return [String]
159
+ #
160
+ # @example
161
+ # Faker::Vehicle.fuel_type #=> "Diesel"
162
+ #
163
+ # @faker.version 1.6.4
62
164
  def fuel_type
63
165
  fetch('vehicle.fuel_types')
64
166
  end
65
167
 
168
+ ##
169
+ # Produces a random car type.
170
+ #
171
+ # @return [String]
172
+ #
173
+ # @example
174
+ # Faker::Vehicle.car_type #=> "Sedan"
175
+ #
176
+ # @faker.version 1.6.4
66
177
  def car_type
67
178
  fetch('vehicle.car_types')
68
179
  end
69
180
 
181
+ ##
182
+ # Produces a random engine cylinder count.
183
+ #
184
+ # @return [String]
185
+ #
186
+ # @example
187
+ # Faker::Vehicle.engine_size #=> 6
188
+ # Faker::Vehicle.engine #=> 4
189
+ #
190
+ # @faker.version 1.6.4
70
191
  def engine
71
192
  "#{sample(fetch_all('vehicle.doors'))} #{fetch('vehicle.cylinder_engine')}"
72
193
  end
73
194
 
74
195
  alias engine_size engine
75
196
 
197
+ ##
198
+ # Produces a random list of car options.
199
+ #
200
+ # @return [Array<String>]
201
+ #
202
+ # @example
203
+ # Faker::Vehicle.car_options #=> ["DVD System", "MP3 (Single Disc)", "Tow Package", "CD (Multi Disc)", "Cassette Player", "Bucket Seats", "Cassette Player", "Leather Interior", "AM/FM Stereo", "Third Row Seats"]
204
+ #
205
+ # @faker.version 1.6.4
76
206
  def car_options
77
207
  Array.new(rand(5...10)) { fetch('vehicle.car_options') }
78
208
  end
79
209
 
210
+ ##
211
+ # Produces a random list of standard specs.
212
+ #
213
+ # @return [Array<String>]
214
+ #
215
+ # @example
216
+ # Faker::Vehicle.standard_specs #=> ["Full-size spare tire w/aluminum alloy wheel", "Back-up camera", "Carpeted cargo area", "Silver accent IP trim finisher -inc: silver shifter finisher", "Back-up camera", "Water-repellent windshield & front door glass", "Floor carpeting"]
217
+ #
218
+ # @faker.version 1.6.4
80
219
  def standard_specs
81
220
  Array.new(rand(5...10)) { fetch('vehicle.standard_specs') }
82
221
  end
83
222
 
223
+ ##
224
+ # Produces a random vehicle door count.
225
+ #
226
+ # @return [Integer]
227
+ #
228
+ # @example
229
+ # Faker::Vehicle.doors #=> 1
230
+ # Faker::Vehicle.door_count #=> 3
231
+ #
232
+ # @faker.version 1.6.4
84
233
  def doors
85
234
  sample(fetch_all('vehicle.doors'))
86
235
  end
87
236
  alias door_count doors
88
237
 
238
+ ##
239
+ # Produces a random car year between 1 and 15 years ago.
240
+ #
241
+ # @return [Integer]
242
+ #
243
+ # @example
244
+ # Faker::Vehicle.year #=> 2008
245
+ #
246
+ # @faker.version 1.6.4
89
247
  def year
90
248
  Faker::Time.backward(days: rand_in_range(365, 5475), period: :all, format: '%Y').to_i
91
249
  end
92
250
 
93
- def mileage(legacy_min = NOT_GIVEN, legacy_max = NOT_GIVEN, min: MILEAGE_MIN, max: MILEAGE_MAX)
94
- if legacy_min != NOT_GIVEN
95
- warn_with_uplevel 'Passing `min` with the 1st argument of `Vehicle.mileage` is deprecated. Use keyword argument like `Vehicle.mileage(min: ...)` instead.', uplevel: 1
96
- min = legacy_min
97
- end
98
- if legacy_max != NOT_GIVEN
99
- warn_with_uplevel 'Passing `max` with the 2nd argument of `Vehicle.mileage` is deprecated. Use keyword argument like `Vehicle.mileage(max: ...)` instead.', uplevel: 1
100
- max = legacy_max
101
- end
102
-
251
+ ##
252
+ # Produces a random mileage/kilometrage for a vehicle.
253
+ #
254
+ # @param min [Integer] Specific minimum limit for mileage generation.
255
+ # @param max [Integer] Specific maximum limit for mileage generation.
256
+ # @return [Integer]
257
+ #
258
+ # @example
259
+ # Faker::Vehicle.mileage #=> 26961
260
+ # Faker::Vehicle.mileage(min: 50_000) #=> 81557
261
+ # Faker::Vehicle.mileage(min: 50_000, max: 250_000) #=> 117503
262
+ # Faker::Vehicle.kilometrage #=> 35378
263
+ #
264
+ # @faker.version 1.6.4
265
+ def mileage(min: MILEAGE_MIN, max: MILEAGE_MAX)
103
266
  rand_in_range(min, max)
104
267
  end
105
268
 
106
269
  alias kilometrage mileage
107
270
 
108
- def license_plate(legacy_state_abreviation = NOT_GIVEN, state_abreviation: '')
109
- if legacy_state_abreviation != NOT_GIVEN
110
- warn_with_uplevel 'Passing `state_abreviation` with the 1st argument of `Vehicle.license_plate` is deprecated. Use keyword argument like `Vehicle.license_plate(state_abreviation: ...)` instead.', uplevel: 1
111
- state_abreviation = legacy_state_abreviation
112
- end
113
-
114
- return regexify(bothify(fetch('vehicle.license_plate'))) if state_abreviation.empty?
115
-
116
- key = 'vehicle.license_plate_by_state.' + state_abreviation
271
+ ##
272
+ # Produces a random license plate number.
273
+ #
274
+ # @param state_abbreviation [String] Two letter state abbreviation for license plate generation.
275
+ # @return [String]
276
+ #
277
+ # @example
278
+ # Faker::Vehicle.license_plate #=> "DEP-2483"
279
+ # Faker::Vehicle.license_plate(state_abbreviation: 'FL') #=> "977 UNU"
280
+ #
281
+ # @faker.version 1.6.4
282
+ def license_plate(state_abbreviation: '')
283
+ return regexify(bothify(fetch('vehicle.license_plate'))) if state_abbreviation.empty?
284
+
285
+ key = "vehicle.license_plate_by_state.#{state_abbreviation}"
117
286
  regexify(bothify(fetch(key)))
118
287
  end
119
288
 
289
+ ##
290
+ # Produces a random license plate number for Singapore.
291
+ #
292
+ # @return [String]
293
+ #
294
+ # @example
295
+ # Faker::Vehicle.singapore_license_plate #=> "SLV1854M"
296
+ #
297
+ # @faker.version 1.6.4
120
298
  def singapore_license_plate
121
299
  key = 'vehicle.license_plate'
122
300
  plate_number = regexify(bothify(fetch(key)))
123
301
  "#{plate_number}#{singapore_checksum(plate_number)}"
124
302
  end
125
303
 
126
- private
127
-
128
- def first_eight(number)
129
- return number[0...8] unless number.nil?
130
-
131
- regexify(VIN_REGEX)
132
- end
133
- alias last_eight first_eight
134
-
135
- def calculate_vin_check_digit(vin)
136
- sum = 0
137
-
138
- vin.each_char.with_index do |c, i|
139
- n = vin_char_to_number(c).to_i
140
- weight = VIN_WEIGHTS[i].to_i
141
- sum += weight * n
142
- end
143
-
144
- mod = sum % 11
145
- mod == 10 ? 'X' : mod
304
+ ##
305
+ # Produces a car version
306
+ #
307
+ # @return [String]
308
+ #
309
+ # @example
310
+ # Faker::Vehicle.version #=> "40 TFSI Premium"
311
+ #
312
+ # @faker.version next
313
+ def version
314
+ fetch('vehicle.version')
146
315
  end
147
316
 
148
- def vin_char_to_number(char)
149
- index = VIN_LETTERS.split('').index(char)
150
-
151
- return char.to_i if index.nil?
152
-
153
- VIN_MAP[index]
154
- end
317
+ private
155
318
 
156
319
  def singapore_checksum(plate_number)
157
- padded_alphabets = format('%3s', plate_number[/^[A-Z]+/]).tr(' ', '-').split('')
158
- padded_digits = format('%04d', plate_number[/\d+/]).split('').map(&:to_i)
320
+ padded_alphabets = format('%3s', plate_number[/^[A-Z]+/]).tr(' ', '-').chars
321
+ padded_digits = format('%04d', plate_number[/\d+/]).chars.map(&:to_i)
159
322
  sum = [*padded_alphabets, *padded_digits].each_with_index.reduce(0) do |memo, (char, i)|
160
323
  value = char.is_a?(Integer) ? char : char.ord - 64
161
324
  memo + (SG_CHECKSUM_WEIGHTS[i] * value)
162
325
  end
163
326
 
164
- SG_CHECKSUM_CHARS.split('')[sum % 19]
327
+ SG_CHECKSUM_CHARS.chars[sum % 19]
165
328
  end
166
329
  end
167
330
  end
@@ -3,22 +3,67 @@
3
3
  module Faker
4
4
  class Verb < Base
5
5
  class << self
6
+ ##
7
+ # Produces the base form of a random verb.
8
+ #
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::Verb.base #=> "hurt"
13
+ #
14
+ # @faker.version 1.9.0
6
15
  def base
7
16
  fetch('verbs.base')
8
17
  end
9
18
 
19
+ ##
20
+ # Produces a random verb in past tense.
21
+ #
22
+ # @return [String]
23
+ #
24
+ # @example
25
+ # Faker::Verb.past #=> "completed"
26
+ #
27
+ # @faker.version 1.9.0
10
28
  def past
11
29
  fetch('verbs.past')
12
30
  end
13
31
 
32
+ ##
33
+ # Produces a random verb in past participle.
34
+ #
35
+ # @return [String]
36
+ #
37
+ # @example
38
+ # Faker::Verb.past_participle #=> "digested"
39
+ #
40
+ # @faker.version 1.9.0
14
41
  def past_participle
15
42
  fetch('verbs.past_participle')
16
43
  end
17
44
 
45
+ ##
46
+ # Produces a random verb in simple present.
47
+ #
48
+ # @return [String]
49
+ #
50
+ # @example
51
+ # Faker::Verb.simple_present #=> "climbs"
52
+ #
53
+ # @faker.version 1.9.0
18
54
  def simple_present
19
55
  fetch('verbs.simple_present')
20
56
  end
21
57
 
58
+ ##
59
+ # Produces a random verb in the .ing form.
60
+ #
61
+ # @return [String]
62
+ #
63
+ # @example
64
+ # Faker::Verb.ing_form #=> "causing"
65
+ #
66
+ # @faker.version 1.9.0
22
67
  def ing_form
23
68
  fetch('verbs.ing_form')
24
69
  end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class VulnerabilityIdentifier < Base
5
+ class << self
6
+ ##
7
+ # Produces a Common Vulnerabilities and Exposures (CVE) identifier.
8
+ #
9
+ # @param year [Integer] The year-part of the CVE identifier (defaults to the current year)
10
+ # @return [String]
11
+ #
12
+ # @example
13
+ # Faker::VulnerabilityIdentifier.cve #=> "CVE-2021-1337"
14
+ # Faker::VulnerabilityIdentifier.cve(year: 1999) #=> "CVE-1999-0523"
15
+ #
16
+ # @faker.version next
17
+ def cve(year: ::Date.today.year)
18
+ index = rand_in_range(1, 99_999).to_s.rjust(4, '0')
19
+ "CVE-#{year}-#{index}"
20
+ end
21
+ end
22
+ end
23
+ end
@@ -3,37 +3,73 @@
3
3
  module Faker
4
4
  class WorldCup < Base
5
5
  class << self
6
+ ##
7
+ # Produces a national team name.
8
+ #
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::WorldCup.team #=> "Iran"
13
+ #
14
+ # @faker.version 1.9.0
6
15
  def team
7
16
  fetch('world_cup.teams')
8
17
  end
9
18
 
19
+ ##
20
+ # Produces a city name hosting the World Cup match.
21
+ #
22
+ # @return [String]
23
+ #
24
+ # @example
25
+ # Faker::WorldCup.city #=> "Moscow"
26
+ #
27
+ # @faker.version 2.13.0
10
28
  def city
11
29
  fetch('world_cup.cities')
12
30
  end
13
31
 
32
+ ##
33
+ # Produces the name of a stadium that has hosted a World Cup match.
34
+ #
35
+ # @return [String]
36
+ #
37
+ # @example
38
+ # Faker::WorldCup.stadium #=> "Rostov Arena"
39
+ #
40
+ # @faker.version 2.13.0
14
41
  def stadium
15
42
  fetch('world_cup.stadiums')
16
43
  end
17
44
 
18
- def group(legacy_group = NOT_GIVEN, group: 'group_A')
19
- if legacy_group != NOT_GIVEN
20
- warn_with_uplevel 'Passing `group` with the 1st argument of `WorldCup.group` is deprecated. Use keyword argument like `WorldCup.group(group: ...)` instead.', uplevel: 1
21
- group = legacy_group
22
- end
23
-
45
+ ##
46
+ # Produces a random national team name from a group.
47
+ #
48
+ # @return [String]
49
+ #
50
+ # @example
51
+ # Faker::WorldCup.group(group: 'group_B') #=> "Spain"
52
+ # @example
53
+ # Faker::WorldCup.group #=> "Russia"
54
+ #
55
+ # @faker.version 2.13.0
56
+ def group(group: 'group_A')
24
57
  fetch("world_cup.groups.#{group}")
25
58
  end
26
59
 
27
- def roster(legacy_country = NOT_GIVEN, legacy_type = NOT_GIVEN, country: 'Egypt', type: 'coach')
28
- if legacy_country != NOT_GIVEN
29
- warn_with_uplevel 'Passing `country` with the 1st argument of `WorldCup.roster` is deprecated. Use keyword argument like `WorldCup.roster(country: ...)` instead.', uplevel: 1
30
- country = legacy_country
31
- end
32
- if legacy_type != NOT_GIVEN
33
- warn_with_uplevel 'Passing `type` with the 2nd argument of `WorldCup.roster` is deprecated. Use keyword argument like `WorldCup.roster(type: ...)` instead.', uplevel: 1
34
- type = legacy_type
35
- end
36
-
60
+ ##
61
+ # Produces a random name from national team roster.
62
+ #
63
+ # @return [String]
64
+ #
65
+ # @example
66
+ # Faker::WorldCup.roster #=> "Hector Cuper"
67
+ #
68
+ # @example
69
+ # Faker::WorldCup.roster(country: 'Spain', type: 'forwards') #=> "Diego Costa"
70
+ #
71
+ # @faker.version 2.13.0
72
+ def roster(country: 'Egypt', type: 'coach')
37
73
  fetch("world_cup.rosters.#{country}.#{type}")
38
74
  end
39
75
  end
@@ -0,0 +1,67 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Fantasy
5
+ class Tolkien < Base
6
+ flexible :tolkien
7
+
8
+ class << self
9
+ ##
10
+ # Produces a character from Tolkien's legendarium
11
+ #
12
+ # @return [String]
13
+ #
14
+ # @example
15
+ # Faker::Fantasy::Tolkien.character
16
+ # #=> "Goldberry"
17
+ #
18
+ # @faker.version next
19
+ def character
20
+ fetch('tolkien.characters')
21
+ end
22
+
23
+ ##
24
+ # Produces a location from Tolkien's legendarium
25
+ #
26
+ # @return [String]
27
+ #
28
+ # @example
29
+ # Faker::Fantasy::Tolkien.location
30
+ # #=> "Helm's Deep"
31
+ #
32
+ # @faker.version next
33
+ def location
34
+ fetch('tolkien.locations')
35
+ end
36
+
37
+ ##
38
+ # Produces a race from Tolkien's legendarium
39
+ #
40
+ # @return [String]
41
+ #
42
+ # @example
43
+ # Faker::Fantasy::Tolkien.race
44
+ # #=> "Uruk-hai"
45
+ #
46
+ # @faker.version next
47
+ def race
48
+ fetch('tolkien.races')
49
+ end
50
+
51
+ ##
52
+ # Produces the name of a poem from Tolkien's legendarium
53
+ #
54
+ # @return [String]
55
+ #
56
+ # @example
57
+ # Faker::Fantasy::Tolkien.poem
58
+ # #=> "Chip the glasses and crack the plates"
59
+ #
60
+ # @faker.version next
61
+ def poem
62
+ fetch('tolkien.poems')
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Games
5
+ class ClashOfClans < Base
6
+ class << self
7
+ ##
8
+ # Produces the name of a troop from Clash of Clans.
9
+ #
10
+ # @return [String]
11
+ #
12
+ # @example
13
+ # Faker::Games::ClashOfClans.troop #=> "Barbarian"
14
+ #
15
+ # @faker.version next
16
+ def troop
17
+ fetch('games.clash_of_clans.troops')
18
+ end
19
+
20
+ ##
21
+ # Produces the name of a rank from Clash Of Clans.
22
+ #
23
+ # @return [String]
24
+ #
25
+ # @example
26
+ # Faker::Games::ClashOfClans.rank #=> "Legend"
27
+ #
28
+ # @faker.version next
29
+ def rank
30
+ fetch('games.clash_of_clans.ranks')
31
+ end
32
+
33
+ ##
34
+ # Produces the name of a defensive building from Clash Of Clans.
35
+ #
36
+ # @return [String]
37
+ #
38
+ # @example
39
+ # Faker::Games::ClashOfClans.defensive_building #=> "Cannon"
40
+ #
41
+ # @faker.version next
42
+ def defensive_building
43
+ fetch('games.clash_of_clans.defensive_buildings')
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end