faker 2.11.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (380) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +810 -19
  3. data/History.md +5 -5
  4. data/README.md +232 -105
  5. data/lib/faker/blockchain/aeternity.rb +5 -5
  6. data/lib/faker/blockchain/bitcoin.rb +2 -2
  7. data/lib/faker/blockchain/ethereum.rb +1 -1
  8. data/lib/faker/blockchain/tezos.rb +31 -3
  9. data/lib/faker/books/dune.rb +17 -12
  10. data/lib/faker/books/lovecraft.rb +14 -41
  11. data/lib/faker/books/the_kingkiller_chronicle.rb +61 -0
  12. data/lib/faker/creature/bird.rb +203 -0
  13. data/lib/faker/default/address.rb +40 -30
  14. data/lib/faker/default/adjective.rb +35 -0
  15. data/lib/faker/default/alphanumeric.rb +2 -8
  16. data/lib/faker/default/app.rb +1 -10
  17. data/lib/faker/default/avatar.rb +1 -12
  18. data/lib/faker/default/bank.rb +104 -19
  19. data/lib/faker/default/barcode.rb +165 -0
  20. data/lib/faker/default/beer.rb +3 -3
  21. data/lib/faker/default/blood.rb +48 -0
  22. data/lib/faker/default/boolean.rb +1 -4
  23. data/lib/faker/default/business.rb +1 -1
  24. data/lib/faker/default/camera.rb +46 -0
  25. data/lib/faker/default/cannabis.rb +10 -0
  26. data/lib/faker/default/chile_rut.rb +54 -16
  27. data/lib/faker/default/chuck_norris.rb +1 -0
  28. data/lib/faker/default/code.rb +106 -38
  29. data/lib/faker/default/color.rb +77 -6
  30. data/lib/faker/default/commerce.rb +105 -28
  31. data/lib/faker/default/company.rb +116 -28
  32. data/lib/faker/default/compass.rb +135 -0
  33. data/lib/faker/default/computer.rb +63 -0
  34. data/lib/faker/default/construction.rb +54 -0
  35. data/lib/faker/default/cosmere.rb +90 -0
  36. data/lib/faker/default/crypto.rb +17 -4
  37. data/lib/faker/default/crypto_coin.rb +48 -15
  38. data/lib/faker/default/date.rb +21 -50
  39. data/lib/faker/default/demographic.rb +1 -5
  40. data/lib/faker/default/driving_licence.rb +66 -10
  41. data/lib/faker/default/drone.rb +332 -0
  42. data/lib/faker/default/educator.rb +13 -0
  43. data/lib/faker/default/emotion.rb +33 -0
  44. data/lib/faker/default/file.rb +53 -21
  45. data/lib/faker/default/finance.rb +75 -7
  46. data/lib/faker/default/food.rb +28 -2
  47. data/lib/faker/default/gender.rb +1 -1
  48. data/lib/faker/default/hipster.rb +106 -48
  49. data/lib/faker/default/hobby.rb +22 -0
  50. data/lib/faker/default/id_number.rb +230 -13
  51. data/lib/faker/default/internet.rb +390 -108
  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 +61 -23
  55. data/lib/faker/default/lorem.rb +171 -72
  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 +21 -6
  65. data/lib/faker/default/number.rb +38 -68
  66. data/lib/faker/default/omniauth.rb +111 -53
  67. data/lib/faker/default/phone_number.rb +89 -10
  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 +90 -0
  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/time.rb +4 -34
  80. data/lib/faker/default/twitter.rb +42 -23
  81. data/lib/faker/default/types.rb +88 -29
  82. data/lib/faker/default/university.rb +45 -0
  83. data/lib/faker/default/vehicle.rb +212 -54
  84. data/lib/faker/default/verb.rb +45 -0
  85. data/lib/faker/default/vulnerability_identifier.rb +23 -0
  86. data/lib/faker/default/world_cup.rb +6 -15
  87. data/lib/faker/fantasy/tolkien.rb +67 -0
  88. data/lib/faker/games/clash_of_clans.rb +48 -0
  89. data/lib/faker/games/control.rb +113 -0
  90. data/lib/faker/games/dnd.rb +178 -0
  91. data/lib/faker/games/dota.rb +14 -5
  92. data/lib/faker/games/elder_scrolls.rb +26 -0
  93. data/lib/faker/games/heroes.rb +13 -0
  94. data/lib/faker/games/heroes_of_the_storm.rb +16 -5
  95. data/lib/faker/games/minecraft.rb +113 -0
  96. data/lib/faker/games/myst.rb +1 -1
  97. data/lib/faker/games/street_fighter.rb +61 -0
  98. data/lib/faker/games/super_mario.rb +48 -0
  99. data/lib/faker/games/tarkov.rb +205 -0
  100. data/lib/faker/games/touhou.rb +75 -0
  101. data/lib/faker/games/warhammer_fantasy.rb +74 -0
  102. data/lib/faker/games/witcher.rb +39 -0
  103. data/lib/faker/games/world_of_warcraft.rb +26 -1
  104. data/lib/faker/japanese_media/conan.rb +48 -0
  105. data/lib/faker/japanese_media/cowboy_bebop.rb +61 -0
  106. data/lib/faker/japanese_media/doraemon.rb +48 -0
  107. data/lib/faker/japanese_media/dragon_ball.rb +26 -0
  108. data/lib/faker/japanese_media/fullmetal_alchemist_brotherhood.rb +48 -0
  109. data/lib/faker/japanese_media/kamen_rider.rb +102 -0
  110. data/lib/faker/japanese_media/naruto.rb +61 -0
  111. data/lib/faker/japanese_media/one_piece.rb +1 -1
  112. data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
  113. data/lib/faker/locations/australia.rb +47 -0
  114. data/lib/faker/movies/avatar.rb +49 -0
  115. data/lib/faker/movies/departed.rb +49 -0
  116. data/lib/faker/movies/hackers.rb +48 -0
  117. data/lib/faker/movies/hobbit.rb +4 -4
  118. data/lib/faker/movies/how_to_train_your_dragon.rb +48 -0
  119. data/lib/faker/movies/lord_of_the_rings.rb +3 -3
  120. data/lib/faker/movies/movie.rb +13 -0
  121. data/lib/faker/movies/room.rb +63 -0
  122. data/lib/faker/movies/star_wars.rb +75 -7
  123. data/lib/faker/movies/tron.rb +161 -0
  124. data/lib/faker/music/hiphop.rb +48 -0
  125. data/lib/faker/music/music.rb +12 -0
  126. data/lib/faker/music/opera.rb +237 -1
  127. data/lib/faker/music/pearl_jam.rb +50 -0
  128. data/lib/faker/music/phish.rb +27 -1
  129. data/lib/faker/music/prince.rb +64 -0
  130. data/lib/faker/music/rock_band.rb +12 -0
  131. data/lib/faker/music/rush.rb +37 -0
  132. data/lib/faker/music/show.rb +49 -0
  133. data/lib/faker/quotes/quote.rb +93 -1
  134. data/lib/faker/quotes/rajnikanth.rb +1 -0
  135. data/lib/faker/quotes/shakespeare.rb +70 -0
  136. data/lib/faker/religion/bible.rb +50 -0
  137. data/lib/faker/sports/chess.rb +90 -0
  138. data/lib/faker/sports/mountaineering.rb +22 -0
  139. data/lib/faker/sports/sport.rb +116 -0
  140. data/lib/faker/sports/volleyball.rb +74 -0
  141. data/lib/faker/travel/airport.rb +43 -0
  142. data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +13 -0
  143. data/lib/faker/tv_shows/big_bang_theory.rb +37 -0
  144. data/lib/faker/tv_shows/brooklyn_nine_nine.rb +38 -0
  145. data/lib/faker/tv_shows/buffy.rb +17 -4
  146. data/lib/faker/tv_shows/dr_who.rb +1 -1
  147. data/lib/faker/tv_shows/final_space.rb +51 -0
  148. data/lib/faker/tv_shows/futurama.rb +65 -0
  149. data/lib/faker/tv_shows/michael_scott.rb +0 -3
  150. data/lib/faker/tv_shows/simpsons.rb +14 -0
  151. data/lib/faker/tv_shows/spongebob.rb +50 -0
  152. data/lib/faker/tv_shows/suits.rb +37 -0
  153. data/lib/faker/tv_shows/supernatural.rb +48 -0
  154. data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +17 -4
  155. data/lib/faker/tv_shows/the_office.rb +37 -0
  156. data/lib/faker/version.rb +2 -2
  157. data/lib/faker.rb +40 -84
  158. data/lib/helpers/base58.rb +1 -1
  159. data/lib/helpers/char.rb +22 -27
  160. data/lib/helpers/unique_generator.rb +13 -13
  161. data/lib/locales/ar.yml +6 -1
  162. data/lib/locales/bg.yml +1 -1
  163. data/lib/locales/da-DK.yml +1 -1
  164. data/lib/locales/de-AT.yml +7 -6
  165. data/lib/locales/de-CH.yml +1697 -2
  166. data/lib/locales/de.yml +12 -6
  167. data/lib/locales/en/address.yml +4 -3
  168. data/lib/locales/en/adjective.yml +179 -0
  169. data/lib/locales/en/airport.yml +381 -0
  170. data/lib/locales/en/animal.yml +1 -1
  171. data/lib/locales/en/aqua_teen_hunger_force.yml +33 -1
  172. data/lib/locales/en/australia.yml +107 -0
  173. data/lib/locales/en/avatar.yml +31 -0
  174. data/lib/locales/en/bank.yml +1 -1
  175. data/lib/locales/en/barcode.yml +24 -0
  176. data/lib/locales/en/bible.yml +90 -0
  177. data/lib/locales/en/big_bang_theory.yml +38 -0
  178. data/lib/locales/en/bird.yml +1281 -0
  179. data/lib/locales/en/blood.yml +13 -0
  180. data/lib/locales/en/book.yml +487 -3
  181. data/lib/locales/en/brooklyn_nine_nine.yml +35 -0
  182. data/lib/locales/en/buffy.yml +1 -1
  183. data/lib/locales/en/camera.yml +611 -0
  184. data/lib/locales/en/cat.yml +1 -1
  185. data/lib/locales/en/chess.yml +103 -0
  186. data/lib/locales/en/clash_of_clan.yml +101 -0
  187. data/lib/locales/en/coffee.yml +1 -1
  188. data/lib/locales/en/commerce.yml +17 -0
  189. data/lib/locales/en/community.yml +17 -17
  190. data/lib/locales/en/company.yml +3 -2
  191. data/lib/locales/en/computer.yml +55 -0
  192. data/lib/locales/en/conan.yml +171 -0
  193. data/lib/locales/en/control.yml +247 -0
  194. data/lib/locales/en/cowboy_bebop.yml +163 -0
  195. data/lib/locales/en/demographic.yml +218 -5
  196. data/lib/locales/en/departed.yml +50 -0
  197. data/lib/locales/en/device.yml +112 -4
  198. data/lib/locales/en/dnd.yml +636 -0
  199. data/lib/locales/en/doraemon.yml +286 -0
  200. data/lib/locales/en/dota.yml +651 -63
  201. data/lib/locales/en/dragon_ball.yml +243 -1
  202. data/lib/locales/en/driving_license.yml +181 -0
  203. data/lib/locales/en/drone.yml +95 -0
  204. data/lib/locales/en/dune.yml +270 -131
  205. data/lib/locales/en/educator.yml +6 -0
  206. data/lib/locales/en/elder_scrolls.yml +583 -9
  207. data/lib/locales/en/emotion.yml +480 -0
  208. data/lib/locales/en/fallout.yml +311 -133
  209. data/lib/locales/en/file.yml +9 -1
  210. data/lib/locales/en/final_space.yml +37 -0
  211. data/lib/locales/en/finance.yml +77 -1
  212. data/lib/locales/en/fma_brotherhood.yml +78 -0
  213. data/lib/locales/en/food.yml +1066 -10
  214. data/lib/locales/en/football.yml +3 -3
  215. data/lib/locales/en/fresh_prince_of_bel_air.yml +1 -1
  216. data/lib/locales/en/futurama.yml +344 -0
  217. data/lib/locales/en/game.yml +11 -0
  218. data/lib/locales/en/hackers.yml +53 -0
  219. data/lib/locales/en/half_life.yml +84 -3
  220. data/lib/locales/en/heroes.yml +408 -3
  221. data/lib/locales/en/heroes_of_the_storm.yml +131 -4
  222. data/lib/locales/en/hobby.yml +171 -0
  223. data/lib/locales/en/horse.yml +2 -2
  224. data/lib/locales/en/house.yml +1 -1
  225. data/lib/locales/en/how_to_train_your_dragon.yml +174 -0
  226. data/lib/locales/en/internet.yml +140 -3
  227. data/lib/locales/en/jack_handey.yml +54 -0
  228. data/lib/locales/en/kamen_rider.yml +452 -0
  229. data/lib/locales/en/kpop.yml +7 -7
  230. data/lib/locales/en/league_of_legends.yml +285 -6
  231. data/lib/locales/en/lebowski.yml +1 -1
  232. data/lib/locales/en/lovecraft.yml +76 -6
  233. data/lib/locales/en/military.yml +179 -5
  234. data/lib/locales/en/minecraft.yml +663 -0
  235. data/lib/locales/en/mitch_hedberg.yml +46 -0
  236. data/lib/locales/en/mountain.yml +171 -0
  237. data/lib/locales/en/mountaineering.yml +14 -0
  238. data/lib/locales/en/movie.yml +194 -2
  239. data/lib/locales/en/music.yml +461 -29
  240. data/lib/locales/en/myst.yml +87 -31
  241. data/lib/locales/en/name.yml +5 -4
  242. data/lib/locales/en/naruto.yml +230 -0
  243. data/lib/locales/en/one_piece.yml +2 -2
  244. data/lib/locales/en/opera.yml +169 -1
  245. data/lib/locales/en/overwatch.yml +2648 -2622
  246. data/lib/locales/en/pearl_jam.yml +213 -0
  247. data/lib/locales/en/phish.yml +392 -1
  248. data/lib/locales/en/pokemon.yml +417 -4
  249. data/lib/locales/en/prince.yml +227 -0
  250. data/lib/locales/en/quote.yml +692 -163
  251. data/lib/locales/en/rock_band.yml +1 -0
  252. data/lib/locales/en/room.yml +68 -0
  253. data/lib/locales/en/rush.yml +32 -0
  254. data/lib/locales/en/science.yml +481 -3
  255. data/lib/locales/en/shakespeare.yml +21 -24
  256. data/lib/locales/en/show.yml +597 -0
  257. data/lib/locales/en/simpsons.yml +668 -0
  258. data/lib/locales/en/source.yml +35 -0
  259. data/lib/locales/en/space.yml +1 -1
  260. data/lib/locales/en/spongebob.yml +489 -0
  261. data/lib/locales/en/sport.yml +130 -0
  262. data/lib/locales/en/star_trek.yml +1 -1
  263. data/lib/locales/en/star_wars.yml +568 -220
  264. data/lib/locales/en/stranger_thing.yml +1 -1
  265. data/lib/locales/en/street_fighter.yml +1524 -0
  266. data/lib/locales/en/studio_ghibli.yml +107 -0
  267. data/lib/locales/en/suits.yml +45 -0
  268. data/lib/locales/en/super_mario.yml +58 -0
  269. data/lib/locales/en/super_smash_bros.yml +23 -6
  270. data/lib/locales/en/supernatural.yml +141 -0
  271. data/lib/locales/en/tarkov.yml +593 -0
  272. data/lib/locales/en/tea.yml +172 -0
  273. data/lib/locales/en/the_kingkiller_chronicle.yml +56 -0
  274. data/lib/locales/en/the_office.yml +86 -0
  275. data/lib/locales/en/tolkien.yml +2453 -0
  276. data/lib/locales/en/touhou.yml +839 -0
  277. data/lib/locales/en/tron.yml +227 -0
  278. data/lib/locales/en/vehicle.yml +2809 -75
  279. data/lib/locales/en/volleyball.yml +501 -0
  280. data/lib/locales/en/warhammer_fantasy.yml +582 -0
  281. data/lib/locales/en/witcher.yml +426 -7
  282. data/lib/locales/en/world_of_warcraft.yml +122 -4
  283. data/lib/locales/en/zelda.yml +962 -4
  284. data/lib/locales/en-AU.yml +50 -10
  285. data/lib/locales/en-CA.yml +4 -1
  286. data/lib/locales/en-GB.yml +3 -2
  287. data/lib/locales/en-IND.yml +2 -1
  288. data/lib/locales/en-MS.yml +3 -1
  289. data/lib/locales/en-NEP.yml +4 -1
  290. data/lib/locales/en-NG.yml +1 -0
  291. data/lib/locales/en-NZ.yml +4 -1
  292. data/lib/locales/en-PAK.yml +3 -1
  293. data/lib/locales/en-SG.yml +3 -1
  294. data/lib/locales/en-UG.yml +1 -0
  295. data/lib/locales/en-US.yml +38 -12
  296. data/lib/locales/en-ZA.yml +1 -1
  297. data/lib/locales/en-au-ocker.yml +4 -1
  298. data/lib/locales/en.yml +0 -3
  299. data/lib/locales/es-AR.yml +4601 -0
  300. data/lib/locales/es-MX.yml +1 -1
  301. data/lib/locales/es.yml +58 -2
  302. data/lib/locales/fi-FI.yml +4 -2
  303. data/lib/locales/fr/address.yml +20 -0
  304. data/lib/locales/fr/adjective.yml +266 -0
  305. data/lib/locales/fr/ancient.yml +141 -0
  306. data/lib/locales/fr/animal.yml +5 -0
  307. data/lib/locales/fr/appliance.yml +4 -0
  308. data/lib/locales/fr/book.yml +7 -0
  309. data/lib/locales/fr/color.yml +4 -0
  310. data/lib/locales/fr/company.yml +17 -0
  311. data/lib/locales/fr/compass.yml +23 -0
  312. data/lib/locales/fr/demographic.yml +4 -0
  313. data/lib/locales/fr/gender.yml +6 -0
  314. data/lib/locales/fr/internet.yml +5 -0
  315. data/lib/locales/fr/lorem.yml +5 -0
  316. data/lib/locales/fr/measurement.yml +7 -0
  317. data/lib/locales/fr/name.yml +21 -0
  318. data/lib/locales/fr/phone_number.yml +7 -0
  319. data/lib/locales/fr/pokemon.yml +7 -0
  320. data/lib/locales/fr-CA.yml +22 -6
  321. data/lib/locales/fr-CH.yml +3 -3
  322. data/lib/locales/fr.yml +1 -113
  323. data/lib/locales/hy.yml +2 -1
  324. data/lib/locales/id.yml +3 -1
  325. data/lib/locales/it.yml +3 -1
  326. data/lib/locales/ja/README.md +13 -0
  327. data/lib/locales/ja/address.yml +120539 -0
  328. data/lib/locales/ja/adjective.yml +148 -0
  329. data/lib/locales/ja/ancient.yml +4 -0
  330. data/lib/locales/ja/animal.yml +5 -0
  331. data/lib/locales/ja/bank.yml +4 -0
  332. data/lib/locales/ja/book.yml +7 -0
  333. data/lib/locales/ja/cat.yml +5 -0
  334. data/lib/locales/ja/coffee.yml +4 -0
  335. data/lib/locales/ja/color.yml +4 -0
  336. data/lib/locales/ja/commerce.yml +11 -0
  337. data/lib/locales/ja/company.yml +8 -0
  338. data/lib/locales/ja/dog.yml +6 -0
  339. data/lib/locales/ja/emotion.yml +51 -0
  340. data/lib/locales/ja/food.yml +4 -0
  341. data/lib/locales/ja/gender.yml +4 -0
  342. data/lib/locales/ja/lorem.yml +9 -0
  343. data/lib/locales/ja/name.yml +13 -0
  344. data/lib/locales/ja/naruto.yml +230 -0
  345. data/lib/locales/ja/overwatch.yml +5 -0
  346. data/lib/locales/ja/phone_number.yml +7 -0
  347. data/lib/locales/ja/pokemon.yml +7 -0
  348. data/lib/locales/ja/relationship.yml +10 -0
  349. data/lib/locales/ja/restaurant.yml +11 -0
  350. data/lib/locales/ja/space.yml +5 -0
  351. data/lib/locales/ja/studio_ghibli.yml +112 -0
  352. data/lib/locales/ja/subscription.yml +8 -0
  353. data/lib/locales/ja/super_mario.yml +9 -0
  354. data/lib/locales/ja/super_smash_bros.yml +8 -0
  355. data/lib/locales/ja/university.yml +9 -0
  356. data/lib/locales/ja/zelda.yml +5 -0
  357. data/lib/locales/ko.yml +95 -2
  358. data/lib/locales/lt.yml +34 -0
  359. data/lib/locales/lv.yml +1 -1
  360. data/lib/locales/mi-NZ.yml +283 -0
  361. data/lib/locales/nb-NO.yml +5 -2
  362. data/lib/locales/nl.yml +1 -0
  363. data/lib/locales/pl.yml +2 -2
  364. data/lib/locales/pt-BR.yml +10 -2
  365. data/lib/locales/pt.yml +4 -2
  366. data/lib/locales/ru.yml +43 -1
  367. data/lib/locales/sk.yml +5 -2
  368. data/lib/locales/sv.yml +1 -0
  369. data/lib/locales/th.yml +76 -76
  370. data/lib/locales/tr.yml +1 -0
  371. data/lib/locales/uk.yml +3 -0
  372. data/lib/locales/vi.yml +1 -0
  373. data/lib/locales/zh-CN.yml +1 -0
  374. data/lib/locales/zh-TW.yml +1 -0
  375. metadata +219 -29
  376. data/lib/faker/default/fillmurray.rb +0 -45
  377. data/lib/faker/default/lorem_pixel.rb +0 -47
  378. data/lib/locales/en/hobbit.yml +0 -19
  379. data/lib/locales/en/lord_of_the_rings.yml +0 -6
  380. data/lib/locales/ja.yml +0 -101
@@ -3,11 +3,18 @@
3
3
  module Faker
4
4
  class Stripe < Base
5
5
  class << self
6
- def valid_card(legacy_card_type = NOT_GIVEN, card_type: nil)
7
- warn_for_deprecated_arguments do |keywords|
8
- keywords << :card_type if legacy_card_type != NOT_GIVEN
9
- end
10
-
6
+ ##
7
+ # Produces a random valid card number.
8
+ #
9
+ # @param card_type [String] Specific valid card type.
10
+ # @return [String]
11
+ #
12
+ # @example
13
+ # Faker::Stripe.valid_card #=> "4242424242424242"
14
+ # Faker::Stripe.valid_card(card_type: "visa_debit") #=> "4000056655665556"
15
+ #
16
+ # @faker.version 1.9.0
17
+ def valid_card(card_type: nil)
11
18
  valid_cards = translate('faker.stripe.valid_cards').keys
12
19
 
13
20
  if card_type.nil?
@@ -19,14 +26,21 @@ module Faker
19
26
  end
20
27
  end
21
28
 
22
- fetch('stripe.valid_cards.' + card_type)
29
+ fetch("stripe.valid_cards.#{card_type}")
23
30
  end
24
31
 
25
- def valid_token(legacy_card_type = NOT_GIVEN, card_type: nil)
26
- warn_for_deprecated_arguments do |keywords|
27
- keywords << :card_type if legacy_card_type != NOT_GIVEN
28
- end
29
-
32
+ ##
33
+ # Produces a random valid Stripe token.
34
+ #
35
+ # @param card_type [String] Specific valid card type.
36
+ # @return [String]
37
+ #
38
+ # @example
39
+ # Faker::Stripe.valid_token #=> "tok_visa"
40
+ # Faker::Stripe.valid_token(card_type: "mc_debit") #=> "tok_mastercard_debit"
41
+ #
42
+ # @faker.version 1.9.0
43
+ def valid_token(card_type: nil)
30
44
  valid_tokens = translate('faker.stripe.valid_tokens').keys
31
45
 
32
46
  if card_type.nil?
@@ -38,14 +52,20 @@ module Faker
38
52
  end
39
53
  end
40
54
 
41
- fetch('stripe.valid_tokens.' + card_type)
55
+ fetch("stripe.valid_tokens.#{card_type}")
42
56
  end
43
57
 
44
- def invalid_card(legacy_card_error = NOT_GIVEN, card_error: nil)
45
- warn_for_deprecated_arguments do |keywords|
46
- keywords << :card_error if legacy_card_error != NOT_GIVEN
47
- end
48
-
58
+ ##
59
+ # Produces a random invalid card number.
60
+ #
61
+ # @return [String]
62
+ #
63
+ # @example
64
+ # Faker::Stripe.invalid_card #=> "4000000000000002"
65
+ # Faker::Stripe.invalid_card(card_error: "addressZipFail") #=> "4000000000000010"
66
+ #
67
+ # @faker.version 1.9.0
68
+ def invalid_card(card_error: nil)
49
69
  invalid_cards = translate('faker.stripe.invalid_cards').keys
50
70
 
51
71
  if card_error.nil?
@@ -57,23 +77,48 @@ module Faker
57
77
  end
58
78
  end
59
79
 
60
- fetch('stripe.invalid_cards.' + card_error)
80
+ fetch("stripe.invalid_cards.#{card_error}")
61
81
  end
62
82
 
83
+ ##
84
+ # Produces a random month in two digits format.
85
+ #
86
+ # @return [String]
87
+ #
88
+ # @example
89
+ # Faker::Stripe.month #=> "10"
90
+ #
91
+ # @faker.version 1.9.0
63
92
  def month
64
93
  format('%02d', rand_in_range(1, 12))
65
94
  end
66
95
 
96
+ ##
97
+ # Produces a random year that is always in the future.
98
+ #
99
+ # @return [String]
100
+ #
101
+ # @example
102
+ # Faker::Stripe.year #=> "2018" # This will always be a year in the future
103
+ #
104
+ # @faker.version 1.9.0
67
105
  def year
68
106
  start_year = ::Time.new.year + 1
69
107
  rand_in_range(start_year, start_year + 5).to_s
70
108
  end
71
109
 
72
- def ccv(legacy_card_type = NOT_GIVEN, card_type: nil)
73
- warn_for_deprecated_arguments do |keywords|
74
- keywords << :card_type if legacy_card_type != NOT_GIVEN
75
- end
76
-
110
+ ##
111
+ # Produces a random ccv number.
112
+ #
113
+ # @param card_type [String] Specific valid card type.
114
+ # @return [String]
115
+ #
116
+ # @example
117
+ # Faker::Stripe.ccv #=> "123"
118
+ # Faker::Stripe.ccv(card_type: "amex") #=> "1234"
119
+ #
120
+ # @faker.version 1.9.0
121
+ def ccv(card_type: nil)
77
122
  (card_type.to_s == 'amex' ? rand_in_range(1000, 9999) : rand_in_range(100, 999)).to_s
78
123
  end
79
124
  end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Tea < Base
5
+ flexible :tea
6
+
7
+ class << self
8
+ ##
9
+ # Produces a random variety or blend of tea.
10
+ #
11
+ # @param type [String, nil] the type of tea to query for (valid types: 'Black', 'Green', 'Oolong', 'White', and 'Herbal')
12
+ # @return [String] a variety of tea
13
+ #
14
+ # @example
15
+ # Faker::Tea.variety
16
+ # #=> "Earl Grey"
17
+ #
18
+ # @example
19
+ # Faker::Tea.variety(type: 'Green')
20
+ # #=> "Jasmine"
21
+ # @faker.version next
22
+ def variety(type: nil)
23
+ type ||= fetch('tea.type')
24
+ fetch "tea.variety.#{type.downcase}"
25
+ end
26
+
27
+ ##
28
+ # Produces a random type of tea.
29
+ #
30
+ # @return [String] a type of tea
31
+ #
32
+ # @example
33
+ # Faker::Tea.type
34
+ # #=> "Green"
35
+ # @faker.version next
36
+ def type
37
+ fetch 'tea.type'
38
+ end
39
+ end
40
+ end
41
+ end
@@ -13,9 +13,6 @@ module Faker
13
13
  }.freeze
14
14
 
15
15
  class << self
16
- # rubocop:disable Metrics/ParameterLists
17
- # rubocop:disable Style/AsciiComments
18
-
19
16
  ##
20
17
  # Produce a random time between two times.
21
18
  #
@@ -38,20 +35,13 @@ module Faker
38
35
  # Faker::Time.between(from: DateTime.now - 1, to: DateTime.now, format: :long) #=> "2018年10月16日(火) 10時48分27秒 -0500"
39
36
  #
40
37
  # @faker.version 1.5.0
41
- def between(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, legacy_format = NOT_GIVEN, from:, to:, format: nil)
42
- warn_for_deprecated_arguments do |keywords|
43
- keywords << :from if legacy_from != NOT_GIVEN
44
- keywords << :to if legacy_to != NOT_GIVEN
45
- keywords << :format if legacy_format != NOT_GIVEN
46
- end
47
-
38
+ def between(from:, to:, format: nil)
48
39
  from = get_time_object(from)
49
40
  to = get_time_object(to)
50
41
 
51
42
  time = Faker::Base.rand_in_range(from, to)
52
43
  time_with_format(time, format)
53
44
  end
54
- # rubocop:enable Style/AsciiComments
55
45
 
56
46
  ##
57
47
  # Produce a random time between two dates.
@@ -81,14 +71,7 @@ module Faker
81
71
  # #=> "Fri, 19 Oct 2018 15:17:46 -0500"
82
72
  #
83
73
  # @faker.version 1.0.0
84
- def between_dates(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, legacy_period = NOT_GIVEN, legacy_format = NOT_GIVEN, from:, to:, period: :all, format: nil)
85
- warn_for_deprecated_arguments do |keywords|
86
- keywords << :from if legacy_from != NOT_GIVEN
87
- keywords << :to if legacy_to != NOT_GIVEN
88
- keywords << :period if legacy_period != NOT_GIVEN
89
- keywords << :format if legacy_format != NOT_GIVEN
90
- end
91
-
74
+ def between_dates(from:, to:, period: :all, format: nil)
92
75
  date = Faker::Date.between(from: from, to: to)
93
76
  time = date_with_random_time(date, period)
94
77
  time_with_format(time, format)
@@ -109,13 +92,7 @@ module Faker
109
92
  # #=> "October 21, 2018 20:47"
110
93
  #
111
94
  # @faker.version 1.5.0
112
- def forward(legacy_days = NOT_GIVEN, legacy_period = NOT_GIVEN, legacy_format = NOT_GIVEN, days: 365, period: :all, format: nil)
113
- warn_for_deprecated_arguments do |keywords|
114
- keywords << :days if legacy_days != NOT_GIVEN
115
- keywords << :period if legacy_period != NOT_GIVEN
116
- keywords << :format if legacy_format != NOT_GIVEN
117
- end
118
-
95
+ def forward(days: 365, period: :all, format: nil)
119
96
  time_with_format(date_with_random_time(Faker::Date.forward(days: days), period), format)
120
97
  end
121
98
 
@@ -134,16 +111,9 @@ module Faker
134
111
  # #=> "14 Oct 07:44"
135
112
  #
136
113
  # @faker.version 1.5.0
137
- def backward(legacy_days = NOT_GIVEN, legacy_period = NOT_GIVEN, legacy_format = NOT_GIVEN, days: 365, period: :all, format: nil)
138
- warn_for_deprecated_arguments do |keywords|
139
- keywords << :days if legacy_days != NOT_GIVEN
140
- keywords << :period if legacy_period != NOT_GIVEN
141
- keywords << :format if legacy_format != NOT_GIVEN
142
- end
143
-
114
+ def backward(days: 365, period: :all, format: nil)
144
115
  time_with_format(date_with_random_time(Faker::Date.backward(days: days), period), format)
145
116
  end
146
- # rubocop:enable Metrics/ParameterLists
147
117
 
148
118
  private
149
119
 
@@ -3,14 +3,22 @@
3
3
  module Faker
4
4
  class Twitter < Base
5
5
  class << self
6
- def user(legacy_include_status = NOT_GIVEN, legacy_include_email = NOT_GIVEN, include_status: true, include_email: false)
7
- warn_for_deprecated_arguments do |keywords|
8
- keywords << :include_status if legacy_include_status != NOT_GIVEN
9
- keywords << :include_email if legacy_include_email != NOT_GIVEN
10
- end
11
-
6
+ ##
7
+ # Produces a random Twitter user.
8
+ #
9
+ # @param include_status [Boolean] Include or exclude user status details
10
+ # @param include_email [Boolean] Include or exclude user email details
11
+ # @return [Hash]
12
+ #
13
+ # @example
14
+ # Faker::Twitter.user #=> {:id=>8821452687517076614, :name=>"Lincoln Paucek", :screen_name=>"cody"...
15
+ # Faker::Twitter.user(include_status: false) # Just get a user object with no embed status
16
+ # Faker::Twitter.user(include_email: true) # Simulate an authenticated user with the email permission
17
+ #
18
+ # @faker.version 1.7.3
19
+ def user(include_status: true, include_email: false)
12
20
  user_id = id
13
- background_image_url = Faker::LoremPixel.image(size: '600x400') # TODO: Make the dimensions change
21
+ background_image_url = Faker::LoremFlickr.image(size: '600x400')
14
22
  profile_image_url = Faker::Avatar.image(slug: user_id, size: '48x48')
15
23
  user = {
16
24
  id: user_id,
@@ -38,7 +46,7 @@ module Faker
38
46
  profile_background_image_url_https: background_image_url,
39
47
  profile_background_image_url: background_image_url.sub('https://', 'http://'),
40
48
  profile_background_tile: Faker::Boolean.boolean(true_ratio: 0.1),
41
- profile_banner_url: Faker::LoremPixel.image(size: '1500x500'),
49
+ profile_banner_url: Faker::LoremFlickr.image(size: '1500x500'),
42
50
  profile_image_url_https: profile_image_url,
43
51
  profile_image_url: profile_image_url.sub('https://', 'http://'),
44
52
  profile_link_color: Faker::Color.hex_color,
@@ -55,16 +63,24 @@ module Faker
55
63
  verified: Faker::Boolean.boolean(true_ratio: 0.1)
56
64
  }
57
65
  user[:status] = Faker::Twitter.status(include_user: false) if include_status
58
- user[:email] = Faker::Internet.safe_email if include_email
66
+ user[:email] = Faker::Internet.email if include_email
59
67
  user
60
68
  end
61
69
 
62
- def status(legacy_include_user = NOT_GIVEN, legacy_include_photo = NOT_GIVEN, include_user: true, include_photo: false)
63
- warn_for_deprecated_arguments do |keywords|
64
- keywords << :include_user if legacy_include_user != NOT_GIVEN
65
- keywords << :include_photo if legacy_include_photo != NOT_GIVEN
66
- end
67
-
70
+ ##
71
+ # Produces a random Twitter user.
72
+ #
73
+ # @param include_user [Boolean] Include or exclude user details
74
+ # @param include_photo [Boolean] Include or exclude user photo
75
+ # @return [Hash]
76
+ #
77
+ # @example
78
+ # Faker::Twitter.status #=> {:id=>8821452687517076614, :text=>"Ea et laboriosam vel non."...
79
+ # Faker::Twitter.status(include_user: false) # Just get a status object with no embed user
80
+ # Faker::Twitter.status(include_photo: true) # Includes entities for an attached image
81
+ #
82
+ # @faker.version 1.7.3
83
+ def status(include_user: true, include_photo: false)
68
84
  status_id = id
69
85
  status = {
70
86
  id: status_id,
@@ -97,6 +113,15 @@ module Faker
97
113
  status
98
114
  end
99
115
 
116
+ ##
117
+ # Produces a random screen name.
118
+ #
119
+ # @return [String]
120
+ #
121
+ # @example
122
+ # Faker::Twitter.screen_name #=> "audreanne_hackett"
123
+ #
124
+ # @faker.version 1.7.3
100
125
  def screen_name
101
126
  Faker::Internet.username(specifier: nil, separators: ['_'])[0...20]
102
127
  end
@@ -126,11 +151,7 @@ module Faker
126
151
  }
127
152
  end
128
153
 
129
- def status_entities(legacy_include_photo = NOT_GIVEN, include_photo: false)
130
- warn_for_deprecated_arguments do |keywords|
131
- keywords << :include_photo if legacy_include_photo != NOT_GIVEN
132
- end
133
-
154
+ def status_entities(include_photo: false)
134
155
  entities = {
135
156
  hashtags: [],
136
157
  symbols: [],
@@ -142,9 +163,7 @@ module Faker
142
163
  end
143
164
 
144
165
  def photo_entity
145
- # TODO: Dynamic image sizes
146
- # TODO: Return accurate indices
147
- media_url = Faker::LoremPixel.image(size: '1064x600')
166
+ media_url = Faker::LoremFlickr.image(size: '1064x600')
148
167
  media_id = id
149
168
  {
150
169
  id: media_id,
@@ -7,11 +7,16 @@ module Faker
7
7
  COMPLEX_TYPES = %i[hash array].freeze
8
8
 
9
9
  class << self
10
- def rb_string(legacy_words = NOT_GIVEN, words: 1)
11
- warn_for_deprecated_arguments do |keywords|
12
- keywords << :words if legacy_words != NOT_GIVEN
13
- end
14
-
10
+ ##
11
+ # Produces a random String created from word (Faker::Lorem.word)
12
+ #
13
+ # @return [String]
14
+ #
15
+ # @example
16
+ # Faker::Types.rb_string #=> "foobar"
17
+ #
18
+ # @faker.version 1.8.6
19
+ def rb_string(words: 1)
15
20
  resolved_num = resolve(words)
16
21
  word_list =
17
22
  translate('faker.lorem.words')
@@ -20,45 +25,81 @@ module Faker
20
25
  shuffle(word_list)[0, resolved_num].join(' ')
21
26
  end
22
27
 
28
+ ##
29
+ # Produces a random character from the a-z, 0-9 ranges.
30
+ #
31
+ # @return [String]
32
+ #
33
+ # @example
34
+ # Faker::Types.character #=> "n"
35
+ #
36
+ # @faker.version 1.8.6
23
37
  def character
24
38
  sample(CHARACTERS)
25
39
  end
26
40
 
27
- def rb_integer(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: 0, to: 100)
28
- warn_for_deprecated_arguments do |keywords|
29
- keywords << :from if legacy_from != NOT_GIVEN
30
- keywords << :to if legacy_to != NOT_GIVEN
31
- end
32
-
41
+ ##
42
+ # Produces a random integer.
43
+ #
44
+ # @return [Integer]
45
+ #
46
+ # @example
47
+ # Faker::Types.rb_integer #=> 1
48
+ #
49
+ # @faker.version 1.8.6
50
+ def rb_integer(from: 0, to: 100)
33
51
  rand(from..to).to_i
34
52
  end
35
53
 
36
- def rb_hash(legacy_number = NOT_GIVEN, legacy_type = NOT_GIVEN, number: 1, type: random_type)
37
- warn_for_deprecated_arguments do |keywords|
38
- keywords << :number if legacy_number != NOT_GIVEN
39
- keywords << :type if legacy_type != NOT_GIVEN
40
- end
41
-
54
+ ##
55
+ # Produces a random hash with random keys and values.
56
+ #
57
+ # @param number [Integer] Specifies the number of key-value pairs.
58
+ # @return [Hash]
59
+ #
60
+ # @example
61
+ # Faker::Types.rb_hash #=> {name: "bob"}
62
+ # Faker::Types.rb_hash(number: 1) #=> {name: "bob"}
63
+ # Faker::Types.rb_hash(number: 2) #=> {name: "bob", last: "marley"}
64
+ #
65
+ # @faker.version 1.8.6
66
+ def rb_hash(number: 1, type: -> { random_type })
42
67
  {}.tap do |hsh|
43
68
  Lorem.words(number: number * 2).uniq.first(number).each do |s|
44
- hsh.merge!(s.to_sym => type)
69
+ value = type.is_a?(Proc) ? type.call : type
70
+ hsh.merge!(s.to_sym => value)
45
71
  end
46
72
  end
47
73
  end
48
74
 
49
- def complex_rb_hash(legacy_number = NOT_GIVEN, number: 1)
50
- warn_for_deprecated_arguments do |keywords|
51
- keywords << :number if legacy_number != NOT_GIVEN
52
- end
53
-
54
- rb_hash(number: number, type: random_complex_type)
75
+ ##
76
+ # Produces a random complex hash with random keys and values where the values may include other hashes and arrays.
77
+ #
78
+ # @param number [Integer] Specifies the number of key-value pairs.
79
+ # @return [Hash]
80
+ #
81
+ # @example
82
+ # Faker::Types.complex_rb_hash #=> {user: {first: "bob", last: "marley"}}
83
+ # Faker::Types.complex_rb_hash(number: 1) #=> {user: {first: "bob", last: "marley"}}
84
+ # Faker::Types.complex_rb_hash(number: 2) #=> {user: {first: "bob", last: "marley"}, son: ["damien", "marley"]}
85
+ #
86
+ # @faker.version 1.8.6
87
+ def complex_rb_hash(number: 1)
88
+ rb_hash(number: number, type: -> { random_complex_type })
55
89
  end
56
90
 
57
- def rb_array(legacy_len = NOT_GIVEN, len: 1)
58
- warn_for_deprecated_arguments do |keywords|
59
- keywords << :len if legacy_len != NOT_GIVEN
60
- end
61
-
91
+ ##
92
+ # Produces a random array.
93
+ #
94
+ # @param len [Integer] Specifies the number of elements in the array.
95
+ # @return [Array]
96
+ #
97
+ # @example
98
+ # Faker::Types.rb_array #=> ["a"]
99
+ # Faker::Types.rb_array(len: 4) #=> ["a", 1, 2, "bob"]
100
+ #
101
+ # @faker.version 1.8.6
102
+ def rb_array(len: 1)
62
103
  [].tap do |ar|
63
104
  len.times do
64
105
  ar.push random_type
@@ -66,6 +107,15 @@ module Faker
66
107
  end
67
108
  end
68
109
 
110
+ ##
111
+ # Produces a random type that's either a String or an Integer.
112
+ #
113
+ # @return [String, Integer]
114
+ #
115
+ # @example
116
+ # Faker::Types.random_type #=> 1 or "a" or "bob"
117
+ #
118
+ # @faker.version 1.8.6
69
119
  def random_type
70
120
  type_to_use = SIMPLE_TYPES[rand(0..SIMPLE_TYPES.length - 1)]
71
121
  case type_to_use
@@ -76,6 +126,15 @@ module Faker
76
126
  end
77
127
  end
78
128
 
129
+ ##
130
+ # Produces a random complex type that's either a String, an Integer, an array or a hash.
131
+ #
132
+ # @return [String, Integer]
133
+ #
134
+ # @example
135
+ # Faker::Types.random_complex_type #=> 1 or "a" or "bob" or {foo: "bar"}
136
+ #
137
+ # @faker.version 1.8.6
79
138
  def random_complex_type
80
139
  types = SIMPLE_TYPES + COMPLEX_TYPES
81
140
  type_to_use = types[rand(0..types.length - 1)]
@@ -5,22 +5,67 @@ module Faker
5
5
  flexible :university
6
6
 
7
7
  class << self
8
+ ##
9
+ # Produces a random university name.
10
+ #
11
+ # @return [String]
12
+ #
13
+ # @example
14
+ # Faker::University.name #=> "Eastern Mississippi Academy"
15
+ #
16
+ # @faker.version 1.5.0
8
17
  def name
9
18
  parse('university.name')
10
19
  end
11
20
 
21
+ ##
22
+ # Produces a random university prefix.
23
+ #
24
+ # @return [String]
25
+ #
26
+ # @example
27
+ # Faker::University.prefix #=> "Western"
28
+ #
29
+ # @faker.version 1.5.0
12
30
  def prefix
13
31
  fetch('university.prefix')
14
32
  end
15
33
 
34
+ ##
35
+ # Produces a random university suffix.
36
+ #
37
+ # @return [String]
38
+ #
39
+ # @example
40
+ # Faker::University.suffix #=> "Academy"
41
+ #
42
+ # @faker.version 1.5.0
16
43
  def suffix
17
44
  fetch('university.suffix')
18
45
  end
19
46
 
47
+ ##
48
+ # Produces a random greek organization.
49
+ #
50
+ # @return [String]
51
+ #
52
+ # @example
53
+ # Faker::University.greek_organization #=> "BEX"
54
+ #
55
+ # @faker.version 1.5.0
20
56
  def greek_organization
21
57
  Array.new(3) { |_| sample(greek_alphabet) }.join
22
58
  end
23
59
 
60
+ ##
61
+ # Produces a greek alphabet.
62
+ #
63
+ # @return [Array]
64
+ #
65
+ # @example
66
+ # Faker::University.greek_alphabet #=> ["Α", "B", "Γ", "Δ", ...]
67
+ #
68
+ # @faker.version 1.5.0
24
69
  def greek_alphabet
25
70
  %w[Α B Γ Δ E Z H Θ I K Λ M N Ξ
26
71
  O Π P Σ T Y Φ X Ψ Ω]