faker 2.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 (383) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +1282 -0
  3. data/History.md +176 -0
  4. data/License.txt +20 -0
  5. data/README.md +364 -0
  6. data/bin/faker +5 -0
  7. data/lib/faker.rb +308 -0
  8. data/lib/faker/blockchain/bitcoin.rb +34 -0
  9. data/lib/faker/blockchain/ethereum.rb +16 -0
  10. data/lib/faker/blockchain/tezos.rb +51 -0
  11. data/lib/faker/books/book.rb +25 -0
  12. data/lib/faker/books/culture_series.rb +34 -0
  13. data/lib/faker/books/dune.rb +66 -0
  14. data/lib/faker/books/lovecraft.rb +104 -0
  15. data/lib/faker/creature/animal.rb +13 -0
  16. data/lib/faker/creature/cat.rb +23 -0
  17. data/lib/faker/creature/dog.rb +43 -0
  18. data/lib/faker/creature/horse.rb +19 -0
  19. data/lib/faker/default/address.rb +123 -0
  20. data/lib/faker/default/alphanumeric.rb +56 -0
  21. data/lib/faker/default/ancient.rb +23 -0
  22. data/lib/faker/default/app.rb +31 -0
  23. data/lib/faker/default/appliance.rb +15 -0
  24. data/lib/faker/default/artist.rb +11 -0
  25. data/lib/faker/default/avatar.rb +28 -0
  26. data/lib/faker/default/bank.rb +108 -0
  27. data/lib/faker/default/beer.rb +41 -0
  28. data/lib/faker/default/boolean.rb +15 -0
  29. data/lib/faker/default/bossa_nova.rb +15 -0
  30. data/lib/faker/default/business.rb +23 -0
  31. data/lib/faker/default/cannabis.rb +45 -0
  32. data/lib/faker/default/chile_rut.rb +54 -0
  33. data/lib/faker/default/chuck_norris.rb +14 -0
  34. data/lib/faker/default/code.rb +201 -0
  35. data/lib/faker/default/coffee.rb +37 -0
  36. data/lib/faker/default/coin.rb +15 -0
  37. data/lib/faker/default/color.rb +32 -0
  38. data/lib/faker/default/commerce.rb +80 -0
  39. data/lib/faker/default/company.rb +264 -0
  40. data/lib/faker/default/compass.rb +67 -0
  41. data/lib/faker/default/construction.rb +29 -0
  42. data/lib/faker/default/cosmere.rb +48 -0
  43. data/lib/faker/default/crypto.rb +21 -0
  44. data/lib/faker/default/crypto_coin.rb +49 -0
  45. data/lib/faker/default/currency.rb +19 -0
  46. data/lib/faker/default/date.rb +101 -0
  47. data/lib/faker/default/dc_comics.rb +25 -0
  48. data/lib/faker/default/demographic.rb +41 -0
  49. data/lib/faker/default/dessert.rb +21 -0
  50. data/lib/faker/default/device.rb +31 -0
  51. data/lib/faker/default/driving_licence.rb +65 -0
  52. data/lib/faker/default/educator.rb +35 -0
  53. data/lib/faker/default/electrical_components.rb +21 -0
  54. data/lib/faker/default/esport.rb +27 -0
  55. data/lib/faker/default/file.rb +49 -0
  56. data/lib/faker/default/fillmurray.rb +23 -0
  57. data/lib/faker/default/finance.rb +44 -0
  58. data/lib/faker/default/food.rb +49 -0
  59. data/lib/faker/default/funny_name.rb +45 -0
  60. data/lib/faker/default/gender.rb +15 -0
  61. data/lib/faker/default/greek_philosophers.rb +15 -0
  62. data/lib/faker/default/hacker.rb +45 -0
  63. data/lib/faker/default/hipster.rb +97 -0
  64. data/lib/faker/default/house.rb +15 -0
  65. data/lib/faker/default/id_number.rb +164 -0
  66. data/lib/faker/default/industry_segments.rb +25 -0
  67. data/lib/faker/default/internet.rb +283 -0
  68. data/lib/faker/default/invoice.rb +109 -0
  69. data/lib/faker/default/job.rb +25 -0
  70. data/lib/faker/default/json.rb +87 -0
  71. data/lib/faker/default/kpop.rb +31 -0
  72. data/lib/faker/default/lorem.rb +150 -0
  73. data/lib/faker/default/lorem_flickr.rb +78 -0
  74. data/lib/faker/default/lorem_pixel.rb +47 -0
  75. data/lib/faker/default/markdown.rb +84 -0
  76. data/lib/faker/default/marketing.rb +13 -0
  77. data/lib/faker/default/measurement.rb +116 -0
  78. data/lib/faker/default/military.rb +27 -0
  79. data/lib/faker/default/name.rb +58 -0
  80. data/lib/faker/default/nation.rb +33 -0
  81. data/lib/faker/default/nato_phonetic_alphabet.rb +11 -0
  82. data/lib/faker/default/nhs.rb +38 -0
  83. data/lib/faker/default/number.rb +150 -0
  84. data/lib/faker/default/omniauth.rb +371 -0
  85. data/lib/faker/default/phone_number.rb +54 -0
  86. data/lib/faker/default/placeholdit.rb +41 -0
  87. data/lib/faker/default/programming_language.rb +15 -0
  88. data/lib/faker/default/relationship.rb +46 -0
  89. data/lib/faker/default/restaurant.rb +11 -0
  90. data/lib/faker/default/science.rb +19 -0
  91. data/lib/faker/default/slack_emoji.rb +43 -0
  92. data/lib/faker/default/source.rb +35 -0
  93. data/lib/faker/default/south_africa.rb +51 -0
  94. data/lib/faker/default/space.rb +64 -0
  95. data/lib/faker/default/string.rb +49 -0
  96. data/lib/faker/default/stripe.rb +81 -0
  97. data/lib/faker/default/subscription.rb +25 -0
  98. data/lib/faker/default/superhero.rb +27 -0
  99. data/lib/faker/default/team.rb +29 -0
  100. data/lib/faker/default/time.rb +102 -0
  101. data/lib/faker/default/twitter.rb +188 -0
  102. data/lib/faker/default/types.rb +101 -0
  103. data/lib/faker/default/university.rb +30 -0
  104. data/lib/faker/default/vehicle.rb +162 -0
  105. data/lib/faker/default/verb.rb +27 -0
  106. data/lib/faker/default/world_cup.rb +36 -0
  107. data/lib/faker/games/dota.rb +33 -0
  108. data/lib/faker/games/elder_scrolls.rb +41 -0
  109. data/lib/faker/games/fallout.rb +25 -0
  110. data/lib/faker/games/game.rb +21 -0
  111. data/lib/faker/games/half_life.rb +21 -0
  112. data/lib/faker/games/heroes.rb +21 -0
  113. data/lib/faker/games/heroes_of_the_storm.rb +25 -0
  114. data/lib/faker/games/league_of_legends.rb +33 -0
  115. data/lib/faker/games/myst.rb +29 -0
  116. data/lib/faker/games/overwatch.rb +21 -0
  117. data/lib/faker/games/pokemon.rb +21 -0
  118. data/lib/faker/games/sonic_the_hedgehog.rb +21 -0
  119. data/lib/faker/games/super_smash_bros.rb +17 -0
  120. data/lib/faker/games/witcher.rb +33 -0
  121. data/lib/faker/games/world_of_warcraft.rb +17 -0
  122. data/lib/faker/games/zelda.rb +26 -0
  123. data/lib/faker/japanese_media/dragon_ball.rb +13 -0
  124. data/lib/faker/japanese_media/one_piece.rb +33 -0
  125. data/lib/faker/japanese_media/sword_art_online.rb +25 -0
  126. data/lib/faker/movies/back_to_the_future.rb +21 -0
  127. data/lib/faker/movies/ghostbusters.rb +21 -0
  128. data/lib/faker/movies/harry_potter.rb +33 -0
  129. data/lib/faker/movies/hitchhikers_guide_to_the_galaxy.rb +37 -0
  130. data/lib/faker/movies/hobbit.rb +25 -0
  131. data/lib/faker/movies/lebowski.rb +21 -0
  132. data/lib/faker/movies/lord_of_the_rings.rb +21 -0
  133. data/lib/faker/movies/movie.rb +11 -0
  134. data/lib/faker/movies/princess_bride.rb +17 -0
  135. data/lib/faker/movies/star_wars.rb +107 -0
  136. data/lib/faker/movies/v_for_vendetta.rb +21 -0
  137. data/lib/faker/music/grateful_dead.rb +19 -0
  138. data/lib/faker/music/music.rb +47 -0
  139. data/lib/faker/music/opera.rb +26 -0
  140. data/lib/faker/music/phish.rb +13 -0
  141. data/lib/faker/music/rock_band.rb +13 -0
  142. data/lib/faker/music/umphreys_mcgee.rb +13 -0
  143. data/lib/faker/quotes/quote.rb +32 -0
  144. data/lib/faker/quotes/shakespeare.rb +41 -0
  145. data/lib/faker/sports/basketball.rb +25 -0
  146. data/lib/faker/sports/football.rb +29 -0
  147. data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +15 -0
  148. data/lib/faker/tv_shows/bojack_horseman.rb +23 -0
  149. data/lib/faker/tv_shows/breaking_bad.rb +19 -0
  150. data/lib/faker/tv_shows/buffy.rb +31 -0
  151. data/lib/faker/tv_shows/community.rb +19 -0
  152. data/lib/faker/tv_shows/dr_who.rb +39 -0
  153. data/lib/faker/tv_shows/dumb_and_dumber.rb +23 -0
  154. data/lib/faker/tv_shows/family_guy.rb +23 -0
  155. data/lib/faker/tv_shows/friends.rb +23 -0
  156. data/lib/faker/tv_shows/game_of_thrones.rb +31 -0
  157. data/lib/faker/tv_shows/hey_arnold.rb +23 -0
  158. data/lib/faker/tv_shows/how_i_met_your_mother.rb +27 -0
  159. data/lib/faker/tv_shows/michael_scott.rb +13 -0
  160. data/lib/faker/tv_shows/new_girl.rb +19 -0
  161. data/lib/faker/tv_shows/parks_and_rec.rb +19 -0
  162. data/lib/faker/tv_shows/rick_and_morty.rb +23 -0
  163. data/lib/faker/tv_shows/ru_paul.rb +19 -0
  164. data/lib/faker/tv_shows/seinfeld.rb +23 -0
  165. data/lib/faker/tv_shows/silicon_valley.rb +43 -0
  166. data/lib/faker/tv_shows/simpsons.rb +23 -0
  167. data/lib/faker/tv_shows/south_park.rb +19 -0
  168. data/lib/faker/tv_shows/star_trek.rb +27 -0
  169. data/lib/faker/tv_shows/stargate.rb +23 -0
  170. data/lib/faker/tv_shows/stranger_things.rb +19 -0
  171. data/lib/faker/tv_shows/the_expanse.rb +27 -0
  172. data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +23 -0
  173. data/lib/faker/tv_shows/the_it_crowd.rb +27 -0
  174. data/lib/faker/tv_shows/the_thick_of_it.rb +23 -0
  175. data/lib/faker/tv_shows/twin_peaks.rb +23 -0
  176. data/lib/faker/tv_shows/venture_bros.rb +27 -0
  177. data/lib/faker/version.rb +5 -0
  178. data/lib/helpers/base58.rb +22 -0
  179. data/lib/helpers/char.rb +66 -0
  180. data/lib/helpers/unique_generator.rb +56 -0
  181. data/lib/locales/README.md +40 -0
  182. data/lib/locales/ar.yml +102 -0
  183. data/lib/locales/bg.yml +44 -0
  184. data/lib/locales/ca-CAT.yml +24 -0
  185. data/lib/locales/ca.yml +31 -0
  186. data/lib/locales/da-DK.yml +73 -0
  187. data/lib/locales/de-AT.yml +56 -0
  188. data/lib/locales/de-CH.yml +19 -0
  189. data/lib/locales/de.yml +174 -0
  190. data/lib/locales/ee.yml +61 -0
  191. data/lib/locales/en-AU.yml +28 -0
  192. data/lib/locales/en-BORK.yml +4 -0
  193. data/lib/locales/en-CA.yml +36 -0
  194. data/lib/locales/en-GB.yml +14 -0
  195. data/lib/locales/en-IND.yml +25 -0
  196. data/lib/locales/en-MS.yml +47 -0
  197. data/lib/locales/en-NEP.yml +49 -0
  198. data/lib/locales/en-NG.yml +77 -0
  199. data/lib/locales/en-NZ.yml +39 -0
  200. data/lib/locales/en-PAK.yml +18 -0
  201. data/lib/locales/en-SG.yml +35 -0
  202. data/lib/locales/en-UG.yml +128 -0
  203. data/lib/locales/en-US.yml +103 -0
  204. data/lib/locales/en-ZA.yml +148 -0
  205. data/lib/locales/en-au-ocker.yml +33 -0
  206. data/lib/locales/en.yml +11 -0
  207. data/lib/locales/en/README.md +13 -0
  208. data/lib/locales/en/address.yml +581 -0
  209. data/lib/locales/en/ancient.yml +7 -0
  210. data/lib/locales/en/animal.yml +6 -0
  211. data/lib/locales/en/app.yml +8 -0
  212. data/lib/locales/en/appliance.yml +5 -0
  213. data/lib/locales/en/aqua_teen_hunger_force.yml +4 -0
  214. data/lib/locales/en/artist.yml +4 -0
  215. data/lib/locales/en/back_to_the_future.yml +120 -0
  216. data/lib/locales/en/bank.yml +302 -0
  217. data/lib/locales/en/basketball.yml +99 -0
  218. data/lib/locales/en/beer.yml +9 -0
  219. data/lib/locales/en/bojack_horseman.yml +6 -0
  220. data/lib/locales/en/book.yml +7 -0
  221. data/lib/locales/en/bossa_nova.yml +6 -0
  222. data/lib/locales/en/breaking_bad.yml +28 -0
  223. data/lib/locales/en/buffy.yml +260 -0
  224. data/lib/locales/en/business.yml +5 -0
  225. data/lib/locales/en/cannabis.yml +13 -0
  226. data/lib/locales/en/cat.yml +7 -0
  227. data/lib/locales/en/chuck_norris.yml +82 -0
  228. data/lib/locales/en/code.yml +4 -0
  229. data/lib/locales/en/coffee.yml +31 -0
  230. data/lib/locales/en/coin.yml +6 -0
  231. data/lib/locales/en/color.yml +4 -0
  232. data/lib/locales/en/commerce.yml +11 -0
  233. data/lib/locales/en/community.yml +33 -0
  234. data/lib/locales/en/company.yml +22 -0
  235. data/lib/locales/en/compass.yml +34 -0
  236. data/lib/locales/en/construction.yml +425 -0
  237. data/lib/locales/en/cosmere.yml +57 -0
  238. data/lib/locales/en/crypto_coin.yml +25 -0
  239. data/lib/locales/en/culture_series.yml +307 -0
  240. data/lib/locales/en/currency.yml +6 -0
  241. data/lib/locales/en/dc_comics.yml +52 -0
  242. data/lib/locales/en/demographic.yml +8 -0
  243. data/lib/locales/en/dessert.yml +6 -0
  244. data/lib/locales/en/device.yml +7 -0
  245. data/lib/locales/en/dog.yml +11 -0
  246. data/lib/locales/en/dota.yml +105 -0
  247. data/lib/locales/en/dr_who.yml +96 -0
  248. data/lib/locales/en/dragon_ball.yml +4 -0
  249. data/lib/locales/en/dumb_and_dumber.yml +59 -0
  250. data/lib/locales/en/dune.yml +159 -0
  251. data/lib/locales/en/educator.yml +11 -0
  252. data/lib/locales/en/elder_scrolls.yml +11 -0
  253. data/lib/locales/en/electrical_components.yml +6 -0
  254. data/lib/locales/en/esport.yml +8 -0
  255. data/lib/locales/en/fallout.yml +137 -0
  256. data/lib/locales/en/family_guy.yml +7 -0
  257. data/lib/locales/en/file.yml +5 -0
  258. data/lib/locales/en/finance.yml +113 -0
  259. data/lib/locales/en/food.yml +13 -0
  260. data/lib/locales/en/football.yml +8 -0
  261. data/lib/locales/en/fresh_prince_of_bel_air.yml +73 -0
  262. data/lib/locales/en/friends.yml +6 -0
  263. data/lib/locales/en/funny_name.yml +4 -0
  264. data/lib/locales/en/game.yml +283 -0
  265. data/lib/locales/en/game_of_thrones.yml +8 -0
  266. data/lib/locales/en/gender.yml +5 -0
  267. data/lib/locales/en/ghostbusters.yml +91 -0
  268. data/lib/locales/en/grateful_dead.yml +48 -0
  269. data/lib/locales/en/greek_philosophers.yml +26 -0
  270. data/lib/locales/en/hacker.yml +8 -0
  271. data/lib/locales/en/half_life.yml +7 -0
  272. data/lib/locales/en/harry_potter.yml +9 -0
  273. data/lib/locales/en/heroes.yml +6 -0
  274. data/lib/locales/en/heroes_of_the_storm.yml +7 -0
  275. data/lib/locales/en/hey_arnold.yml +24 -0
  276. data/lib/locales/en/hipster.yml +4 -0
  277. data/lib/locales/en/hitchhikers_guide_to_the_galaxy.yml +45 -0
  278. data/lib/locales/en/hobbit.yml +19 -0
  279. data/lib/locales/en/horse.yml +6 -0
  280. data/lib/locales/en/house.yml +5 -0
  281. data/lib/locales/en/how_i_met_your_mother.yml +28 -0
  282. data/lib/locales/en/id_number.yml +5 -0
  283. data/lib/locales/en/industry_segments.yml +7 -0
  284. data/lib/locales/en/internet.yml +21 -0
  285. data/lib/locales/en/invoice.yml +6 -0
  286. data/lib/locales/en/job.yml +15 -0
  287. data/lib/locales/en/kpop.yml +83 -0
  288. data/lib/locales/en/league_of_legends.yml +10 -0
  289. data/lib/locales/en/lebowski.yml +43 -0
  290. data/lib/locales/en/lord_of_the_rings.yml +6 -0
  291. data/lib/locales/en/lorem.yml +11 -0
  292. data/lib/locales/en/lovecraft.yml +9 -0
  293. data/lib/locales/en/markdown.yml +5 -0
  294. data/lib/locales/en/marketing.yml +4 -0
  295. data/lib/locales/en/measurement.yml +11 -0
  296. data/lib/locales/en/michael_scott.yml +45 -0
  297. data/lib/locales/en/military.yml +8 -0
  298. data/lib/locales/en/movie.yml +5 -0
  299. data/lib/locales/en/music.yml +32 -0
  300. data/lib/locales/en/myst.yml +48 -0
  301. data/lib/locales/en/name.yml +25 -0
  302. data/lib/locales/en/nation.yml +11 -0
  303. data/lib/locales/en/nato_phonetic_alphabet.yml +4 -0
  304. data/lib/locales/en/new_girl.yml +40 -0
  305. data/lib/locales/en/one_piece.yml +9 -0
  306. data/lib/locales/en/opera.yml +172 -0
  307. data/lib/locales/en/overwatch.yml +41 -0
  308. data/lib/locales/en/parks_and_rec.yml +7 -0
  309. data/lib/locales/en/phish.yml +4 -0
  310. data/lib/locales/en/phone_number.yml +7 -0
  311. data/lib/locales/en/pokemon.yml +8 -0
  312. data/lib/locales/en/princess_bride.yml +5 -0
  313. data/lib/locales/en/programming_language.yml +6 -0
  314. data/lib/locales/en/quote.yml +166 -0
  315. data/lib/locales/en/relationship.yml +10 -0
  316. data/lib/locales/en/restaurant.yml +129 -0
  317. data/lib/locales/en/rick_and_morty.yml +6 -0
  318. data/lib/locales/en/rock_band.yml +4 -0
  319. data/lib/locales/en/rupaul.yml +125 -0
  320. data/lib/locales/en/science.yml +6 -0
  321. data/lib/locales/en/seinfeld.yml +6 -0
  322. data/lib/locales/en/shakespeare.yml +56 -0
  323. data/lib/locales/en/silicon_valley.yml +53 -0
  324. data/lib/locales/en/simpsons.yml +26 -0
  325. data/lib/locales/en/slack_emoji.yml +20 -0
  326. data/lib/locales/en/sonic_the_hedgehog.yml +410 -0
  327. data/lib/locales/en/source.yml +16 -0
  328. data/lib/locales/en/south_park.yml +5 -0
  329. data/lib/locales/en/space.yml +17 -0
  330. data/lib/locales/en/star_trek.yml +7 -0
  331. data/lib/locales/en/star_wars.yml +258 -0
  332. data/lib/locales/en/stargate.yml +21 -0
  333. data/lib/locales/en/stranger_thing.yml +36 -0
  334. data/lib/locales/en/stripe.yml +42 -0
  335. data/lib/locales/en/subscription.yml +8 -0
  336. data/lib/locales/en/super_smash_bros.yml +205 -0
  337. data/lib/locales/en/superhero.yml +12 -0
  338. data/lib/locales/en/sword_art_online.yml +334 -0
  339. data/lib/locales/en/team.yml +8 -0
  340. data/lib/locales/en/the_expanse.yml +7 -0
  341. data/lib/locales/en/the_it_crowd.yml +155 -0
  342. data/lib/locales/en/the_thick_of_it.yml +6 -0
  343. data/lib/locales/en/twin_peaks.yml +6 -0
  344. data/lib/locales/en/umphreys_mcgee.yml +4 -0
  345. data/lib/locales/en/university.yml +10 -0
  346. data/lib/locales/en/v_for_vendetta.yml +163 -0
  347. data/lib/locales/en/vehicle.yml +80 -0
  348. data/lib/locales/en/venture_bros.yml +7 -0
  349. data/lib/locales/en/verbs.yml +8 -0
  350. data/lib/locales/en/witcher.yml +11 -0
  351. data/lib/locales/en/world_cup.yml +271 -0
  352. data/lib/locales/en/world_of_warcraft.yml +8 -0
  353. data/lib/locales/en/yoda.yml +4 -0
  354. data/lib/locales/en/zelda.yml +8 -0
  355. data/lib/locales/es-MX.yml +102 -0
  356. data/lib/locales/es.yml +94 -0
  357. data/lib/locales/fa.yml +10 -0
  358. data/lib/locales/fi-FI.yml +35 -0
  359. data/lib/locales/fr-CA.yml +90 -0
  360. data/lib/locales/fr-CH.yml +78 -0
  361. data/lib/locales/fr.yml +114 -0
  362. data/lib/locales/he.yml +27 -0
  363. data/lib/locales/hy.yml +416 -0
  364. data/lib/locales/id.yml +23 -0
  365. data/lib/locales/it.yml +70 -0
  366. data/lib/locales/ja.yml +98 -0
  367. data/lib/locales/ko.yml +40 -0
  368. data/lib/locales/lv.yml +55 -0
  369. data/lib/locales/nb-NO.yml +62 -0
  370. data/lib/locales/nl.yml +92 -0
  371. data/lib/locales/no.yml +7 -0
  372. data/lib/locales/pl.yml +77 -0
  373. data/lib/locales/pt-BR.yml +697 -0
  374. data/lib/locales/pt.yml +66 -0
  375. data/lib/locales/ru.yml +76 -0
  376. data/lib/locales/sk.yml +78 -0
  377. data/lib/locales/sv.yml +81 -0
  378. data/lib/locales/tr.yml +40 -0
  379. data/lib/locales/uk.yml +86 -0
  380. data/lib/locales/vi.yml +68 -0
  381. data/lib/locales/zh-CN.yml +56 -0
  382. data/lib/locales/zh-TW.yml +29 -0
  383. metadata +543 -0
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class LoremPixel < Base
5
+ class << self
6
+ SUPPORTED_CATEGORIES = %w[abstract
7
+ animals
8
+ business
9
+ cats
10
+ city
11
+ food
12
+ nightlife
13
+ fashion
14
+ people
15
+ nature
16
+ sports
17
+ technics
18
+ transport].freeze
19
+
20
+ # rubocop:disable Metrics/ParameterLists
21
+ def image(legacy_size = NOT_GIVEN, legacy_is_gray = NOT_GIVEN, legacy_category = NOT_GIVEN, legacy_number = NOT_GIVEN, legacy_text = NOT_GIVEN, legacy_secure = NOT_GIVEN, size: '300x300', is_gray: false, category: nil, number: nil, text: nil, secure: true)
22
+ warn_for_deprecated_arguments do |keywords|
23
+ keywords << :size if legacy_size != NOT_GIVEN
24
+ keywords << :is_gray if legacy_is_gray != NOT_GIVEN
25
+ keywords << :category if legacy_category != NOT_GIVEN
26
+ keywords << :number if legacy_number != NOT_GIVEN
27
+ keywords << :text if legacy_text != NOT_GIVEN
28
+ keywords << :secure if legacy_secure != NOT_GIVEN
29
+ end
30
+
31
+ raise ArgumentError, 'Size should be specified in format 300x300' unless size =~ /^[0-9]+x[0-9]+$/
32
+ raise ArgumentError, "Supported categories are #{SUPPORTED_CATEGORIES.join(', ')}" unless category.nil? || SUPPORTED_CATEGORIES.include?(category)
33
+ raise ArgumentError, 'Category required when number is passed' if !number.nil? && category.nil?
34
+ raise ArgumentError, 'Number must be between 1 and 10' unless number.nil? || (1..10).cover?(number)
35
+ raise ArgumentError, 'Category and number must be passed when text is passed' if !text.nil? && number.nil? && category.nil?
36
+
37
+ url_parts = secure ? ['https:/'] : ['http:/']
38
+ url_parts << ['lorempixel.com']
39
+ url_parts << 'g' if is_gray
40
+ url_parts += size.split('x')
41
+ url_parts += [category, number, text].compact
42
+ url_parts.join('/')
43
+ end
44
+ # rubocop:enable Metrics/ParameterLists
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,84 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Markdown < Base
5
+ class << self
6
+ def headers
7
+ "#{fetch('markdown.headers')} #{Lorem.word.capitalize}"
8
+ end
9
+
10
+ def emphasis
11
+ paragraph = Faker::Lorem.paragraph(sentence_count: 3)
12
+ words = paragraph.split(' ')
13
+ position = rand(0..words.length - 1)
14
+ formatting = fetch('markdown.emphasis')
15
+ words[position] = "#{formatting}#{words[position]}#{formatting}"
16
+ words.join(' ')
17
+ end
18
+
19
+ def ordered_list
20
+ number = rand(1..10)
21
+
22
+ result = []
23
+ number.times do |i|
24
+ result << "#{i}. #{Faker::Lorem.sentence(word_count: 1)} \n"
25
+ end
26
+ result.join('')
27
+ end
28
+
29
+ def unordered_list
30
+ number = rand(1..10)
31
+
32
+ result = []
33
+ number.times do |_i|
34
+ result << "* #{Faker::Lorem.sentence(word_count: 1)} \n"
35
+ end
36
+ result.join('')
37
+ end
38
+
39
+ def inline_code
40
+ "`#{Faker::Lorem.sentence(word_count: 1)}`"
41
+ end
42
+
43
+ def block_code
44
+ "```ruby\n#{Lorem.sentence(word_count: 1)}\n```"
45
+ end
46
+
47
+ def table
48
+ table = []
49
+ 3.times do
50
+ table << "#{Lorem.word} | #{Lorem.word} | #{Lorem.word}"
51
+ end
52
+ table.insert(1, '---- | ---- | ----')
53
+ table.join("\n")
54
+ end
55
+
56
+ def random(*args)
57
+ method_list = available_methods
58
+ args&.each { |ex| method_list.delete_if { |meth| meth == ex.to_sym } }
59
+ send(method_list[rand(0..method_list.length - 1)])
60
+ end
61
+
62
+ def sandwich(legacy_sentences = NOT_GIVEN, legacy_repeat = NOT_GIVEN, sentences: 3, repeat: 1)
63
+ warn_for_deprecated_arguments do |keywords|
64
+ keywords << :sentences if legacy_sentences != NOT_GIVEN
65
+ keywords << :repeat if legacy_repeat != NOT_GIVEN
66
+ end
67
+
68
+ text_block = []
69
+ text_block << headers
70
+ repeat.times do
71
+ text_block << Faker::Lorem.paragraph(sentence_count: sentences)
72
+ text_block << random
73
+ end
74
+ text_block.join("\n")
75
+ end
76
+
77
+ private
78
+
79
+ def available_methods
80
+ Markdown.public_methods(false) - Base.methods
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Marketing < Base
5
+ flexible :marketing
6
+
7
+ class << self
8
+ def buzzwords
9
+ fetch('marketing.buzzwords')
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,116 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Measurement < Base
5
+ class << self
6
+ ALL = 'all'
7
+ NONE = 'none'
8
+
9
+ def height(legacy_amount = NOT_GIVEN, amount: rand(10))
10
+ warn_for_deprecated_arguments do |keywords|
11
+ keywords << :amount if legacy_amount != NOT_GIVEN
12
+ end
13
+
14
+ define_measurement_locale(amount, 'height')
15
+ end
16
+
17
+ def length(legacy_amount = NOT_GIVEN, amount: rand(10))
18
+ warn_for_deprecated_arguments do |keywords|
19
+ keywords << :amount if legacy_amount != NOT_GIVEN
20
+ end
21
+
22
+ define_measurement_locale(amount, 'length')
23
+ end
24
+
25
+ def volume(legacy_amount = NOT_GIVEN, amount: rand(10))
26
+ warn_for_deprecated_arguments do |keywords|
27
+ keywords << :amount if legacy_amount != NOT_GIVEN
28
+ end
29
+
30
+ define_measurement_locale(amount, 'volume')
31
+ end
32
+
33
+ def weight(legacy_amount = NOT_GIVEN, amount: rand(10))
34
+ warn_for_deprecated_arguments do |keywords|
35
+ keywords << :amount if legacy_amount != NOT_GIVEN
36
+ end
37
+
38
+ define_measurement_locale(amount, 'weight')
39
+ end
40
+
41
+ def metric_height(legacy_amount = NOT_GIVEN, amount: rand(10))
42
+ warn_for_deprecated_arguments do |keywords|
43
+ keywords << :amount if legacy_amount != NOT_GIVEN
44
+ end
45
+
46
+ define_measurement_locale(amount, 'metric_height')
47
+ end
48
+
49
+ def metric_length(legacy_amount = NOT_GIVEN, amount: rand(10))
50
+ warn_for_deprecated_arguments do |keywords|
51
+ keywords << :amount if legacy_amount != NOT_GIVEN
52
+ end
53
+
54
+ define_measurement_locale(amount, 'metric_length')
55
+ end
56
+
57
+ def metric_volume(legacy_amount = NOT_GIVEN, amount: rand(10))
58
+ warn_for_deprecated_arguments do |keywords|
59
+ keywords << :amount if legacy_amount != NOT_GIVEN
60
+ end
61
+
62
+ define_measurement_locale(amount, 'metric_volume')
63
+ end
64
+
65
+ def metric_weight(legacy_amount = NOT_GIVEN, amount: rand(10))
66
+ warn_for_deprecated_arguments do |keywords|
67
+ keywords << :amount if legacy_amount != NOT_GIVEN
68
+ end
69
+
70
+ define_measurement_locale(amount, 'metric_weight')
71
+ end
72
+
73
+ private
74
+
75
+ def check_for_plural(text, number)
76
+ if number && number != 1
77
+ make_plural(text)
78
+ else
79
+ text
80
+ end
81
+ end
82
+
83
+ def define_measurement_locale(amount, locale)
84
+ ensure_valid_amount(amount)
85
+ if amount == ALL
86
+ make_plural(fetch("measurement.#{locale}"))
87
+ elsif amount == NONE
88
+ fetch("measurement.#{locale}")
89
+ else
90
+ locale = check_for_plural(fetch("measurement.#{locale}"), amount)
91
+
92
+ "#{amount} #{locale}"
93
+ end
94
+ end
95
+
96
+ def ensure_valid_amount(amount)
97
+ raise ArgumentError, 'invalid amount' unless amount == NONE || amount == ALL || amount.is_a?(Integer) || amount.is_a?(Float)
98
+ end
99
+
100
+ def make_plural(text)
101
+ case text
102
+ when 'foot'
103
+ 'feet'
104
+ when 'inch'
105
+ 'inches'
106
+ when 'fluid ounce'
107
+ 'fluid ounces'
108
+ when 'metric ton'
109
+ 'metric tons'
110
+ else
111
+ "#{text}s"
112
+ end
113
+ end
114
+ end
115
+ end
116
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Military < Base
5
+ class << self
6
+ def army_rank
7
+ fetch('military.army_rank')
8
+ end
9
+
10
+ def marines_rank
11
+ fetch('military.marines_rank')
12
+ end
13
+
14
+ def navy_rank
15
+ fetch('military.navy_rank')
16
+ end
17
+
18
+ def air_force_rank
19
+ fetch('military.air_force_rank')
20
+ end
21
+
22
+ def dod_paygrade
23
+ fetch('military.dod_paygrade')
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,58 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Name < Base
5
+ flexible :name
6
+
7
+ class << self
8
+ def name
9
+ parse('name.name')
10
+ end
11
+
12
+ def name_with_middle
13
+ parse('name.name_with_middle')
14
+ end
15
+
16
+ def first_name
17
+ if parse('name.first_name').empty?
18
+ fetch('name.first_name')
19
+ else
20
+ parse('name.first_name')
21
+ end
22
+ end
23
+
24
+ def male_first_name
25
+ fetch('name.male_first_name')
26
+ end
27
+ alias first_name_men male_first_name
28
+ alias masculine_name male_first_name
29
+
30
+ def female_first_name
31
+ fetch('name.female_first_name')
32
+ end
33
+ alias first_name_women female_first_name
34
+ alias feminine_name female_first_name
35
+
36
+ def last_name
37
+ parse('name.last_name')
38
+ end
39
+ alias middle_name last_name
40
+
41
+ def prefix
42
+ fetch('name.prefix')
43
+ end
44
+
45
+ def suffix
46
+ fetch('name.suffix')
47
+ end
48
+
49
+ def initials(legacy_number = NOT_GIVEN, number: 3)
50
+ warn_for_deprecated_arguments do |keywords|
51
+ keywords << :number if legacy_number != NOT_GIVEN
52
+ end
53
+
54
+ (0...number).map { rand(65..90).chr }.join
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Nation < Base
5
+ flexible :nation
6
+ class << self
7
+ # Fetch random nationality
8
+ def nationality
9
+ fetch('nation.nationality')
10
+ end
11
+
12
+ # Fetch random national flag emoji
13
+ def flag
14
+ sample(translate('faker.nation.flag')).pack('C*').force_encoding('utf-8')
15
+ end
16
+
17
+ # Fetch random language
18
+ def language
19
+ fetch('nation.language')
20
+ end
21
+
22
+ # Fetch random capital city
23
+ def capital_city
24
+ fetch('nation.capital_city')
25
+ end
26
+
27
+ # Fetch random natinal sport
28
+ def national_sport
29
+ fetch('team.sport')
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class NatoPhoneticAlphabet < Base
5
+ class << self
6
+ def code_word
7
+ fetch('nato_phonetic_alphabet.code_word')
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class NationalHealthService < Base
5
+ class << self
6
+ def british_number
7
+ base_number = rand(400_000_001...499_999_999)
8
+ # If the check digit is equivalent to 10, the number is invalid.
9
+ # See https://en.wikipedia.org/wiki/NHS_number
10
+ base_number -= 1 if check_digit(number: base_number) == 10
11
+ "#{base_number}#{check_digit(number: base_number)}".to_s
12
+ .chars
13
+ .insert(3, ' ')
14
+ .insert(7, ' ')
15
+ .join('')
16
+ end
17
+
18
+ def check_digit(legacy_number = NOT_GIVEN, number: 0)
19
+ warn_for_deprecated_arguments do |keywords|
20
+ keywords << :number if legacy_number != NOT_GIVEN
21
+ end
22
+
23
+ sum = 0
24
+ number.to_s.chars.each_with_index do |digit, idx|
25
+ position = idx + 1
26
+ sum += (digit.to_i * (11 - position))
27
+ end
28
+ result = 11 - (sum % 11)
29
+
30
+ # A value of 11 is considered the same as 0
31
+ # See https://en.wikipedia.org/wiki/NHS_number
32
+ return 0 if result == 11
33
+
34
+ result
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,150 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Number < Base
5
+ class << self
6
+ def number(legacy_digits = NOT_GIVEN, digits: 10)
7
+ warn_for_deprecated_arguments do |keywords|
8
+ keywords << :digits if legacy_digits != NOT_GIVEN
9
+ end
10
+
11
+ return if digits < 1
12
+ return rand(0..9).round if digits == 1
13
+
14
+ # Ensure the first digit is not zero
15
+ ([non_zero_digit] + generate(digits - 1)).join.to_i
16
+ end
17
+
18
+ def leading_zero_number(legacy_digits = NOT_GIVEN, digits: 10)
19
+ warn_for_deprecated_arguments do |keywords|
20
+ keywords << :digits if legacy_digits != NOT_GIVEN
21
+ end
22
+
23
+ '0' + (2..digits).collect { digit }.join
24
+ end
25
+
26
+ def decimal_part(legacy_digits = NOT_GIVEN, digits: 10)
27
+ warn_for_deprecated_arguments do |keywords|
28
+ keywords << :digits if legacy_digits != NOT_GIVEN
29
+ end
30
+
31
+ num = ''
32
+ if digits > 1
33
+ num = non_zero_digit
34
+ digits -= 1
35
+ end
36
+ leading_zero_number(digits: digits) + num.to_s
37
+ end
38
+
39
+ def decimal(legacy_l_digits = NOT_GIVEN, legacy_r_digits = NOT_GIVEN, l_digits: 5, r_digits: 2)
40
+ warn_for_deprecated_arguments do |keywords|
41
+ keywords << :l_digits if legacy_l_digits != NOT_GIVEN
42
+ keywords << :r_digits if legacy_r_digits != NOT_GIVEN
43
+ end
44
+
45
+ l_d = number(digits: l_digits)
46
+ r_d = if r_digits == 1
47
+ generate(r_digits)
48
+ else
49
+ # Ensure the last digit is not zero
50
+ # so it does not get truncated on converting to float
51
+ generate(r_digits - 1).join + non_zero_digit.to_s
52
+ end
53
+ "#{l_d}.#{r_d}".to_f
54
+ end
55
+
56
+ def non_zero_digit
57
+ rand(1..9)
58
+ end
59
+
60
+ def digit
61
+ rand(10)
62
+ end
63
+
64
+ def hexadecimal(legacy_digits = NOT_GIVEN, digits: 6)
65
+ warn_for_deprecated_arguments do |keywords|
66
+ keywords << :digits if legacy_digits != NOT_GIVEN
67
+ end
68
+
69
+ hex = ''
70
+ digits.times { hex += rand(15).to_s(16) }
71
+ hex
72
+ end
73
+
74
+ def normal(legacy_mean = NOT_GIVEN, legacy_standard_deviation = NOT_GIVEN, mean: 1, standard_deviation: 1)
75
+ warn_for_deprecated_arguments do |keywords|
76
+ keywords << :mean if legacy_mean != NOT_GIVEN
77
+ keywords << :standard_deviation if legacy_standard_deviation != NOT_GIVEN
78
+ end
79
+
80
+ theta = 2 * Math::PI * rand
81
+ rho = Math.sqrt(-2 * Math.log(1 - rand))
82
+ scale = standard_deviation * rho
83
+ mean + scale * Math.cos(theta)
84
+ end
85
+
86
+ def between(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: 1.00, to: 5000.00)
87
+ warn_for_deprecated_arguments do |keywords|
88
+ keywords << :from if legacy_from != NOT_GIVEN
89
+ keywords << :to if legacy_to != NOT_GIVEN
90
+ end
91
+
92
+ Faker::Base.rand_in_range(from, to)
93
+ end
94
+
95
+ def within(legacy_range = NOT_GIVEN, range: 1.00..5000.00)
96
+ warn_for_deprecated_arguments do |keywords|
97
+ keywords << :range if legacy_range != NOT_GIVEN
98
+ end
99
+
100
+ between(from: range.min, to: range.max)
101
+ end
102
+
103
+ def positive(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: 1.00, to: 5000.00)
104
+ warn_for_deprecated_arguments do |keywords|
105
+ keywords << :from if legacy_from != NOT_GIVEN
106
+ keywords << :to if legacy_to != NOT_GIVEN
107
+ end
108
+
109
+ random_number = between(from: from, to: to)
110
+
111
+ greater_than_zero(random_number)
112
+ end
113
+
114
+ def negative(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: -5000.00, to: -1.00)
115
+ warn_for_deprecated_arguments do |keywords|
116
+ keywords << :from if legacy_from != NOT_GIVEN
117
+ keywords << :to if legacy_to != NOT_GIVEN
118
+ end
119
+
120
+ random_number = between(from: from, to: to)
121
+
122
+ less_than_zero(random_number)
123
+ end
124
+
125
+ private
126
+
127
+ def generate(count)
128
+ return [] if count.zero?
129
+
130
+ Array.new(count) { digit }
131
+ end
132
+
133
+ def greater_than_zero(number)
134
+ should_be(number, :>)
135
+ end
136
+
137
+ def less_than_zero(number)
138
+ should_be(number, :<)
139
+ end
140
+
141
+ def should_be(number, method_to_compare)
142
+ if number.send(method_to_compare, 0)
143
+ number
144
+ else
145
+ number * -1
146
+ end
147
+ end
148
+ end
149
+ end
150
+ end