faker 2.6.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 (386) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +1384 -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/aeternity.rb +70 -0
  9. data/lib/faker/blockchain/bitcoin.rb +60 -0
  10. data/lib/faker/blockchain/ethereum.rb +26 -0
  11. data/lib/faker/blockchain/tezos.rb +107 -0
  12. data/lib/faker/books/book.rb +61 -0
  13. data/lib/faker/books/culture_series.rb +83 -0
  14. data/lib/faker/books/dune.rb +119 -0
  15. data/lib/faker/books/lovecraft.rb +276 -0
  16. data/lib/faker/creature/animal.rb +22 -0
  17. data/lib/faker/creature/cat.rb +50 -0
  18. data/lib/faker/creature/dog.rb +115 -0
  19. data/lib/faker/creature/horse.rb +37 -0
  20. data/lib/faker/default/address.rb +123 -0
  21. data/lib/faker/default/alphanumeric.rb +73 -0
  22. data/lib/faker/default/ancient.rb +23 -0
  23. data/lib/faker/default/app.rb +77 -0
  24. data/lib/faker/default/appliance.rb +33 -0
  25. data/lib/faker/default/artist.rb +20 -0
  26. data/lib/faker/default/avatar.rb +60 -0
  27. data/lib/faker/default/bank.rb +108 -0
  28. data/lib/faker/default/beer.rb +41 -0
  29. data/lib/faker/default/boolean.rb +26 -0
  30. data/lib/faker/default/bossa_nova.rb +15 -0
  31. data/lib/faker/default/business.rb +23 -0
  32. data/lib/faker/default/cannabis.rb +45 -0
  33. data/lib/faker/default/chile_rut.rb +54 -0
  34. data/lib/faker/default/chuck_norris.rb +14 -0
  35. data/lib/faker/default/code.rb +201 -0
  36. data/lib/faker/default/coffee.rb +37 -0
  37. data/lib/faker/default/coin.rb +15 -0
  38. data/lib/faker/default/color.rb +32 -0
  39. data/lib/faker/default/commerce.rb +80 -0
  40. data/lib/faker/default/company.rb +264 -0
  41. data/lib/faker/default/compass.rb +67 -0
  42. data/lib/faker/default/construction.rb +29 -0
  43. data/lib/faker/default/cosmere.rb +48 -0
  44. data/lib/faker/default/crypto.rb +21 -0
  45. data/lib/faker/default/crypto_coin.rb +49 -0
  46. data/lib/faker/default/currency.rb +19 -0
  47. data/lib/faker/default/date.rb +182 -0
  48. data/lib/faker/default/dc_comics.rb +25 -0
  49. data/lib/faker/default/demographic.rb +41 -0
  50. data/lib/faker/default/dessert.rb +48 -0
  51. data/lib/faker/default/device.rb +85 -0
  52. data/lib/faker/default/driving_licence.rb +65 -0
  53. data/lib/faker/default/educator.rb +35 -0
  54. data/lib/faker/default/electrical_components.rb +48 -0
  55. data/lib/faker/default/esport.rb +27 -0
  56. data/lib/faker/default/file.rb +49 -0
  57. data/lib/faker/default/fillmurray.rb +23 -0
  58. data/lib/faker/default/finance.rb +44 -0
  59. data/lib/faker/default/food.rb +49 -0
  60. data/lib/faker/default/funny_name.rb +45 -0
  61. data/lib/faker/default/gender.rb +33 -0
  62. data/lib/faker/default/greek_philosophers.rb +33 -0
  63. data/lib/faker/default/hacker.rb +103 -0
  64. data/lib/faker/default/hipster.rb +97 -0
  65. data/lib/faker/default/house.rb +33 -0
  66. data/lib/faker/default/id_number.rb +164 -0
  67. data/lib/faker/default/industry_segments.rb +61 -0
  68. data/lib/faker/default/internet.rb +291 -0
  69. data/lib/faker/default/invoice.rb +109 -0
  70. data/lib/faker/default/job.rb +25 -0
  71. data/lib/faker/default/json.rb +87 -0
  72. data/lib/faker/default/kpop.rb +31 -0
  73. data/lib/faker/default/lorem.rb +151 -0
  74. data/lib/faker/default/lorem_flickr.rb +78 -0
  75. data/lib/faker/default/lorem_pixel.rb +47 -0
  76. data/lib/faker/default/markdown.rb +84 -0
  77. data/lib/faker/default/marketing.rb +22 -0
  78. data/lib/faker/default/measurement.rb +116 -0
  79. data/lib/faker/default/military.rb +72 -0
  80. data/lib/faker/default/name.rb +58 -0
  81. data/lib/faker/default/nation.rb +76 -0
  82. data/lib/faker/default/nato_phonetic_alphabet.rb +20 -0
  83. data/lib/faker/default/nhs.rb +38 -0
  84. data/lib/faker/default/number.rb +274 -0
  85. data/lib/faker/default/omniauth.rb +413 -0
  86. data/lib/faker/default/phone_number.rb +54 -0
  87. data/lib/faker/default/placeholdit.rb +41 -0
  88. data/lib/faker/default/programming_language.rb +33 -0
  89. data/lib/faker/default/relationship.rb +46 -0
  90. data/lib/faker/default/restaurant.rb +63 -0
  91. data/lib/faker/default/science.rb +46 -0
  92. data/lib/faker/default/slack_emoji.rb +43 -0
  93. data/lib/faker/default/source.rb +76 -0
  94. data/lib/faker/default/south_africa.rb +51 -0
  95. data/lib/faker/default/space.rb +64 -0
  96. data/lib/faker/default/string.rb +49 -0
  97. data/lib/faker/default/stripe.rb +81 -0
  98. data/lib/faker/default/subscription.rb +70 -0
  99. data/lib/faker/default/superhero.rb +72 -0
  100. data/lib/faker/default/team.rb +29 -0
  101. data/lib/faker/default/time.rb +179 -0
  102. data/lib/faker/default/twitter.rb +188 -0
  103. data/lib/faker/default/types.rb +101 -0
  104. data/lib/faker/default/university.rb +30 -0
  105. data/lib/faker/default/vehicle.rb +162 -0
  106. data/lib/faker/default/verb.rb +27 -0
  107. data/lib/faker/default/world_cup.rb +86 -0
  108. data/lib/faker/games/dota.rb +80 -0
  109. data/lib/faker/games/elder_scrolls.rb +113 -0
  110. data/lib/faker/games/fallout.rb +62 -0
  111. data/lib/faker/games/game.rb +48 -0
  112. data/lib/faker/games/half_life.rb +48 -0
  113. data/lib/faker/games/heroes.rb +48 -0
  114. data/lib/faker/games/heroes_of_the_storm.rb +61 -0
  115. data/lib/faker/games/league_of_legends.rb +87 -0
  116. data/lib/faker/games/myst.rb +74 -0
  117. data/lib/faker/games/overwatch.rb +48 -0
  118. data/lib/faker/games/pokemon.rb +48 -0
  119. data/lib/faker/games/sonic_the_hedgehog.rb +48 -0
  120. data/lib/faker/games/super_smash_bros.rb +35 -0
  121. data/lib/faker/games/witcher.rb +87 -0
  122. data/lib/faker/games/world_of_warcraft.rb +35 -0
  123. data/lib/faker/games/zelda.rb +62 -0
  124. data/lib/faker/japanese_media/dragon_ball.rb +22 -0
  125. data/lib/faker/japanese_media/one_piece.rb +87 -0
  126. data/lib/faker/japanese_media/sword_art_online.rb +61 -0
  127. data/lib/faker/movies/back_to_the_future.rb +49 -0
  128. data/lib/faker/movies/ghostbusters.rb +49 -0
  129. data/lib/faker/movies/harry_potter.rb +87 -0
  130. data/lib/faker/movies/hitchhikers_guide_to_the_galaxy.rb +106 -0
  131. data/lib/faker/movies/hobbit.rb +62 -0
  132. data/lib/faker/movies/lebowski.rb +48 -0
  133. data/lib/faker/movies/lord_of_the_rings.rb +49 -0
  134. data/lib/faker/movies/movie.rb +20 -0
  135. data/lib/faker/movies/princess_bride.rb +36 -0
  136. data/lib/faker/movies/star_wars.rb +201 -0
  137. data/lib/faker/movies/v_for_vendetta.rb +50 -0
  138. data/lib/faker/music/grateful_dead.rb +37 -0
  139. data/lib/faker/music/music.rb +47 -0
  140. data/lib/faker/music/opera.rb +26 -0
  141. data/lib/faker/music/phish.rb +22 -0
  142. data/lib/faker/music/rock_band.rb +22 -0
  143. data/lib/faker/music/umphreys_mcgee.rb +22 -0
  144. data/lib/faker/quotes/quote.rb +32 -0
  145. data/lib/faker/quotes/shakespeare.rb +41 -0
  146. data/lib/faker/sports/basketball.rb +61 -0
  147. data/lib/faker/sports/football.rb +74 -0
  148. data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +24 -0
  149. data/lib/faker/tv_shows/bojack_horseman.rb +51 -0
  150. data/lib/faker/tv_shows/breaking_bad.rb +37 -0
  151. data/lib/faker/tv_shows/buffy.rb +76 -0
  152. data/lib/faker/tv_shows/community.rb +38 -0
  153. data/lib/faker/tv_shows/dr_who.rb +115 -0
  154. data/lib/faker/tv_shows/dumb_and_dumber.rb +51 -0
  155. data/lib/faker/tv_shows/family_guy.rb +51 -0
  156. data/lib/faker/tv_shows/friends.rb +50 -0
  157. data/lib/faker/tv_shows/game_of_thrones.rb +77 -0
  158. data/lib/faker/tv_shows/hey_arnold.rb +50 -0
  159. data/lib/faker/tv_shows/how_i_met_your_mother.rb +64 -0
  160. data/lib/faker/tv_shows/michael_scott.rb +26 -0
  161. data/lib/faker/tv_shows/new_girl.rb +38 -0
  162. data/lib/faker/tv_shows/parks_and_rec.rb +37 -0
  163. data/lib/faker/tv_shows/rick_and_morty.rb +51 -0
  164. data/lib/faker/tv_shows/ru_paul.rb +37 -0
  165. data/lib/faker/tv_shows/seinfeld.rb +51 -0
  166. data/lib/faker/tv_shows/silicon_valley.rb +118 -0
  167. data/lib/faker/tv_shows/simpsons.rb +51 -0
  168. data/lib/faker/tv_shows/south_park.rb +38 -0
  169. data/lib/faker/tv_shows/star_trek.rb +63 -0
  170. data/lib/faker/tv_shows/stargate.rb +51 -0
  171. data/lib/faker/tv_shows/stranger_things.rb +38 -0
  172. data/lib/faker/tv_shows/the_expanse.rb +63 -0
  173. data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +51 -0
  174. data/lib/faker/tv_shows/the_it_crowd.rb +64 -0
  175. data/lib/faker/tv_shows/the_thick_of_it.rb +51 -0
  176. data/lib/faker/tv_shows/twin_peaks.rb +51 -0
  177. data/lib/faker/tv_shows/venture_bros.rb +65 -0
  178. data/lib/faker/version.rb +5 -0
  179. data/lib/helpers/base58.rb +22 -0
  180. data/lib/helpers/char.rb +66 -0
  181. data/lib/helpers/unique_generator.rb +56 -0
  182. data/lib/locales/README.md +40 -0
  183. data/lib/locales/ar.yml +102 -0
  184. data/lib/locales/bg.yml +44 -0
  185. data/lib/locales/ca-CAT.yml +24 -0
  186. data/lib/locales/ca.yml +31 -0
  187. data/lib/locales/da-DK.yml +73 -0
  188. data/lib/locales/de-AT.yml +56 -0
  189. data/lib/locales/de-CH.yml +19 -0
  190. data/lib/locales/de.yml +174 -0
  191. data/lib/locales/ee.yml +61 -0
  192. data/lib/locales/en-AU.yml +28 -0
  193. data/lib/locales/en-BORK.yml +4 -0
  194. data/lib/locales/en-CA.yml +36 -0
  195. data/lib/locales/en-GB.yml +14 -0
  196. data/lib/locales/en-IND.yml +25 -0
  197. data/lib/locales/en-MS.yml +47 -0
  198. data/lib/locales/en-NEP.yml +49 -0
  199. data/lib/locales/en-NG.yml +77 -0
  200. data/lib/locales/en-NZ.yml +39 -0
  201. data/lib/locales/en-PAK.yml +18 -0
  202. data/lib/locales/en-SG.yml +35 -0
  203. data/lib/locales/en-TH.yml +360 -0
  204. data/lib/locales/en-UG.yml +128 -0
  205. data/lib/locales/en-US.yml +103 -0
  206. data/lib/locales/en-ZA.yml +148 -0
  207. data/lib/locales/en-au-ocker.yml +33 -0
  208. data/lib/locales/en.yml +11 -0
  209. data/lib/locales/en/README.md +13 -0
  210. data/lib/locales/en/address.yml +581 -0
  211. data/lib/locales/en/ancient.yml +7 -0
  212. data/lib/locales/en/animal.yml +6 -0
  213. data/lib/locales/en/app.yml +8 -0
  214. data/lib/locales/en/appliance.yml +5 -0
  215. data/lib/locales/en/aqua_teen_hunger_force.yml +4 -0
  216. data/lib/locales/en/artist.yml +4 -0
  217. data/lib/locales/en/back_to_the_future.yml +120 -0
  218. data/lib/locales/en/bank.yml +302 -0
  219. data/lib/locales/en/basketball.yml +99 -0
  220. data/lib/locales/en/beer.yml +9 -0
  221. data/lib/locales/en/bojack_horseman.yml +6 -0
  222. data/lib/locales/en/book.yml +7 -0
  223. data/lib/locales/en/bossa_nova.yml +6 -0
  224. data/lib/locales/en/breaking_bad.yml +28 -0
  225. data/lib/locales/en/buffy.yml +260 -0
  226. data/lib/locales/en/business.yml +5 -0
  227. data/lib/locales/en/cannabis.yml +13 -0
  228. data/lib/locales/en/cat.yml +7 -0
  229. data/lib/locales/en/chuck_norris.yml +82 -0
  230. data/lib/locales/en/code.yml +4 -0
  231. data/lib/locales/en/coffee.yml +31 -0
  232. data/lib/locales/en/coin.yml +6 -0
  233. data/lib/locales/en/color.yml +4 -0
  234. data/lib/locales/en/commerce.yml +11 -0
  235. data/lib/locales/en/community.yml +33 -0
  236. data/lib/locales/en/company.yml +22 -0
  237. data/lib/locales/en/compass.yml +34 -0
  238. data/lib/locales/en/construction.yml +425 -0
  239. data/lib/locales/en/cosmere.yml +57 -0
  240. data/lib/locales/en/crypto_coin.yml +25 -0
  241. data/lib/locales/en/culture_series.yml +307 -0
  242. data/lib/locales/en/currency.yml +6 -0
  243. data/lib/locales/en/dc_comics.yml +52 -0
  244. data/lib/locales/en/demographic.yml +8 -0
  245. data/lib/locales/en/dessert.yml +6 -0
  246. data/lib/locales/en/device.yml +7 -0
  247. data/lib/locales/en/dog.yml +11 -0
  248. data/lib/locales/en/dota.yml +105 -0
  249. data/lib/locales/en/dr_who.yml +96 -0
  250. data/lib/locales/en/dragon_ball.yml +4 -0
  251. data/lib/locales/en/dumb_and_dumber.yml +59 -0
  252. data/lib/locales/en/dune.yml +159 -0
  253. data/lib/locales/en/educator.yml +11 -0
  254. data/lib/locales/en/elder_scrolls.yml +11 -0
  255. data/lib/locales/en/electrical_components.yml +6 -0
  256. data/lib/locales/en/esport.yml +8 -0
  257. data/lib/locales/en/fallout.yml +137 -0
  258. data/lib/locales/en/family_guy.yml +7 -0
  259. data/lib/locales/en/file.yml +5 -0
  260. data/lib/locales/en/finance.yml +113 -0
  261. data/lib/locales/en/food.yml +13 -0
  262. data/lib/locales/en/football.yml +8 -0
  263. data/lib/locales/en/fresh_prince_of_bel_air.yml +73 -0
  264. data/lib/locales/en/friends.yml +6 -0
  265. data/lib/locales/en/funny_name.yml +4 -0
  266. data/lib/locales/en/game.yml +283 -0
  267. data/lib/locales/en/game_of_thrones.yml +8 -0
  268. data/lib/locales/en/gender.yml +5 -0
  269. data/lib/locales/en/ghostbusters.yml +91 -0
  270. data/lib/locales/en/grateful_dead.yml +48 -0
  271. data/lib/locales/en/greek_philosophers.yml +26 -0
  272. data/lib/locales/en/hacker.yml +8 -0
  273. data/lib/locales/en/half_life.yml +7 -0
  274. data/lib/locales/en/harry_potter.yml +9 -0
  275. data/lib/locales/en/heroes.yml +6 -0
  276. data/lib/locales/en/heroes_of_the_storm.yml +7 -0
  277. data/lib/locales/en/hey_arnold.yml +24 -0
  278. data/lib/locales/en/hipster.yml +4 -0
  279. data/lib/locales/en/hitchhikers_guide_to_the_galaxy.yml +45 -0
  280. data/lib/locales/en/hobbit.yml +19 -0
  281. data/lib/locales/en/horse.yml +6 -0
  282. data/lib/locales/en/house.yml +5 -0
  283. data/lib/locales/en/how_i_met_your_mother.yml +28 -0
  284. data/lib/locales/en/id_number.yml +5 -0
  285. data/lib/locales/en/industry_segments.yml +7 -0
  286. data/lib/locales/en/internet.yml +21 -0
  287. data/lib/locales/en/invoice.yml +6 -0
  288. data/lib/locales/en/job.yml +15 -0
  289. data/lib/locales/en/kpop.yml +83 -0
  290. data/lib/locales/en/league_of_legends.yml +10 -0
  291. data/lib/locales/en/lebowski.yml +43 -0
  292. data/lib/locales/en/lord_of_the_rings.yml +6 -0
  293. data/lib/locales/en/lorem.yml +11 -0
  294. data/lib/locales/en/lovecraft.yml +9 -0
  295. data/lib/locales/en/markdown.yml +5 -0
  296. data/lib/locales/en/marketing.yml +4 -0
  297. data/lib/locales/en/measurement.yml +11 -0
  298. data/lib/locales/en/michael_scott.yml +45 -0
  299. data/lib/locales/en/military.yml +8 -0
  300. data/lib/locales/en/movie.yml +5 -0
  301. data/lib/locales/en/music.yml +32 -0
  302. data/lib/locales/en/myst.yml +48 -0
  303. data/lib/locales/en/name.yml +25 -0
  304. data/lib/locales/en/nation.yml +11 -0
  305. data/lib/locales/en/nato_phonetic_alphabet.yml +4 -0
  306. data/lib/locales/en/new_girl.yml +40 -0
  307. data/lib/locales/en/one_piece.yml +9 -0
  308. data/lib/locales/en/opera.yml +172 -0
  309. data/lib/locales/en/overwatch.yml +41 -0
  310. data/lib/locales/en/parks_and_rec.yml +7 -0
  311. data/lib/locales/en/phish.yml +4 -0
  312. data/lib/locales/en/phone_number.yml +7 -0
  313. data/lib/locales/en/pokemon.yml +8 -0
  314. data/lib/locales/en/princess_bride.yml +5 -0
  315. data/lib/locales/en/programming_language.yml +6 -0
  316. data/lib/locales/en/quote.yml +166 -0
  317. data/lib/locales/en/relationship.yml +10 -0
  318. data/lib/locales/en/restaurant.yml +129 -0
  319. data/lib/locales/en/rick_and_morty.yml +6 -0
  320. data/lib/locales/en/rock_band.yml +4 -0
  321. data/lib/locales/en/rupaul.yml +125 -0
  322. data/lib/locales/en/science.yml +6 -0
  323. data/lib/locales/en/seinfeld.yml +6 -0
  324. data/lib/locales/en/shakespeare.yml +56 -0
  325. data/lib/locales/en/silicon_valley.yml +53 -0
  326. data/lib/locales/en/simpsons.yml +26 -0
  327. data/lib/locales/en/slack_emoji.yml +20 -0
  328. data/lib/locales/en/sonic_the_hedgehog.yml +410 -0
  329. data/lib/locales/en/source.yml +16 -0
  330. data/lib/locales/en/south_park.yml +5 -0
  331. data/lib/locales/en/space.yml +17 -0
  332. data/lib/locales/en/star_trek.yml +7 -0
  333. data/lib/locales/en/star_wars.yml +258 -0
  334. data/lib/locales/en/stargate.yml +21 -0
  335. data/lib/locales/en/stranger_thing.yml +36 -0
  336. data/lib/locales/en/stripe.yml +42 -0
  337. data/lib/locales/en/subscription.yml +8 -0
  338. data/lib/locales/en/super_smash_bros.yml +205 -0
  339. data/lib/locales/en/superhero.yml +12 -0
  340. data/lib/locales/en/sword_art_online.yml +334 -0
  341. data/lib/locales/en/team.yml +8 -0
  342. data/lib/locales/en/the_expanse.yml +7 -0
  343. data/lib/locales/en/the_it_crowd.yml +155 -0
  344. data/lib/locales/en/the_thick_of_it.yml +6 -0
  345. data/lib/locales/en/twin_peaks.yml +6 -0
  346. data/lib/locales/en/umphreys_mcgee.yml +4 -0
  347. data/lib/locales/en/university.yml +10 -0
  348. data/lib/locales/en/v_for_vendetta.yml +163 -0
  349. data/lib/locales/en/vehicle.yml +80 -0
  350. data/lib/locales/en/venture_bros.yml +7 -0
  351. data/lib/locales/en/verbs.yml +8 -0
  352. data/lib/locales/en/witcher.yml +11 -0
  353. data/lib/locales/en/world_cup.yml +271 -0
  354. data/lib/locales/en/world_of_warcraft.yml +8 -0
  355. data/lib/locales/en/yoda.yml +4 -0
  356. data/lib/locales/en/zelda.yml +8 -0
  357. data/lib/locales/es-MX.yml +102 -0
  358. data/lib/locales/es.yml +94 -0
  359. data/lib/locales/fa.yml +10 -0
  360. data/lib/locales/fi-FI.yml +35 -0
  361. data/lib/locales/fr-CA.yml +90 -0
  362. data/lib/locales/fr-CH.yml +78 -0
  363. data/lib/locales/fr.yml +114 -0
  364. data/lib/locales/he.yml +27 -0
  365. data/lib/locales/hy.yml +416 -0
  366. data/lib/locales/id.yml +23 -0
  367. data/lib/locales/it.yml +70 -0
  368. data/lib/locales/ja.yml +97 -0
  369. data/lib/locales/ko.yml +40 -0
  370. data/lib/locales/lv.yml +55 -0
  371. data/lib/locales/nb-NO.yml +62 -0
  372. data/lib/locales/nl.yml +92 -0
  373. data/lib/locales/no.yml +7 -0
  374. data/lib/locales/pl.yml +77 -0
  375. data/lib/locales/pt-BR.yml +697 -0
  376. data/lib/locales/pt.yml +66 -0
  377. data/lib/locales/ru.yml +76 -0
  378. data/lib/locales/sk.yml +78 -0
  379. data/lib/locales/sv.yml +81 -0
  380. data/lib/locales/th.yml +380 -0
  381. data/lib/locales/tr.yml +40 -0
  382. data/lib/locales/uk.yml +86 -0
  383. data/lib/locales/vi.yml +68 -0
  384. data/lib/locales/zh-CN.yml +56 -0
  385. data/lib/locales/zh-TW.yml +29 -0
  386. metadata +568 -0
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Marketing < Base
5
+ flexible :marketing
6
+
7
+ class << self
8
+ ##
9
+ # Produces the name of a video game console or platform.
10
+ #
11
+ # @return [String]
12
+ #
13
+ # @example
14
+ # Faker::Marketing.buzzwords #=> "rubber meets the road"
15
+ #
16
+ # @faker.version 1.9.4
17
+ def buzzwords
18
+ fetch('marketing.buzzwords')
19
+ end
20
+ end
21
+ end
22
+ 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,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Military < Base
5
+ class << self
6
+ ##
7
+ # Produces a rank in the U.S. Army.
8
+ #
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::Military.army_rank #=> "Staff Sergeant"
13
+ #
14
+ # @faker.version 1.9.0
15
+ def army_rank
16
+ fetch('military.army_rank')
17
+ end
18
+
19
+ ##
20
+ # Produces a rank in the U.S. Marines.
21
+ #
22
+ # @return [String]
23
+ #
24
+ # @example
25
+ # Faker::Military.marines_rank #=> "Gunnery Sergeant"
26
+ #
27
+ # @faker.version 1.9.0
28
+ def marines_rank
29
+ fetch('military.marines_rank')
30
+ end
31
+
32
+ ##
33
+ # Produces a rank in the U.S. Navy.
34
+ #
35
+ # @return [String]
36
+ #
37
+ # @example
38
+ # Faker::Military.navy_rank #=> "Seaman"
39
+ #
40
+ # @faker.version 1.9.0
41
+ def navy_rank
42
+ fetch('military.navy_rank')
43
+ end
44
+
45
+ ##
46
+ # Produces a rank in the U.S. Air Force.
47
+ #
48
+ # @return [String]
49
+ #
50
+ # @example
51
+ # Faker::Military.air_force_rank #=> "Captain"
52
+ #
53
+ # @faker.version 1.9.0
54
+ def air_force_rank
55
+ fetch('military.air_force_rank')
56
+ end
57
+
58
+ ##
59
+ # Produces a U.S. Department of Defense Paygrade.
60
+ #
61
+ # @return [String]
62
+ #
63
+ # @example
64
+ # Faker::Military.dod_paygrade #=> "E-6"
65
+ #
66
+ # @faker.version 1.9.0
67
+ def dod_paygrade
68
+ fetch('military.dod_paygrade')
69
+ end
70
+ end
71
+ end
72
+ 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,76 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Nation < Base
5
+ flexible :nation
6
+ class << self
7
+ ##
8
+ # Produces a random nationality.
9
+ #
10
+ # @return [String]
11
+ #
12
+ # @example
13
+ # Faker::Nation.nationality #=> "Nepalese"
14
+ #
15
+ # @faker.version 1.9.0
16
+ def nationality
17
+ fetch('nation.nationality')
18
+ end
19
+
20
+ # rubocop:disable Style/AsciiComments
21
+
22
+ ##
23
+ # Produces a random national flag emoji.
24
+ #
25
+ # @return [String]
26
+ #
27
+ # @example
28
+ # Faker::Nation.flag #=> "🇫🇮"
29
+ #
30
+ # @faker.version 1.9.0
31
+ def flag
32
+ sample(translate('faker.nation.flag')).pack('C*').force_encoding('utf-8')
33
+ end
34
+ # rubocop:enable Style/AsciiComments
35
+
36
+ ##
37
+ # Produces a random national language.
38
+ #
39
+ # @return [String]
40
+ #
41
+ # @example
42
+ # Faker::Nation.language #=> "Nepali"
43
+ #
44
+ # @faker.version 1.9.0
45
+ def language
46
+ fetch('nation.language')
47
+ end
48
+
49
+ ##
50
+ # Produces a random capital city.
51
+ #
52
+ # @return [String]
53
+ #
54
+ # @example
55
+ # Faker::Nation.capital_city #=> "Kathmandu"
56
+ #
57
+ # @faker.version 1.9.0
58
+ def capital_city
59
+ fetch('nation.capital_city')
60
+ end
61
+
62
+ ##
63
+ # Produces a random national sport.
64
+ #
65
+ # @return [String]
66
+ #
67
+ # @example
68
+ # Faker::Nation.national_sport #=> "dandi biyo"
69
+ #
70
+ # @faker.version 1.9.0
71
+ def national_sport
72
+ fetch('team.sport')
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class NatoPhoneticAlphabet < Base
5
+ class << self
6
+ ##
7
+ # Produces a code word from the NATO phonetic alphabet.
8
+ #
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::NatoPhoneticAlphabet.code_word #=> "Hotel"
13
+ #
14
+ # @faker.version 1.9.0
15
+ def code_word
16
+ fetch('nato_phonetic_alphabet.code_word')
17
+ end
18
+ end
19
+ end
20
+ 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,274 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Number < Base
5
+ class << self
6
+ ##
7
+ # Produce a random number.
8
+ #
9
+ # @param digits [Integer] Number of digits that the generated number should have.
10
+ # @return [Integer]
11
+ #
12
+ # @example
13
+ # Faker::Number.number(digits: 10) #=> 1968353479
14
+ #
15
+ # @faker.version 1.0.0
16
+ def number(legacy_digits = NOT_GIVEN, digits: 10)
17
+ warn_for_deprecated_arguments do |keywords|
18
+ keywords << :digits if legacy_digits != NOT_GIVEN
19
+ end
20
+
21
+ return if digits < 1
22
+ return rand(0..9).round if digits == 1
23
+
24
+ # Ensure the first digit is not zero
25
+ ([non_zero_digit] + generate(digits - 1)).join.to_i
26
+ end
27
+
28
+ ##
29
+ # Produce a random number with a leading zero.
30
+ #
31
+ # @param digits [Integer] Number of digits that the generated number should have.
32
+ # @return [String]
33
+ #
34
+ # @example
35
+ # Faker::Number.leading_zero_number(digits: 10) #=> "0669336915"
36
+ #
37
+ # @faker.version 1.0.0
38
+ def leading_zero_number(legacy_digits = NOT_GIVEN, digits: 10)
39
+ warn_for_deprecated_arguments do |keywords|
40
+ keywords << :digits if legacy_digits != NOT_GIVEN
41
+ end
42
+
43
+ '0' + (2..digits).collect { digit }.join
44
+ end
45
+
46
+ ##
47
+ # Produce a number with a number of digits, preserves leading zeroes.
48
+ #
49
+ # @param digits [Integer] Number of digits that the generated number should have.
50
+ # @return [String]
51
+ #
52
+ # @example
53
+ # Faker::Number.decimal_part(digits: 2) #=> "09"
54
+ #
55
+ # @faker.version 1.0.0
56
+ def decimal_part(legacy_digits = NOT_GIVEN, digits: 10)
57
+ warn_for_deprecated_arguments do |keywords|
58
+ keywords << :digits if legacy_digits != NOT_GIVEN
59
+ end
60
+
61
+ num = ''
62
+ if digits > 1
63
+ num = non_zero_digit
64
+ digits -= 1
65
+ end
66
+ leading_zero_number(digits: digits) + num.to_s
67
+ end
68
+
69
+ ##
70
+ # Produces a float.
71
+ #
72
+ # @param l_digits [Integer] Number of digits that the generated decimal should have to the left of the decimal point.
73
+ # @param r_digits [Integer] Number of digits that the generated decimal should have to the right of the decimal point.
74
+ # @return [Float]
75
+ #
76
+ # @example
77
+ # Faker::Number.decimal(l_digits: 2) #=> 11.88
78
+ # Faker::Number.decimal(l_digits: 3, r_digits: 3) #=> 181.843
79
+ #
80
+ # @faker.version 1.0.0
81
+ def decimal(legacy_l_digits = NOT_GIVEN, legacy_r_digits = NOT_GIVEN, l_digits: 5, r_digits: 2)
82
+ warn_for_deprecated_arguments do |keywords|
83
+ keywords << :l_digits if legacy_l_digits != NOT_GIVEN
84
+ keywords << :r_digits if legacy_r_digits != NOT_GIVEN
85
+ end
86
+
87
+ l_d = number(digits: l_digits)
88
+ r_d = if r_digits == 1
89
+ generate(r_digits)
90
+ else
91
+ # Ensure the last digit is not zero
92
+ # so it does not get truncated on converting to float
93
+ generate(r_digits - 1).join + non_zero_digit.to_s
94
+ end
95
+ "#{l_d}.#{r_d}".to_f
96
+ end
97
+
98
+ ##
99
+ # Produces a non-zero single-digit integer.
100
+ #
101
+ # @return [Integer]
102
+ #
103
+ # @example
104
+ # Faker::Number.non_zero_digit #=> 8
105
+ #
106
+ # @faker.version 1.0.0
107
+ def non_zero_digit
108
+ rand(1..9)
109
+ end
110
+
111
+ ##
112
+ # Produces a single-digit integer.
113
+ #
114
+ # @return [Integer]
115
+ #
116
+ # @example
117
+ # Faker::Number.digit #=> 1
118
+ #
119
+ # @faker.version 1.0.0
120
+ def digit
121
+ rand(10)
122
+ end
123
+
124
+ ##
125
+ # Produces a number in hexadecimal format.
126
+ #
127
+ # @param digits [Integer] Number of digits in the he
128
+ # @return [String]
129
+ #
130
+ # @example
131
+ # Faker::Number.hexadecimal(digits: 3) #=> "e74"
132
+ #
133
+ # @faker.version 1.0.0
134
+ def hexadecimal(legacy_digits = NOT_GIVEN, digits: 6)
135
+ warn_for_deprecated_arguments do |keywords|
136
+ keywords << :digits if legacy_digits != NOT_GIVEN
137
+ end
138
+
139
+ hex = ''
140
+ digits.times { hex += rand(15).to_s(16) }
141
+ hex
142
+ end
143
+
144
+ ##
145
+ # Produces a float given a mean and standard deviation.
146
+ #
147
+ # @param mean [Integer]
148
+ # @param standard_deviation [Integer, Float]
149
+ # @return [Float]
150
+ #
151
+ # @example
152
+ # Faker::Number.normal(mean: 50, standard_deviation: 3.5) #=> 47.14669604069156
153
+ #
154
+ # @faker.version 1.0.0
155
+ def normal(legacy_mean = NOT_GIVEN, legacy_standard_deviation = NOT_GIVEN, mean: 1, standard_deviation: 1)
156
+ warn_for_deprecated_arguments do |keywords|
157
+ keywords << :mean if legacy_mean != NOT_GIVEN
158
+ keywords << :standard_deviation if legacy_standard_deviation != NOT_GIVEN
159
+ end
160
+
161
+ theta = 2 * Math::PI * rand
162
+ rho = Math.sqrt(-2 * Math.log(1 - rand))
163
+ scale = standard_deviation * rho
164
+ mean + scale * Math.cos(theta)
165
+ end
166
+
167
+ ##
168
+ # Produces a number between two provided values. Boundaries are inclusive.
169
+ #
170
+ # @param from [Integer] The lowest number to include.
171
+ # @param to [Integer] The highest number to include.
172
+ # @return [Integer]
173
+ #
174
+ # @example
175
+ # Faker::Number.between(from: 1, to: 10) #=> 7
176
+ #
177
+ # @faker.version 1.0.0
178
+ def between(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: 1.00, to: 5000.00)
179
+ warn_for_deprecated_arguments do |keywords|
180
+ keywords << :from if legacy_from != NOT_GIVEN
181
+ keywords << :to if legacy_to != NOT_GIVEN
182
+ end
183
+
184
+ Faker::Base.rand_in_range(from, to)
185
+ end
186
+
187
+ ##
188
+ # Produces a number within two provided values. Boundaries are inclusive or exclusive depending on the range passed.
189
+ #
190
+ # @param range [Range] The range from which to generate a number.
191
+ # @return [Integer]
192
+ #
193
+ # @example
194
+ # Faker::Number.within(range: 1..10) #=> 7
195
+ #
196
+ # @faker.version 1.0.0
197
+ def within(legacy_range = NOT_GIVEN, range: 1.00..5000.00)
198
+ warn_for_deprecated_arguments do |keywords|
199
+ keywords << :range if legacy_range != NOT_GIVEN
200
+ end
201
+
202
+ between(from: range.min, to: range.max)
203
+ end
204
+
205
+ ##
206
+ # Produces a positive float.
207
+ #
208
+ # @param from [Integer] The lower boundary.
209
+ # @param to [Integer] The higher boundary.
210
+ # @return [Float]
211
+ #
212
+ # @example
213
+ # Faker::Number.positive #=> 235.59238499107653
214
+ #
215
+ # @faker.version 1.0.0
216
+ def positive(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: 1.00, to: 5000.00)
217
+ warn_for_deprecated_arguments do |keywords|
218
+ keywords << :from if legacy_from != NOT_GIVEN
219
+ keywords << :to if legacy_to != NOT_GIVEN
220
+ end
221
+
222
+ random_number = between(from: from, to: to)
223
+
224
+ greater_than_zero(random_number)
225
+ end
226
+
227
+ ##
228
+ # Produces a negative float.
229
+ #
230
+ # @param from [Integer] The lower boundary.
231
+ # @param to [Integer] The higher boundary.
232
+ # @return [Float]
233
+ #
234
+ # @example
235
+ # Faker::Number.negative #=> -4480.042585669558
236
+ #
237
+ # @faker.version 1.0.0
238
+ def negative(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: -5000.00, to: -1.00)
239
+ warn_for_deprecated_arguments do |keywords|
240
+ keywords << :from if legacy_from != NOT_GIVEN
241
+ keywords << :to if legacy_to != NOT_GIVEN
242
+ end
243
+
244
+ random_number = between(from: from, to: to)
245
+
246
+ less_than_zero(random_number)
247
+ end
248
+
249
+ private
250
+
251
+ def generate(count)
252
+ return [] if count.zero?
253
+
254
+ Array.new(count) { digit }
255
+ end
256
+
257
+ def greater_than_zero(number)
258
+ should_be(number, :>)
259
+ end
260
+
261
+ def less_than_zero(number)
262
+ should_be(number, :<)
263
+ end
264
+
265
+ def should_be(number, method_to_compare)
266
+ if number.send(method_to_compare, 0)
267
+ number
268
+ else
269
+ number * -1
270
+ end
271
+ end
272
+ end
273
+ end
274
+ end