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
@@ -5,35 +5,49 @@ module Faker
5
5
  flexible :invoice
6
6
 
7
7
  class << self
8
- # Generate random amount between values with 2 decimals
9
- def amount_between(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: 0, to: 0)
10
- warn_for_deprecated_arguments do |keywords|
11
- keywords << :from if legacy_from != NOT_GIVEN
12
- keywords << :to if legacy_to != NOT_GIVEN
13
- end
14
-
8
+ ##
9
+ # Produces a random amount between values with 2 decimals
10
+ #
11
+ # @param from [Integer] Specifies lower limit.
12
+ # @param to [Integer] Specifies upper limit.
13
+ # @return [Integer]
14
+ #
15
+ # @example
16
+ # Faker::Finance.amount_between #=> 0
17
+ # Faker::Finance.amount_between(0, 10) #=> 4.33
18
+ #
19
+ # @faker.version 1.9.0
20
+ def amount_between(from: 0, to: 0)
15
21
  Faker::Base.rand_in_range(from, to).round(2)
16
22
  end
17
23
 
18
- # International bank slip reference https://en.wikipedia.org/wiki/Creditor_Reference
19
- # ref is optional so that we can create unit tests
20
- def creditor_reference(legacy_ref = NOT_GIVEN, ref: '')
21
- warn_for_deprecated_arguments do |keywords|
22
- keywords << :ref if legacy_ref != NOT_GIVEN
23
- end
24
-
24
+ ##
25
+ # Produces a random valid reference accoring to the International bank slip reference https://en.wikipedia.org/wiki/Creditor_Reference
26
+ #
27
+ # @param ref [String] Specifies reference base.
28
+ # @return [String]
29
+ #
30
+ # @example
31
+ # Faker::Invoice.creditor_reference #=> "RF34118592570724925498"
32
+ #
33
+ # @faker.version 1.9.0
34
+ def creditor_reference(ref: '')
25
35
  ref = reference if ref.empty?
26
36
 
27
- 'RF' + iban_checksum('RF', ref) + ref
37
+ "RF#{iban_checksum('RF', ref)}#{ref}"
28
38
  end
29
39
 
30
- # Payment references have some rules in certain countries
31
- # ref is optional so that we can create unit tests
32
- def reference(legacy_ref = NOT_GIVEN, ref: '')
33
- warn_for_deprecated_arguments do |keywords|
34
- keywords << :ref if legacy_ref != NOT_GIVEN
35
- end
36
-
40
+ ##
41
+ # Produces a random valid reference.
42
+ #
43
+ # @param ref [String] Specifies reference base.
44
+ # @return [String]
45
+ #
46
+ # @example
47
+ # Faker::Invoice.reference #=> "45656646957845"
48
+ #
49
+ # @faker.version 1.9.0
50
+ def reference(ref: '')
37
51
  pattern = fetch('invoice.reference.pattern')
38
52
 
39
53
  ref = Base.regexify(/#{pattern}/) if ref.empty?
@@ -88,7 +102,7 @@ module Faker
88
102
  mod10_remainder(weighted_sum)
89
103
  end
90
104
 
91
- # Calculates weigthed sum
105
+ # Calculates weighted sum
92
106
  #
93
107
  # For example with 12345678, [1,2]
94
108
  # Ref.num. 1 2 3 4 5 6 7 8
@@ -3,37 +3,75 @@ module Faker
3
3
  require 'json'
4
4
 
5
5
  class << self
6
- def shallow_json(legacy_width = NOT_GIVEN, legacy_options = NOT_GIVEN, width: 3, options: { key: 'Name.first_name', value: 'Name.first_name' })
7
- warn_for_deprecated_arguments do |keywords|
8
- keywords << :width if legacy_width != NOT_GIVEN
9
- keywords << :options if legacy_options != NOT_GIVEN
10
- end
11
-
12
- options[:key] = 'Faker::' + options[:key]
13
- options[:value] = 'Faker::' + options[:value]
6
+ ##
7
+ # Produces a random simple JSON formatted string.
8
+ #
9
+ # @param width [Integer] Specifies the number of key-value pairs.
10
+ # @param options [Hash] Specifies a Faker gem class to use for keys and for values, respectably. options_hash = {key: Class.method, value: Class.method}
11
+ # @return [Hash{String => String}]
12
+ #
13
+ # @example
14
+ # Faker::Json.shallow_json(width: 3, options: { key: 'RockBand.name', value: 'Seinfeld.quote' }) # =>
15
+ # {"Parliament Funkadelic":"They're real, and they're spectacular.",
16
+ # "Fleetwood Mac":"I'm not a lesbian. I hate men, but I'm not a lesbian.",
17
+ # "The Roots":"It became very clear to me sitting out there today that every decision
18
+ # I've made in my entire life has been wrong. My life is the complete opposite of everything
19
+ # I want it to be. Every instinct I have, in every aspect of life, be it something to wear,
20
+ # something to eat - it's all been wrong."}
21
+ #
22
+ # @faker.version 1.9.2
23
+ def shallow_json(width: 3, options: { key: 'Name.first_name', value: 'Name.first_name' })
24
+ options[:key] = "Faker::#{options[:key]}"
25
+ options[:value] = "Faker::#{options[:value]}"
14
26
 
15
27
  hash = build_shallow_hash(width, options)
16
28
  JSON.generate(hash)
17
29
  end
18
30
 
19
- # rubocop:disable Metrics/ParameterLists
20
- def add_depth_to_json(legacy_json = NOT_GIVEN, legacy_width = NOT_GIVEN, legacy_options = NOT_GIVEN, json: shallow_json, width: 3, options: { key: 'Name.first_name', value: 'Name.first_name' })
21
- # rubocop:enable Metrics/ParameterLists
22
- warn_for_deprecated_arguments do |keywords|
23
- keywords << :json if legacy_json != NOT_GIVEN
24
- end
25
- warn_for_deprecated_arguments do |keywords|
26
- keywords << :width if legacy_width != NOT_GIVEN
27
- end
28
- warn_for_deprecated_arguments do |keywords|
29
- keywords << :options if legacy_options != NOT_GIVEN
30
- end
31
-
32
- options[:key] = 'Faker::' + options[:key]
33
- options[:value] = 'Faker::' + options[:value]
31
+ ##
32
+ # Produces a random nested JSON formatted string that can take JSON as an additional argument.
33
+ #
34
+ # @param json [Hash{String => String}] Specifies a Json.shallow_json and uses its keys as keys of the nested JSON.
35
+ # @param width [Integer] Specifies the number of nested key-value pairs.
36
+ # @param options [Hash] Specifies a Faker gem class to use for nested keys and for values, respectably. options_hash = {key: Class.method, value: Class.method}
37
+ # @return [Hash{String => String}]
38
+ #
39
+ # @example
40
+ # json = Faker::Json.shallow_json(width: 3, options: { key: 'Name.first_name', value: 'Name.last_name' })
41
+ # puts json # =>
42
+ # {"Alisha":"Olson","Everardo":"DuBuque","Bridgette":"Turner"}
43
+ #
44
+ # json2 = Faker::Json.add_depth_to_json(json: json, width: 2, options: { key: 'Name.first_name', value: 'Name.last_name' })
45
+ # puts json2 # =>
46
+ # {"Alisha":{"Daisy":"Trantow","Oda":"Haag"},
47
+ # "Everardo":{"Javier":"Marvin","Eliseo":"Schuppe"},
48
+ # "Bridgette":{"Jorge":"Kertzmann","Lelah":"MacGyver"}}
49
+ #
50
+ # json3 = Faker::Json.add_depth_to_json(json: json2, width: 4, options: { key: 'Name.first_name', value: 'Name.last_name' })
51
+ # puts json3 # =>
52
+ # {"Alisha":
53
+ # {"Daisy":
54
+ # {"Bulah":"Wunsch","Cristian":"Champlin","Lester":"Bartoletti","Greg":"Jacobson"},
55
+ # "Oda":
56
+ # {"Salvatore":"Kuhlman","Aubree":"Okuneva","Larry":"Schmitt","Velva":"Gibson"}},
57
+ # "Everardo":
58
+ # {"Javier":
59
+ # {"Eduardo":"Orn","Laila":"Kub","Thad":"Legros","Dion":"Wilderman"},
60
+ # "Eliseo":
61
+ # {"Olin":"Hilpert","Marisa":"Greenfelder","Karlee":"Schmitt","Judd":"Larkin"}},
62
+ # "Bridgette":
63
+ # {"Jorge":
64
+ # {"Eloy":"Pfeffer","Kody":"Hansen","Paxton":"Lubowitz","Abe":"Lesch"},
65
+ # "Lelah":
66
+ # {"Rick":"Wiza","Bonita":"Bayer","Gardner":"Auer","Felicity":"Abbott"}}}
67
+ #
68
+ # @faker.version 1.9.2
69
+ def add_depth_to_json(json: shallow_json, width: 3, options: { key: 'Name.first_name', value: 'Name.first_name' })
70
+ options[:key] = "Faker::#{options[:key]}"
71
+ options[:value] = "Faker::#{options[:value]}"
34
72
 
35
73
  hash = JSON.parse(json)
36
- hash.each do |key, _|
74
+ hash.each_key do |key|
37
75
  add_hash_to_bottom(hash, [key], width, options)
38
76
  end
39
77
  JSON.generate(hash)
@@ -55,7 +93,7 @@ module Faker
55
93
  def add_hash_to_bottom(hash, key_array, width, options)
56
94
  key_string = build_keys_from_array(key_array)
57
95
  if eval("hash#{key_string}").is_a?(::Hash)
58
- eval("hash#{key_string}").each do |key, _|
96
+ eval("hash#{key_string}").each_key do |key|
59
97
  key_array << key
60
98
  add_hash_to_bottom(hash, key_array, width, options)
61
99
  end
@@ -4,25 +4,59 @@ module Faker
4
4
  # Based on Perl's Text::Lorem
5
5
  class Lorem < Base
6
6
  class << self
7
- def word
8
- sample(translate('faker.lorem.words'))
7
+ ##
8
+ # Returs the random word
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::Lorem.word #=> "soluto"
13
+ # Faker::Lorem.word(exclude_words: 'error') #=> "nisi"
14
+ # Faker::Lorem.word(exclude_words: 'id, error') #=> "et"
15
+ # Faker::Lorem.word(exclude_words: ['id', 'error']) #=> "consequatur"
16
+ #
17
+ # @faker.version 2.1.3
18
+ def word(exclude_words: nil)
19
+ words(number: 1, exclude_words: exclude_words).first
9
20
  end
10
21
 
11
- def words(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 3, supplemental: false)
12
- warn_for_deprecated_arguments do |keywords|
13
- keywords << :number if legacy_number != NOT_GIVEN
14
- keywords << :supplemental if legacy_supplemental != NOT_GIVEN
15
- end
16
-
22
+ ##
23
+ # Generates random 3 words
24
+ #
25
+ # @param number [Integer] Number of words to be generated
26
+ # @param supplemental [Boolean] Whether to attach supplemental words at the end, default is false
27
+ #
28
+ # @return [Array] Array for words
29
+ #
30
+ # @example
31
+ # Faker::Lorem.words #=> ["hic", "quia", "nihil"]
32
+ # Faker::Lorem.words(number: 4) #=> ["est", "temporibus", "et", "quaerat"]
33
+ # Faker::Lorem.words(number: 4, supplemental: true) #=> ["nisi", "sit", "allatus", "consequatur"]
34
+ # Faker::Lorem.words(number: 4, supplemental: true, exclude_words: 'sit') #=> ["nisi", "allatus", "consequatur", "aut"]
35
+ #
36
+ # @faker.version 2.1.3
37
+ def words(number: 3, supplemental: false, exclude_words: nil)
17
38
  resolved_num = resolve(number)
18
39
  word_list = (
19
40
  translate('faker.lorem.words') +
20
41
  (supplemental ? translate('faker.lorem.supplemental') : [])
21
42
  )
43
+ if exclude_words
44
+ exclude_words = exclude_words.split(', ') if exclude_words.instance_of?(::String)
45
+ word_list -= exclude_words
46
+ end
22
47
  word_list *= ((resolved_num / word_list.length) + 1)
23
- shuffle(word_list)[0, resolved_num]
48
+ sample(word_list, resolved_num)
24
49
  end
25
50
 
51
+ ##
52
+ # Generates single character
53
+ #
54
+ # @return [String]
55
+ #
56
+ # @example
57
+ # Faker::Lorem.character #=> "e"
58
+ #
59
+ # @faker.version 2.1.3
26
60
  def character
27
61
  sample(Types::CHARACTERS)
28
62
  end
@@ -43,94 +77,162 @@ module Faker
43
77
  # Faker::Lorem.characters(number: 10, min_alpha: 4, min_numeric: 1) #=> "ang9cbhoa8"
44
78
  #
45
79
  # @faker.version 2.1.3
46
- def characters(legacy_number = NOT_GIVEN, number: 255, min_alpha: 0, min_numeric: 0)
47
- warn_for_deprecated_arguments do |keywords|
48
- keywords << :number if legacy_number != NOT_GIVEN
49
- end
50
-
80
+ def characters(number: 255, min_alpha: 0, min_numeric: 0)
51
81
  Alphanumeric.alphanumeric(number: number, min_alpha: min_alpha, min_numeric: min_numeric)
52
82
  end
53
83
 
84
+ ##
85
+ # Generates the emoji
86
+ #
87
+ # @return [String]
88
+ #
89
+ # @example
90
+ # Faker::Lorem.multibyte #=> "😀"
91
+ # Faker::Lorem.multibyte #=> "❤"
92
+ #
93
+ # @faker.version 2.1.3
54
94
  def multibyte
55
95
  sample(translate('faker.lorem.multibyte')).pack('C*').force_encoding('utf-8')
56
96
  end
57
97
 
58
- # rubocop:disable Metrics/ParameterLists
59
- def sentence(legacy_word_count = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, legacy_random_words_to_add = NOT_GIVEN, word_count: 4, supplemental: false, random_words_to_add: 0)
60
- # rubocop:enable Metrics/ParameterLists
61
- warn_for_deprecated_arguments do |keywords|
62
- keywords << :word_count if legacy_word_count != NOT_GIVEN
63
- keywords << :supplemental if legacy_supplemental != NOT_GIVEN
64
- keywords << :random_words_to_add if legacy_random_words_to_add != NOT_GIVEN
65
- end
66
-
67
- words(number: word_count + rand(random_words_to_add.to_i), supplemental: supplemental).join(locale_space).capitalize + locale_period
98
+ ##
99
+ # Generates sentence
100
+ #
101
+ # @param word_count [Integer] How many words should be there in a sentence, default to 4
102
+ # @param supplemental [Boolean] Add supplemental words, default to false
103
+ # @param random_words_to_add [Integer] Add any random words, default to 0
104
+ #
105
+ # @return [String]
106
+ #
107
+ # @example
108
+ # Faker::Lorem.sentence #=> "Magnam qui aut quidem."
109
+ # Faker::Lorem.sentence(word_count: 5) #=> "Voluptas rerum aut aliquam velit."
110
+ # Faker::Lorem.sentence(word_count: 5, supplemental: true) #=> "Aut viscus curtus votum iusto."
111
+ # Faker::Lorem.sentence(word_count: 5, supplemental: true, random_words_to_add:2) #=> "Crinis quo cruentus velit animi vomer."
112
+ #
113
+ # @faker.version 2.1.3
114
+ def sentence(word_count: 4, supplemental: false, random_words_to_add: 0, exclude_words: nil)
115
+ words(number: word_count + rand(random_words_to_add.to_i), supplemental: supplemental, exclude_words: exclude_words).join(locale_space).capitalize + locale_period
68
116
  end
69
117
 
70
- def sentences(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 3, supplemental: false)
71
- warn_for_deprecated_arguments do |keywords|
72
- keywords << :number if legacy_number != NOT_GIVEN
73
- keywords << :supplemental if legacy_supplemental != NOT_GIVEN
74
- end
75
-
76
- 1.upto(resolve(number)).collect { sentence(word_count: 3, supplemental: supplemental) }
118
+ ##
119
+ # Generates three sentences
120
+ #
121
+ # @param number [Integer] How many sentences to be generated, default to 3
122
+ # @param supplemental [Boolean] Should add supplemental words, defaults to false
123
+ #
124
+ # @return [Array] Returns array for sentences.
125
+ #
126
+ # @example
127
+ # Faker::Lorem.sentences #=> ["Possimus non tenetur.", "Nulla non excepturi.", "Quisquam rerum facilis."]
128
+ # Faker::Lorem.sentences(number: 2) #=> ["Nulla est natus.", "Perferendis autem cum."]
129
+ # Faker::Lorem.sentences(number: 2, supplemental: true) #=> ["Cito cena ad.", "Solvo animus allatus."]
130
+ #
131
+ # @faker.version 2.1.3
132
+ def sentences(number: 3, supplemental: false, exclude_words: nil)
133
+ 1.upto(resolve(number)).collect { sentence(word_count: 3, supplemental: supplemental, exclude_words: exclude_words) }
77
134
  end
78
135
 
79
- # rubocop:disable Metrics/ParameterLists
80
- def paragraph(legacy_sentence_count = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, legacy_random_sentences_to_add = NOT_GIVEN, sentence_count: 3, supplemental: false, random_sentences_to_add: 0)
81
- # rubocop:enable Metrics/ParameterLists
82
- warn_for_deprecated_arguments do |keywords|
83
- keywords << :sentence_count if legacy_sentence_count != NOT_GIVEN
84
- keywords << :supplemental if legacy_supplemental != NOT_GIVEN
85
- keywords << :random_sentences_to_add if legacy_random_sentences_to_add != NOT_GIVEN
86
- end
87
-
88
- sentences(number: resolve(sentence_count) + rand(random_sentences_to_add.to_i), supplemental: supplemental).join(locale_space)
136
+ ##
137
+ # Generates three sentence paragraph
138
+ #
139
+ # @param sentence_count [Integer] Number of sentences in the paragraph
140
+ # @param supplemental [Boolean]
141
+ # @param random_sentences_to_add [Integer]
142
+ #
143
+ # @return [String]
144
+ #
145
+ # @example
146
+ # Faker::Lorem.paragraph
147
+ # #=> "Impedit et est. Aliquid deleniti necessitatibus. Et aspernatur minima."
148
+ # Faker::Lorem.paragraph(sentence_count: 2)
149
+ # #=> "Rerum fugit vitae. Et atque autem."
150
+ # Faker::Lorem.paragraph(sentence_count: 2, supplemental: true)
151
+ # #=> "Terreo coerceo utor. Vester sunt cogito."
152
+ # Faker::Lorem.paragraph(sentence_count: 2, supplemental: true, random_sentences_to_add: 2)
153
+ # #=> "Texo tantillus tamisium. Tribuo amissio tamisium. Facere aut canis."
154
+ #
155
+ # @faker.version 2.1.3
156
+ def paragraph(sentence_count: 3, supplemental: false, random_sentences_to_add: 0, exclude_words: nil)
157
+ sentences(number: resolve(sentence_count) + rand(random_sentences_to_add.to_i), supplemental: supplemental, exclude_words: exclude_words).join(locale_space)
89
158
  end
90
159
 
91
- def paragraphs(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 3, supplemental: false)
92
- warn_for_deprecated_arguments do |keywords|
93
- keywords << :number if legacy_number != NOT_GIVEN
94
- end
95
- warn_for_deprecated_arguments do |keywords|
96
- keywords << :supplemental if legacy_supplemental != NOT_GIVEN
97
- end
98
-
99
- 1.upto(resolve(number)).collect { paragraph(sentence_count: 3, supplemental: supplemental) }
160
+ ##
161
+ # Generates three paragraphs
162
+ #
163
+ # @param number [Integer]
164
+ # @param supplemental [Boolean]
165
+ #
166
+ # @return [Array]
167
+ #
168
+ # @example
169
+ # Faker::Lorem.paragraphs
170
+ # Faker::Lorem.paragraphs(number:2)
171
+ # Faker::Lorem.paragraphs(number:2, supplemental: true)
172
+ #
173
+ # @faker.version 2.1.3
174
+ def paragraphs(number: 3, supplemental: false, exclude_words: nil)
175
+ 1.upto(resolve(number)).collect { paragraph(sentence_count: 3, supplemental: supplemental, exclude_words: exclude_words) }
100
176
  end
101
177
 
102
- def paragraph_by_chars(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 256, supplemental: false)
103
- warn_for_deprecated_arguments do |keywords|
104
- keywords << :number if legacy_number != NOT_GIVEN
105
- keywords << :supplemental if legacy_supplemental != NOT_GIVEN
106
- end
107
-
178
+ ##
179
+ # Generates paragraph with 256 characters
180
+ #
181
+ # @param number [Integer]
182
+ # @param supplemental [Boolean]
183
+ #
184
+ # @return [String]
185
+ #
186
+ # @example
187
+ # Faker::Lorem.paragraph_by_chars
188
+ # Faker::Lorem.paragraph_by_chars(number: 20) #=> "Sit modi alias. Imp."
189
+ # Faker::Lorem.paragraph_by_chars(number: 20, supplemental: true) #=> "Certus aveho admove."
190
+ #
191
+ # @faker.version 2.1.3
192
+ def paragraph_by_chars(number: 256, supplemental: false)
108
193
  paragraph = paragraph(sentence_count: 3, supplemental: supplemental)
109
194
 
110
- paragraph += ' ' + paragraph(sentence_count: 3, supplemental: supplemental) while paragraph.length < number
195
+ paragraph += " #{paragraph(sentence_count: 3, supplemental: supplemental)}" while paragraph.length < number
111
196
 
112
- paragraph[0...number - 1] + '.'
197
+ "#{paragraph[0...number - 1]}."
113
198
  end
114
199
 
115
- # rubocop:disable Metrics/ParameterLists
116
- def question(legacy_word_count = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, legacy_random_words_to_add = NOT_GIVEN, word_count: 4, supplemental: false, random_words_to_add: 0)
117
- # rubocop:enable Metrics/ParameterLists
118
- warn_for_deprecated_arguments do |keywords|
119
- keywords << :word_count if legacy_word_count != NOT_GIVEN
120
- keywords << :supplemental if legacy_supplemental != NOT_GIVEN
121
- keywords << :random_words_to_add if legacy_random_words_to_add != NOT_GIVEN
122
- end
123
-
124
- words(number: word_count + rand(random_words_to_add), supplemental: supplemental).join(' ').capitalize + locale_question_mark
200
+ ##
201
+ # Returns the question with 4 words
202
+ #
203
+ # @param word_count [Integer]
204
+ # @param supplemental [Boolean]
205
+ # @param random_words_to_add [Integer]
206
+ #
207
+ # @return [String]
208
+ #
209
+ # @example
210
+ # Faker::Lorem.question #=> "Natus deleniti sequi laudantium?"
211
+ # Faker::Lorem.question(word_count: 2) #=> "Quo ut?"
212
+ # Faker::Lorem.question(word_count: 2, supplemental: true) #=> "Terga consequatur?"
213
+ # Faker::Lorem.question(word_count: 2, supplemental: true, random_words_to_add: 2) #=> "Depulso uter ut?"
214
+ #
215
+ # @faker.version 2.1.3
216
+ def question(word_count: 4, supplemental: false, random_words_to_add: 0, exclude_words: nil)
217
+ words(number: word_count + rand(random_words_to_add), supplemental: supplemental, exclude_words: exclude_words).join(' ').capitalize + locale_question_mark
125
218
  end
126
219
 
127
- def questions(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 3, supplemental: false)
128
- warn_for_deprecated_arguments do |keywords|
129
- keywords << :number if legacy_number != NOT_GIVEN
130
- keywords << :supplemental if legacy_supplemental != NOT_GIVEN
131
- end
132
-
133
- 1.upto(resolve(number)).collect { question(word_count: 3, supplemental: supplemental) }
220
+ ##
221
+ # Generates array of three questions
222
+ #
223
+ # @param number [Integer]
224
+ # @param supplemental [Boolean]
225
+ #
226
+ # @return [Array]
227
+ #
228
+ # @example
229
+ # Faker::Lorem.questions #=> ["Amet culpa enim?", "Voluptatem deleniti numquam?", "Veniam non cum?"]
230
+ # Faker::Lorem.questions(number: 2) #=> ["Minus occaecati nobis?", "Veniam et alias?"]
231
+ # Faker::Lorem.questions(number: 2, supplemental: true) #=> ["Acceptus subito cetera?", "Aro sulum cubicularis?"]
232
+ #
233
+ # @faker.version 2.1.3
234
+ def questions(number: 3, supplemental: false, exclude_words: nil)
235
+ 1.upto(resolve(number)).collect { question(word_count: 3, supplemental: supplemental, exclude_words: exclude_words) }
134
236
  end
135
237
 
136
238
  private
@@ -5,56 +5,88 @@ module Faker
5
5
  class << self
6
6
  SUPPORTED_COLORIZATIONS = %w[red green blue].freeze
7
7
 
8
- # rubocop:disable Metrics/ParameterLists
9
- def image(legacy_size = NOT_GIVEN, legacy_search_terms = NOT_GIVEN, legacy_match_all = NOT_GIVEN, size: '300x300', search_terms: [], match_all: false)
10
- # rubocop:enable Metrics/ParameterLists
11
- warn_for_deprecated_arguments do |keywords|
12
- keywords << :size if legacy_size != NOT_GIVEN
13
- keywords << :search_terms if legacy_search_terms != NOT_GIVEN
14
- keywords << :match_all if legacy_match_all != NOT_GIVEN
15
- end
16
-
8
+ ##
9
+ # Produces a random image URL from loremflickr.com.
10
+ #
11
+ # @param size [String] Specifies the size of image to generate.
12
+ # @param search_terms [Array<String>] Adds search terms to the image URL.
13
+ # @param match_all [Boolean] Add "all" as part of the URL.
14
+ # @return [String]
15
+ #
16
+ # @example
17
+ # Faker::LoremFlickr.image #=> "https://loremflickr.com/300/300"
18
+ # Faker::LoremFlickr.image(size: "50x60") #=> "https://loremflickr.com/50/60"
19
+ # Faker::LoremFlickr.image(size: "50x60", search_terms: ['sports']) #=> "https://loremflickr.com/50/60/sports"
20
+ # Faker::LoremFlickr.image(size: "50x60", search_terms: ['sports', 'fitness']) #=> "https://loremflickr.com/50/60/sports,fitness"
21
+ # Faker::LoremFlickr.image(size: "50x60", search_terms: ['sports', 'fitness'], match_all: true) #=> "https://loremflickr.com/50/60/sports,fitness/all"
22
+ #
23
+ # @faker.version 1.9.0
24
+ def image(size: '300x300', search_terms: [], match_all: false)
17
25
  build_url(size, nil, search_terms, match_all)
18
26
  end
19
27
 
20
- # rubocop:disable Metrics/ParameterLists
21
- def grayscale_image(legacy_size = NOT_GIVEN, legacy_search_terms = NOT_GIVEN, legacy_match_all = NOT_GIVEN, size: '300x300', search_terms: ['all'], match_all: false)
22
- # rubocop:enable Metrics/ParameterLists
23
- warn_for_deprecated_arguments do |keywords|
24
- keywords << :size if legacy_size != NOT_GIVEN
25
- keywords << :search_terms if legacy_search_terms != NOT_GIVEN
26
- keywords << :match_all if legacy_match_all != NOT_GIVEN
27
- end
28
-
28
+ ##
29
+ # Produces a random grayscale image URL from loremflickr.com.
30
+ #
31
+ # @param size [String] Specifies the size of image to generate.
32
+ # @param search_terms [Array<String>] Adds search terms to the image URL.
33
+ # @param match_all [Boolean] Add "all" as part of the URL.
34
+ # @return [String]
35
+ #
36
+ # @example
37
+ # Faker::LoremFlickr.grayscale_image #=> "https://loremflickr.com/g/300/300/all"
38
+ # Faker::LoremFlickr.grayscale_image(size: "50x60") #=> "https://loremflickr.com/g/50/60/all"
39
+ # Faker::LoremFlickr.grayscale_image(size: "50x60", search_terms: ['sports']) #=> "https://loremflickr.com/g/50/60/sports"
40
+ # Faker::LoremFlickr.grayscale_image(size: "50x60", search_terms: ['sports', 'fitness']) #=> "https://loremflickr.com/50/60/g/sports,fitness"
41
+ # Faker::LoremFlickr.grayscale_image(size: "50x60", search_terms: ['sports', 'fitness'], match_all: true) #=> "https://loremflickr.com/g/50/60/sports,fitness/all"
42
+ #
43
+ # @faker.version 1.9.0
44
+ def grayscale_image(size: '300x300', search_terms: ['all'], match_all: false)
29
45
  raise ArgumentError, 'Search terms must be specified for grayscale images' unless search_terms.any?
30
46
 
31
47
  build_url(size, 'g', search_terms, match_all)
32
48
  end
33
49
 
34
- # rubocop:disable Metrics/ParameterLists
35
- def pixelated_image(legacy_size = NOT_GIVEN, legacy_search_terms = NOT_GIVEN, legacy_match_all = NOT_GIVEN, size: '300x300', search_terms: ['all'], match_all: false)
36
- # rubocop:enable Metrics/ParameterLists
37
- warn_for_deprecated_arguments do |keywords|
38
- keywords << :size if legacy_size != NOT_GIVEN
39
- keywords << :search_terms if legacy_search_terms != NOT_GIVEN
40
- keywords << :match_all if legacy_match_all != NOT_GIVEN
41
- end
42
-
50
+ ##
51
+ # Produces a random pixelated image URL from loremflickr.com.
52
+ #
53
+ # @param size [String] Specifies the size of image to generate.
54
+ # @param search_terms [Array<String>] Adds search terms to the image URL.
55
+ # @param match_all [Boolean] Add "all" as part of the URL.
56
+ # @return [String]
57
+ #
58
+ # @example
59
+ # Faker::LoremFlickr.pixelated_image #=> "https://loremflickr.com/p/300/300/all"
60
+ # Faker::LoremFlickr.pixelated_image(size: "50x60") #=> "https://loremflickr.com/p/50/60/all"
61
+ # Faker::LoremFlickr.pixelated_image(size: "50x60", search_terms: ['sports']) #=> "https://loremflickr.com/p/50/60/sports"
62
+ # Faker::LoremFlickr.pixelated_image(size: "50x60", search_terms: ['sports', 'fitness']) #=> "https://loremflickr.com/p/50/60/sports,fitness"
63
+ # Faker::LoremFlickr.pixelated_image(size: "50x60", search_terms: ['sports', 'fitness'], match_all: true) #=> "https://loremflickr.com/p/50/60/sports,fitness/all"
64
+ #
65
+ # @faker.version 1.9.0
66
+ def pixelated_image(size: '300x300', search_terms: ['all'], match_all: false)
43
67
  raise ArgumentError, 'Search terms must be specified for pixelated images' unless search_terms.any?
44
68
 
45
69
  build_url(size, 'p', search_terms, match_all)
46
70
  end
47
71
 
48
- # rubocop:disable Metrics/ParameterLists
49
- def colorized_image(legacy_size = NOT_GIVEN, legacy_color = NOT_GIVEN, legacy_search_terms = NOT_GIVEN, legacy_match_all = NOT_GIVEN, size: '300x300', color: 'red', search_terms: ['all'], match_all: false)
50
- # rubocop:enable Metrics/ParameterLists
51
- warn_for_deprecated_arguments do |keywords|
52
- keywords << :size if legacy_size != NOT_GIVEN
53
- keywords << :color if legacy_color != NOT_GIVEN
54
- keywords << :search_terms if legacy_search_terms != NOT_GIVEN
55
- keywords << :match_all if legacy_match_all != NOT_GIVEN
56
- end
57
-
72
+ ##
73
+ # Produces a random colorized image URL from loremflickr.com.
74
+ #
75
+ # @param size [String] Specifies the size of image to generate.
76
+ # @param color [String] Specifies the color of image to generate.
77
+ # @param search_terms [Array<String>] Adds search terms to the image URL.
78
+ # @param match_all [Boolean] Add "all" as part of the URL.
79
+ # @return [String]
80
+ #
81
+ # @example
82
+ # Faker::LoremFlickr.image #=> "https://loremflickr.com/red/300/300/all"
83
+ # Faker::LoremFlickr.image(size: "50x60", color: 'blue') #=> "https://loremflickr.com/blue/50/60/all"
84
+ # Faker::LoremFlickr.image(size: "50x60", color: 'blue', search_terms: ['sports']) #=> "https://loremflickr.com/blue/50/60/sports"
85
+ # Faker::LoremFlickr.image(size: "50x60", color: 'blue', search_terms: ['sports', 'fitness']) #=> "https://loremflickr.com/blue/50/60/sports,fitness"
86
+ # Faker::LoremFlickr.image(size: "50x60", color: 'blue', search_terms: ['sports', 'fitness'], match_all: true) #=> "https://loremflickr.com/blue/50/60/sports,fitness/all"
87
+ #
88
+ # @faker.version 1.9.0
89
+ def colorized_image(size: '300x300', color: 'red', search_terms: ['all'], match_all: false)
58
90
  raise ArgumentError, 'Search terms must be specified for colorized images' unless search_terms.any?
59
91
  raise ArgumentError, "Supported colorizations are #{SUPPORTED_COLORIZATIONS.join(', ')}" unless SUPPORTED_COLORIZATIONS.include?(color)
60
92