faker 1.1.2 → 3.1.1

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 (569) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +2383 -0
  3. data/History.md +176 -0
  4. data/License.txt +2 -2
  5. data/README.md +487 -47
  6. data/bin/faker +5 -0
  7. data/lib/faker/blockchain/aeternity.rb +70 -0
  8. data/lib/faker/blockchain/bitcoin.rb +60 -0
  9. data/lib/faker/blockchain/ethereum.rb +26 -0
  10. data/lib/faker/blockchain/tezos.rb +135 -0
  11. data/lib/faker/books/book.rb +61 -0
  12. data/lib/faker/books/culture_series.rb +83 -0
  13. data/lib/faker/books/dune.rb +124 -0
  14. data/lib/faker/books/lovecraft.rb +249 -0
  15. data/lib/faker/books/the_kingkiller_chronicle.rb +61 -0
  16. data/lib/faker/creature/animal.rb +22 -0
  17. data/lib/faker/creature/bird.rb +203 -0
  18. data/lib/faker/creature/cat.rb +50 -0
  19. data/lib/faker/creature/dog.rb +115 -0
  20. data/lib/faker/creature/horse.rb +37 -0
  21. data/lib/faker/default/address.rb +348 -0
  22. data/lib/faker/default/adjective.rb +35 -0
  23. data/lib/faker/default/alphanumeric.rb +67 -0
  24. data/lib/faker/default/ancient.rb +59 -0
  25. data/lib/faker/default/app.rb +68 -0
  26. data/lib/faker/default/appliance.rb +33 -0
  27. data/lib/faker/default/artist.rb +20 -0
  28. data/lib/faker/default/avatar.rb +49 -0
  29. data/lib/faker/default/bank.rb +199 -0
  30. data/lib/faker/default/barcode.rb +165 -0
  31. data/lib/faker/default/beer.rb +113 -0
  32. data/lib/faker/default/blood.rb +48 -0
  33. data/lib/faker/default/boolean.rb +23 -0
  34. data/lib/faker/default/bossa_nova.rb +33 -0
  35. data/lib/faker/default/business.rb +50 -0
  36. data/lib/faker/default/camera.rb +46 -0
  37. data/lib/faker/default/cannabis.rb +135 -0
  38. data/lib/faker/default/chile_rut.rb +92 -0
  39. data/lib/faker/default/chuck_norris.rb +25 -0
  40. data/lib/faker/default/code.rb +269 -0
  41. data/lib/faker/default/coffee.rb +82 -0
  42. data/lib/faker/default/coin.rb +33 -0
  43. data/lib/faker/default/color.rb +150 -0
  44. data/lib/faker/default/commerce.rb +157 -0
  45. data/lib/faker/default/company.rb +571 -0
  46. data/lib/faker/default/compass.rb +202 -0
  47. data/lib/faker/default/computer.rb +63 -0
  48. data/lib/faker/default/construction.rb +83 -0
  49. data/lib/faker/default/cosmere.rb +138 -0
  50. data/lib/faker/default/crypto.rb +61 -0
  51. data/lib/faker/default/crypto_coin.rb +82 -0
  52. data/lib/faker/default/currency.rb +46 -0
  53. data/lib/faker/default/date.rb +153 -0
  54. data/lib/faker/default/dc_comics.rb +70 -0
  55. data/lib/faker/default/demographic.rb +94 -0
  56. data/lib/faker/default/dessert.rb +48 -0
  57. data/lib/faker/default/device.rb +85 -0
  58. data/lib/faker/default/driving_licence.rb +121 -0
  59. data/lib/faker/default/drone.rb +332 -0
  60. data/lib/faker/default/educator.rb +102 -0
  61. data/lib/faker/default/electrical_components.rb +48 -0
  62. data/lib/faker/default/emotion.rb +33 -0
  63. data/lib/faker/default/esport.rb +72 -0
  64. data/lib/faker/default/file.rb +81 -0
  65. data/lib/faker/default/fillmurray.rb +38 -0
  66. data/lib/faker/default/finance.rb +112 -0
  67. data/lib/faker/default/food.rb +126 -0
  68. data/lib/faker/default/funny_name.rb +90 -0
  69. data/lib/faker/default/gender.rb +46 -0
  70. data/lib/faker/default/greek_philosophers.rb +33 -0
  71. data/lib/faker/default/hacker.rb +103 -0
  72. data/lib/faker/default/hipster.rb +155 -0
  73. data/lib/faker/default/hobby.rb +22 -0
  74. data/lib/faker/default/house.rb +33 -0
  75. data/lib/faker/default/id_number.rb +410 -0
  76. data/lib/faker/default/industry_segments.rb +61 -0
  77. data/lib/faker/default/internet.rb +582 -0
  78. data/lib/faker/default/internet_http.rb +48 -0
  79. data/lib/faker/default/invoice.rb +123 -0
  80. data/lib/faker/default/job.rb +61 -0
  81. data/lib/faker/default/json.rb +125 -0
  82. data/lib/faker/default/kpop.rb +85 -0
  83. data/lib/faker/default/lorem.rb +250 -0
  84. data/lib/faker/default/lorem_flickr.rb +110 -0
  85. data/lib/faker/default/markdown.rb +170 -0
  86. data/lib/faker/default/marketing.rb +22 -0
  87. data/lib/faker/default/measurement.rb +175 -0
  88. data/lib/faker/default/military.rb +98 -0
  89. data/lib/faker/default/mountain.rb +33 -0
  90. data/lib/faker/default/name.rb +152 -0
  91. data/lib/faker/default/nation.rb +73 -0
  92. data/lib/faker/default/nato_phonetic_alphabet.rb +20 -0
  93. data/lib/faker/default/nhs.rb +53 -0
  94. data/lib/faker/default/number.rb +244 -0
  95. data/lib/faker/default/omniauth.rb +471 -0
  96. data/lib/faker/default/phone_number.rb +133 -0
  97. data/lib/faker/default/placeholdit.rb +52 -0
  98. data/lib/faker/default/programming_language.rb +33 -0
  99. data/lib/faker/default/relationship.rb +87 -0
  100. data/lib/faker/default/religion.rb +6 -0
  101. data/lib/faker/default/restaurant.rb +63 -0
  102. data/lib/faker/default/science.rb +154 -0
  103. data/lib/faker/default/slack_emoji.rb +124 -0
  104. data/lib/faker/default/source.rb +63 -0
  105. data/lib/faker/default/south_africa.rb +141 -0
  106. data/lib/faker/default/space.rb +191 -0
  107. data/lib/faker/default/string.rb +59 -0
  108. data/lib/faker/default/stripe.rb +126 -0
  109. data/lib/faker/default/subscription.rb +70 -0
  110. data/lib/faker/default/superhero.rb +72 -0
  111. data/lib/faker/default/tea.rb +41 -0
  112. data/lib/faker/default/team.rb +74 -0
  113. data/lib/faker/default/time.rb +149 -0
  114. data/lib/faker/default/twitter.rb +207 -0
  115. data/lib/faker/default/types.rb +160 -0
  116. data/lib/faker/default/university.rb +75 -0
  117. data/lib/faker/default/vehicle.rb +320 -0
  118. data/lib/faker/default/verb.rb +72 -0
  119. data/lib/faker/default/vulnerability_identifier.rb +23 -0
  120. data/lib/faker/default/world_cup.rb +77 -0
  121. data/lib/faker/fantasy/tolkien.rb +67 -0
  122. data/lib/faker/games/clash_of_clans.rb +48 -0
  123. data/lib/faker/games/control.rb +113 -0
  124. data/lib/faker/games/dnd.rb +136 -0
  125. data/lib/faker/games/dota.rb +89 -0
  126. data/lib/faker/games/elder_scrolls.rb +139 -0
  127. data/lib/faker/games/fallout.rb +62 -0
  128. data/lib/faker/games/game.rb +48 -0
  129. data/lib/faker/games/half_life.rb +48 -0
  130. data/lib/faker/games/heroes.rb +61 -0
  131. data/lib/faker/games/heroes_of_the_storm.rb +72 -0
  132. data/lib/faker/games/league_of_legends.rb +87 -0
  133. data/lib/faker/games/minecraft.rb +113 -0
  134. data/lib/faker/games/myst.rb +74 -0
  135. data/lib/faker/games/overwatch.rb +48 -0
  136. data/lib/faker/games/pokemon.rb +48 -0
  137. data/lib/faker/games/sonic_the_hedgehog.rb +48 -0
  138. data/lib/faker/games/street_fighter.rb +61 -0
  139. data/lib/faker/games/super_mario.rb +48 -0
  140. data/lib/faker/games/super_smash_bros.rb +35 -0
  141. data/lib/faker/games/tarkov.rb +205 -0
  142. data/lib/faker/games/touhou.rb +75 -0
  143. data/lib/faker/games/warhammer_fantasy.rb +74 -0
  144. data/lib/faker/games/witcher.rb +126 -0
  145. data/lib/faker/games/world_of_warcraft.rb +60 -0
  146. data/lib/faker/games/zelda.rb +62 -0
  147. data/lib/faker/japanese_media/conan.rb +48 -0
  148. data/lib/faker/japanese_media/cowboy_bebop.rb +61 -0
  149. data/lib/faker/japanese_media/doraemon.rb +48 -0
  150. data/lib/faker/japanese_media/dragon_ball.rb +48 -0
  151. data/lib/faker/japanese_media/fullmetal_alchemist_brotherhood.rb +48 -0
  152. data/lib/faker/japanese_media/kamen_rider.rb +102 -0
  153. data/lib/faker/japanese_media/naruto.rb +61 -0
  154. data/lib/faker/japanese_media/one_piece.rb +87 -0
  155. data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
  156. data/lib/faker/japanese_media/sword_art_online.rb +61 -0
  157. data/lib/faker/locations/australia.rb +47 -0
  158. data/lib/faker/movies/back_to_the_future.rb +49 -0
  159. data/lib/faker/movies/departed.rb +49 -0
  160. data/lib/faker/movies/ghostbusters.rb +49 -0
  161. data/lib/faker/movies/hackers.rb +48 -0
  162. data/lib/faker/movies/harry_potter.rb +87 -0
  163. data/lib/faker/movies/hitchhikers_guide_to_the_galaxy.rb +106 -0
  164. data/lib/faker/movies/hobbit.rb +62 -0
  165. data/lib/faker/movies/how_to_train_your_dragon.rb +48 -0
  166. data/lib/faker/movies/lebowski.rb +48 -0
  167. data/lib/faker/movies/lord_of_the_rings.rb +49 -0
  168. data/lib/faker/movies/movie.rb +33 -0
  169. data/lib/faker/movies/princess_bride.rb +36 -0
  170. data/lib/faker/movies/room.rb +63 -0
  171. data/lib/faker/movies/star_wars.rb +269 -0
  172. data/lib/faker/movies/tron.rb +161 -0
  173. data/lib/faker/movies/v_for_vendetta.rb +50 -0
  174. data/lib/faker/music/grateful_dead.rb +37 -0
  175. data/lib/faker/music/hiphop.rb +48 -0
  176. data/lib/faker/music/music.rb +145 -0
  177. data/lib/faker/music/opera.rb +298 -0
  178. data/lib/faker/music/pearl_jam.rb +50 -0
  179. data/lib/faker/music/phish.rb +48 -0
  180. data/lib/faker/music/prince.rb +64 -0
  181. data/lib/faker/music/rock_band.rb +34 -0
  182. data/lib/faker/music/rush.rb +37 -0
  183. data/lib/faker/music/show.rb +49 -0
  184. data/lib/faker/music/umphreys_mcgee.rb +22 -0
  185. data/lib/faker/quotes/chiquito.rb +80 -0
  186. data/lib/faker/quotes/quote.rb +111 -0
  187. data/lib/faker/quotes/rajnikanth.rb +27 -0
  188. data/lib/faker/quotes/shakespeare.rb +111 -0
  189. data/lib/faker/religion/bible.rb +50 -0
  190. data/lib/faker/sports/basketball.rb +61 -0
  191. data/lib/faker/sports/football.rb +74 -0
  192. data/lib/faker/sports/mountaineering.rb +22 -0
  193. data/lib/faker/sports/sport.rb +116 -0
  194. data/lib/faker/sports/volleyball.rb +74 -0
  195. data/lib/faker/travel/airport.rb +47 -0
  196. data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +37 -0
  197. data/lib/faker/tv_shows/big_bang_theory.rb +37 -0
  198. data/lib/faker/tv_shows/bojack_horseman.rb +51 -0
  199. data/lib/faker/tv_shows/breaking_bad.rb +37 -0
  200. data/lib/faker/tv_shows/brooklyn_nine_nine.rb +38 -0
  201. data/lib/faker/tv_shows/buffy.rb +89 -0
  202. data/lib/faker/tv_shows/community.rb +38 -0
  203. data/lib/faker/tv_shows/dr_who.rb +115 -0
  204. data/lib/faker/tv_shows/dumb_and_dumber.rb +51 -0
  205. data/lib/faker/tv_shows/family_guy.rb +51 -0
  206. data/lib/faker/tv_shows/final_space.rb +51 -0
  207. data/lib/faker/tv_shows/friends.rb +50 -0
  208. data/lib/faker/tv_shows/futurama.rb +65 -0
  209. data/lib/faker/tv_shows/game_of_thrones.rb +77 -0
  210. data/lib/faker/tv_shows/hey_arnold.rb +50 -0
  211. data/lib/faker/tv_shows/how_i_met_your_mother.rb +64 -0
  212. data/lib/faker/tv_shows/michael_scott.rb +23 -0
  213. data/lib/faker/tv_shows/new_girl.rb +38 -0
  214. data/lib/faker/tv_shows/parks_and_rec.rb +37 -0
  215. data/lib/faker/tv_shows/rick_and_morty.rb +51 -0
  216. data/lib/faker/tv_shows/ru_paul.rb +37 -0
  217. data/lib/faker/tv_shows/seinfeld.rb +51 -0
  218. data/lib/faker/tv_shows/silicon_valley.rb +118 -0
  219. data/lib/faker/tv_shows/simpsons.rb +65 -0
  220. data/lib/faker/tv_shows/south_park.rb +38 -0
  221. data/lib/faker/tv_shows/spongebob.rb +50 -0
  222. data/lib/faker/tv_shows/star_trek.rb +63 -0
  223. data/lib/faker/tv_shows/stargate.rb +51 -0
  224. data/lib/faker/tv_shows/stranger_things.rb +38 -0
  225. data/lib/faker/tv_shows/suits.rb +37 -0
  226. data/lib/faker/tv_shows/supernatural.rb +48 -0
  227. data/lib/faker/tv_shows/the_expanse.rb +63 -0
  228. data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +64 -0
  229. data/lib/faker/tv_shows/the_it_crowd.rb +64 -0
  230. data/lib/faker/tv_shows/the_office.rb +37 -0
  231. data/lib/faker/tv_shows/the_thick_of_it.rb +51 -0
  232. data/lib/faker/tv_shows/twin_peaks.rb +51 -0
  233. data/lib/faker/tv_shows/venture_bros.rb +65 -0
  234. data/lib/faker/version.rb +4 -2
  235. data/lib/faker.rb +170 -58
  236. data/lib/helpers/base58.rb +22 -0
  237. data/lib/helpers/char.rb +61 -0
  238. data/lib/helpers/unique_generator.rb +60 -0
  239. data/lib/locales/README.md +40 -0
  240. data/lib/locales/ar.yml +106 -0
  241. data/lib/locales/bg.yml +44 -0
  242. data/lib/locales/ca-CAT.yml +24 -0
  243. data/lib/locales/ca.yml +23 -0
  244. data/lib/locales/da-DK.yml +72 -0
  245. data/lib/locales/de-AT.yml +57 -0
  246. data/lib/locales/de-CH.yml +1713 -0
  247. data/lib/locales/de.yml +131 -9
  248. data/lib/locales/ee.yml +61 -0
  249. data/lib/locales/en/README.md +13 -0
  250. data/lib/locales/en/address.yml +586 -0
  251. data/lib/locales/en/adjective.yml +179 -0
  252. data/lib/locales/en/airport.yml +381 -0
  253. data/lib/locales/en/ancient.yml +7 -0
  254. data/lib/locales/en/animal.yml +6 -0
  255. data/lib/locales/en/app.yml +8 -0
  256. data/lib/locales/en/appliance.yml +5 -0
  257. data/lib/locales/en/aqua_teen_hunger_force.yml +36 -0
  258. data/lib/locales/en/artist.yml +4 -0
  259. data/lib/locales/en/australia.yml +107 -0
  260. data/lib/locales/en/back_to_the_future.yml +120 -0
  261. data/lib/locales/en/bank.yml +302 -0
  262. data/lib/locales/en/barcode.yml +24 -0
  263. data/lib/locales/en/basketball.yml +99 -0
  264. data/lib/locales/en/beer.yml +9 -0
  265. data/lib/locales/en/bible.yml +90 -0
  266. data/lib/locales/en/big_bang_theory.yml +38 -0
  267. data/lib/locales/en/bird.yml +1281 -0
  268. data/lib/locales/en/blood.yml +13 -0
  269. data/lib/locales/en/bojack_horseman.yml +6 -0
  270. data/lib/locales/en/book.yml +491 -0
  271. data/lib/locales/en/bossa_nova.yml +6 -0
  272. data/lib/locales/en/breaking_bad.yml +28 -0
  273. data/lib/locales/en/brooklyn_nine_nine.yml +35 -0
  274. data/lib/locales/en/buffy.yml +260 -0
  275. data/lib/locales/en/business.yml +5 -0
  276. data/lib/locales/en/camera.yml +611 -0
  277. data/lib/locales/en/cannabis.yml +13 -0
  278. data/lib/locales/en/cat.yml +7 -0
  279. data/lib/locales/en/chiquito.yml +64 -0
  280. data/lib/locales/en/chuck_norris.yml +82 -0
  281. data/lib/locales/en/clash_of_clan.yml +101 -0
  282. data/lib/locales/en/code.yml +4 -0
  283. data/lib/locales/en/coffee.yml +31 -0
  284. data/lib/locales/en/coin.yml +6 -0
  285. data/lib/locales/en/color.yml +4 -0
  286. data/lib/locales/en/commerce.yml +28 -0
  287. data/lib/locales/en/community.yml +33 -0
  288. data/lib/locales/en/company.yml +22 -0
  289. data/lib/locales/en/compass.yml +34 -0
  290. data/lib/locales/en/computer.yml +55 -0
  291. data/lib/locales/en/conan.yml +171 -0
  292. data/lib/locales/en/construction.yml +425 -0
  293. data/lib/locales/en/control.yml +247 -0
  294. data/lib/locales/en/cosmere.yml +57 -0
  295. data/lib/locales/en/cowboy_bebop.yml +163 -0
  296. data/lib/locales/en/crypto_coin.yml +25 -0
  297. data/lib/locales/en/culture_series.yml +307 -0
  298. data/lib/locales/en/currency.yml +6 -0
  299. data/lib/locales/en/dc_comics.yml +52 -0
  300. data/lib/locales/en/demographic.yml +221 -0
  301. data/lib/locales/en/departed.yml +50 -0
  302. data/lib/locales/en/dessert.yml +6 -0
  303. data/lib/locales/en/device.yml +115 -0
  304. data/lib/locales/en/dnd.yml +451 -0
  305. data/lib/locales/en/dog.yml +11 -0
  306. data/lib/locales/en/doraemon.yml +286 -0
  307. data/lib/locales/en/dota.yml +693 -0
  308. data/lib/locales/en/dr_who.yml +96 -0
  309. data/lib/locales/en/dragon_ball.yml +246 -0
  310. data/lib/locales/en/driving_license.yml +181 -0
  311. data/lib/locales/en/drone.yml +95 -0
  312. data/lib/locales/en/dumb_and_dumber.yml +59 -0
  313. data/lib/locales/en/dune.yml +298 -0
  314. data/lib/locales/en/educator.yml +80 -0
  315. data/lib/locales/en/elder_scrolls.yml +585 -0
  316. data/lib/locales/en/electrical_components.yml +6 -0
  317. data/lib/locales/en/emotion.yml +480 -0
  318. data/lib/locales/en/esport.yml +8 -0
  319. data/lib/locales/en/fallout.yml +315 -0
  320. data/lib/locales/en/family_guy.yml +7 -0
  321. data/lib/locales/en/file.yml +13 -0
  322. data/lib/locales/en/final_space.yml +37 -0
  323. data/lib/locales/en/finance.yml +189 -0
  324. data/lib/locales/en/fma_brotherhood.yml +78 -0
  325. data/lib/locales/en/food.yml +1057 -0
  326. data/lib/locales/en/football.yml +8 -0
  327. data/lib/locales/en/fresh_prince_of_bel_air.yml +73 -0
  328. data/lib/locales/en/friends.yml +6 -0
  329. data/lib/locales/en/funny_name.yml +4 -0
  330. data/lib/locales/en/futurama.yml +344 -0
  331. data/lib/locales/en/game.yml +294 -0
  332. data/lib/locales/en/game_of_thrones.yml +8 -0
  333. data/lib/locales/en/gender.yml +6 -0
  334. data/lib/locales/en/ghostbusters.yml +91 -0
  335. data/lib/locales/en/grateful_dead.yml +48 -0
  336. data/lib/locales/en/greek_philosophers.yml +26 -0
  337. data/lib/locales/en/hacker.yml +8 -0
  338. data/lib/locales/en/hackers.yml +53 -0
  339. data/lib/locales/en/half_life.yml +88 -0
  340. data/lib/locales/en/harry_potter.yml +9 -0
  341. data/lib/locales/en/heroes.yml +411 -0
  342. data/lib/locales/en/heroes_of_the_storm.yml +134 -0
  343. data/lib/locales/en/hey_arnold.yml +24 -0
  344. data/lib/locales/en/hipster.yml +4 -0
  345. data/lib/locales/en/hitchhikers_guide_to_the_galaxy.yml +45 -0
  346. data/lib/locales/en/hobby.yml +171 -0
  347. data/lib/locales/en/horse.yml +6 -0
  348. data/lib/locales/en/house.yml +5 -0
  349. data/lib/locales/en/how_i_met_your_mother.yml +28 -0
  350. data/lib/locales/en/how_to_train_your_dragon.yml +174 -0
  351. data/lib/locales/en/id_number.yml +5 -0
  352. data/lib/locales/en/industry_segments.yml +7 -0
  353. data/lib/locales/en/internet.yml +155 -0
  354. data/lib/locales/en/invoice.yml +6 -0
  355. data/lib/locales/en/jack_handey.yml +54 -0
  356. data/lib/locales/en/job.yml +15 -0
  357. data/lib/locales/en/kamen_rider.yml +452 -0
  358. data/lib/locales/en/kpop.yml +83 -0
  359. data/lib/locales/en/league_of_legends.yml +289 -0
  360. data/lib/locales/en/lebowski.yml +43 -0
  361. data/lib/locales/en/lorem.yml +11 -0
  362. data/lib/locales/en/lovecraft.yml +79 -0
  363. data/lib/locales/en/markdown.yml +5 -0
  364. data/lib/locales/en/marketing.yml +4 -0
  365. data/lib/locales/en/measurement.yml +11 -0
  366. data/lib/locales/en/michael_scott.yml +45 -0
  367. data/lib/locales/en/military.yml +182 -0
  368. data/lib/locales/en/minecraft.yml +663 -0
  369. data/lib/locales/en/mountain.yml +171 -0
  370. data/lib/locales/en/mountaineering.yml +14 -0
  371. data/lib/locales/en/movie.yml +197 -0
  372. data/lib/locales/en/music.yml +464 -0
  373. data/lib/locales/en/myst.yml +104 -0
  374. data/lib/locales/en/name.yml +26 -0
  375. data/lib/locales/en/naruto.yml +230 -0
  376. data/lib/locales/en/nation.yml +11 -0
  377. data/lib/locales/en/nato_phonetic_alphabet.yml +4 -0
  378. data/lib/locales/en/new_girl.yml +40 -0
  379. data/lib/locales/en/one_piece.yml +9 -0
  380. data/lib/locales/en/opera.yml +340 -0
  381. data/lib/locales/en/overwatch.yml +2652 -0
  382. data/lib/locales/en/parks_and_rec.yml +7 -0
  383. data/lib/locales/en/pearl_jam.yml +213 -0
  384. data/lib/locales/en/phish.yml +395 -0
  385. data/lib/locales/en/phone_number.yml +7 -0
  386. data/lib/locales/en/pokemon.yml +421 -0
  387. data/lib/locales/en/prince.yml +227 -0
  388. data/lib/locales/en/princess_bride.yml +5 -0
  389. data/lib/locales/en/programming_language.yml +6 -0
  390. data/lib/locales/en/quote.yml +695 -0
  391. data/lib/locales/en/rajnikanth.yml +77 -0
  392. data/lib/locales/en/relationship.yml +10 -0
  393. data/lib/locales/en/restaurant.yml +129 -0
  394. data/lib/locales/en/rick_and_morty.yml +6 -0
  395. data/lib/locales/en/rock_band.yml +5 -0
  396. data/lib/locales/en/room.yml +68 -0
  397. data/lib/locales/en/rupaul.yml +125 -0
  398. data/lib/locales/en/rush.yml +32 -0
  399. data/lib/locales/en/science.yml +484 -0
  400. data/lib/locales/en/seinfeld.yml +6 -0
  401. data/lib/locales/en/shakespeare.yml +53 -0
  402. data/lib/locales/en/show.yml +597 -0
  403. data/lib/locales/en/silicon_valley.yml +53 -0
  404. data/lib/locales/en/simpsons.yml +694 -0
  405. data/lib/locales/en/slack_emoji.yml +20 -0
  406. data/lib/locales/en/sonic_the_hedgehog.yml +410 -0
  407. data/lib/locales/en/source.yml +51 -0
  408. data/lib/locales/en/south_park.yml +5 -0
  409. data/lib/locales/en/space.yml +17 -0
  410. data/lib/locales/en/spongebob.yml +489 -0
  411. data/lib/locales/en/sport.yml +130 -0
  412. data/lib/locales/en/star_trek.yml +7 -0
  413. data/lib/locales/en/star_wars.yml +606 -0
  414. data/lib/locales/en/stargate.yml +21 -0
  415. data/lib/locales/en/stranger_thing.yml +36 -0
  416. data/lib/locales/en/street_fighter.yml +1524 -0
  417. data/lib/locales/en/stripe.yml +42 -0
  418. data/lib/locales/en/studio_ghibli.yml +107 -0
  419. data/lib/locales/en/subscription.yml +8 -0
  420. data/lib/locales/en/suits.yml +45 -0
  421. data/lib/locales/en/super_mario.yml +58 -0
  422. data/lib/locales/en/super_smash_bros.yml +223 -0
  423. data/lib/locales/en/superhero.yml +12 -0
  424. data/lib/locales/en/supernatural.yml +141 -0
  425. data/lib/locales/en/sword_art_online.yml +334 -0
  426. data/lib/locales/en/tarkov.yml +593 -0
  427. data/lib/locales/en/tea.yml +172 -0
  428. data/lib/locales/en/team.yml +8 -0
  429. data/lib/locales/en/the_expanse.yml +7 -0
  430. data/lib/locales/en/the_it_crowd.yml +155 -0
  431. data/lib/locales/en/the_kingkiller_chronicle.yml +56 -0
  432. data/lib/locales/en/the_office.yml +86 -0
  433. data/lib/locales/en/the_thick_of_it.yml +6 -0
  434. data/lib/locales/en/tolkien.yml +2453 -0
  435. data/lib/locales/en/touhou.yml +839 -0
  436. data/lib/locales/en/tron.yml +227 -0
  437. data/lib/locales/en/twin_peaks.yml +6 -0
  438. data/lib/locales/en/umphreys_mcgee.yml +4 -0
  439. data/lib/locales/en/university.yml +10 -0
  440. data/lib/locales/en/v_for_vendetta.yml +163 -0
  441. data/lib/locales/en/vehicle.yml +2814 -0
  442. data/lib/locales/en/venture_bros.yml +7 -0
  443. data/lib/locales/en/verbs.yml +8 -0
  444. data/lib/locales/en/volleyball.yml +501 -0
  445. data/lib/locales/en/warhammer_fantasy.yml +582 -0
  446. data/lib/locales/en/witcher.yml +430 -0
  447. data/lib/locales/en/world_cup.yml +271 -0
  448. data/lib/locales/en/world_of_warcraft.yml +126 -0
  449. data/lib/locales/en/yoda.yml +4 -0
  450. data/lib/locales/en/zelda.yml +966 -0
  451. data/lib/locales/en-AU.yml +67 -0
  452. data/lib/locales/{en-bork.yml → en-BORK.yml} +1 -1
  453. data/lib/locales/en-CA.yml +39 -0
  454. data/lib/locales/{en-gb.yml → en-GB.yml} +3 -3
  455. data/lib/locales/{en-ind.yml → en-IND.yml} +10 -4
  456. data/lib/locales/en-MS.yml +48 -0
  457. data/lib/locales/en-NEP.yml +52 -0
  458. data/lib/locales/en-NG.yml +77 -0
  459. data/lib/locales/en-NZ.yml +165 -0
  460. data/lib/locales/en-PAK.yml +19 -0
  461. data/lib/locales/en-SG.yml +36 -0
  462. data/lib/locales/en-TH.yml +360 -0
  463. data/lib/locales/en-UG.yml +128 -0
  464. data/lib/locales/en-US.yml +128 -0
  465. data/lib/locales/en-ZA.yml +147 -0
  466. data/lib/locales/en-au-ocker.yml +34 -0
  467. data/lib/locales/en.yml +6 -67
  468. data/lib/locales/es-AR.yml +4600 -0
  469. data/lib/locales/es-MX.yml +104 -0
  470. data/lib/locales/es.yml +149 -0
  471. data/lib/locales/fa.yml +12 -0
  472. data/lib/locales/fi-FI.yml +36 -0
  473. data/lib/locales/fr/address.yml +20 -0
  474. data/lib/locales/fr/adjective.yml +266 -0
  475. data/lib/locales/fr/ancient.yml +141 -0
  476. data/lib/locales/fr/animal.yml +5 -0
  477. data/lib/locales/fr/appliance.yml +4 -0
  478. data/lib/locales/fr/book.yml +7 -0
  479. data/lib/locales/fr/color.yml +4 -0
  480. data/lib/locales/fr/company.yml +17 -0
  481. data/lib/locales/fr/compass.yml +23 -0
  482. data/lib/locales/fr/demographic.yml +4 -0
  483. data/lib/locales/fr/gender.yml +6 -0
  484. data/lib/locales/fr/internet.yml +5 -0
  485. data/lib/locales/fr/lorem.yml +5 -0
  486. data/lib/locales/fr/measurement.yml +7 -0
  487. data/lib/locales/fr/name.yml +21 -0
  488. data/lib/locales/fr/phone_number.yml +7 -0
  489. data/lib/locales/fr/pokemon.yml +7 -0
  490. data/lib/locales/fr-CA.yml +106 -0
  491. data/lib/locales/fr-CH.yml +77 -0
  492. data/lib/locales/fr.yml +1 -51
  493. data/lib/locales/he.yml +27 -0
  494. data/lib/locales/hy.yml +411 -0
  495. data/lib/locales/id.yml +26 -0
  496. data/lib/locales/it.yml +71 -0
  497. data/lib/locales/ja/README.md +13 -0
  498. data/lib/locales/ja/address.yml +120539 -0
  499. data/lib/locales/ja/adjective.yml +148 -0
  500. data/lib/locales/ja/ancient.yml +4 -0
  501. data/lib/locales/ja/animal.yml +5 -0
  502. data/lib/locales/ja/bank.yml +4 -0
  503. data/lib/locales/ja/book.yml +7 -0
  504. data/lib/locales/ja/cat.yml +5 -0
  505. data/lib/locales/ja/coffee.yml +4 -0
  506. data/lib/locales/ja/color.yml +4 -0
  507. data/lib/locales/ja/commerce.yml +11 -0
  508. data/lib/locales/ja/company.yml +8 -0
  509. data/lib/locales/ja/dog.yml +6 -0
  510. data/lib/locales/ja/emotion.yml +51 -0
  511. data/lib/locales/ja/food.yml +4 -0
  512. data/lib/locales/ja/gender.yml +4 -0
  513. data/lib/locales/ja/lorem.yml +9 -0
  514. data/lib/locales/ja/name.yml +13 -0
  515. data/lib/locales/ja/naruto.yml +230 -0
  516. data/lib/locales/ja/overwatch.yml +5 -0
  517. data/lib/locales/ja/phone_number.yml +7 -0
  518. data/lib/locales/ja/pokemon.yml +7 -0
  519. data/lib/locales/ja/relationship.yml +10 -0
  520. data/lib/locales/ja/restaurant.yml +11 -0
  521. data/lib/locales/ja/space.yml +5 -0
  522. data/lib/locales/ja/studio_ghibli.yml +112 -0
  523. data/lib/locales/ja/subscription.yml +8 -0
  524. data/lib/locales/ja/super_mario.yml +9 -0
  525. data/lib/locales/ja/super_smash_bros.yml +8 -0
  526. data/lib/locales/ja/university.yml +9 -0
  527. data/lib/locales/ja/zelda.yml +5 -0
  528. data/lib/locales/ko.yml +132 -0
  529. data/lib/locales/lt.yml +34 -0
  530. data/lib/locales/lv.yml +55 -0
  531. data/lib/locales/mi-NZ.yml +281 -0
  532. data/lib/locales/{no-nb.yml → nb-NO.yml} +20 -8
  533. data/lib/locales/nl.yml +45 -30
  534. data/lib/locales/no.yml +7 -0
  535. data/lib/locales/pl.yml +20 -10
  536. data/lib/locales/pt-BR.yml +725 -0
  537. data/lib/locales/{pt-br.yml → pt.yml} +25 -15
  538. data/lib/locales/ru.yml +117 -0
  539. data/lib/locales/sk.yml +80 -0
  540. data/lib/locales/sv.yml +81 -0
  541. data/lib/locales/th.yml +380 -0
  542. data/lib/locales/tr.yml +40 -0
  543. data/lib/locales/uk.yml +88 -0
  544. data/lib/locales/vi.yml +8 -3
  545. data/lib/locales/zh-CN.yml +56 -0
  546. data/lib/locales/zh-TW.yml +29 -0
  547. metadata +731 -97
  548. data/History.txt +0 -103
  549. data/lib/extensions/array.rb +0 -7
  550. data/lib/extensions/symbol.rb +0 -9
  551. data/lib/faker/address.rb +0 -49
  552. data/lib/faker/company.rb +0 -26
  553. data/lib/faker/internet.rb +0 -71
  554. data/lib/faker/lorem.rb +0 -59
  555. data/lib/faker/name.rb +0 -22
  556. data/lib/faker/phone_number.rb +0 -17
  557. data/lib/locales/de-ch.yml +0 -19
  558. data/lib/locales/en-au.yml +0 -22
  559. data/lib/locales/en-ca.yml +0 -14
  560. data/lib/locales/en-us.yml +0 -6
  561. data/test/test_faker.rb +0 -29
  562. data/test/test_faker_city.rb +0 -45
  563. data/test/test_faker_internet.rb +0 -56
  564. data/test/test_faker_lorem.rb +0 -69
  565. data/test/test_faker_name.rb +0 -20
  566. data/test/test_faker_street.rb +0 -44
  567. data/test/test_flexible.rb +0 -56
  568. data/test/test_helper.rb +0 -5
  569. data/test/test_locale.rb +0 -41
@@ -0,0 +1,110 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class LoremFlickr < Base
5
+ class << self
6
+ SUPPORTED_COLORIZATIONS = %w[red green blue].freeze
7
+
8
+ ##
9
+ # Produces a random image URL from loremflickr.com.
10
+ #
11
+ # @param size [String] Specifies the size of image to generate.
12
+ # @param search_terms [Array<String>] Adds search terms to the image URL.
13
+ # @param match_all [Boolean] Add "all" as part of the URL.
14
+ # @return [String]
15
+ #
16
+ # @example
17
+ # Faker::LoremFlickr.image #=> "https://loremflickr.com/300/300"
18
+ # Faker::LoremFlickr.image(size: "50x60") #=> "https://loremflickr.com/50/60"
19
+ # Faker::LoremFlickr.image(size: "50x60", search_terms: ['sports']) #=> "https://loremflickr.com/50/60/sports"
20
+ # Faker::LoremFlickr.image(size: "50x60", search_terms: ['sports', 'fitness']) #=> "https://loremflickr.com/50/60/sports,fitness"
21
+ # Faker::LoremFlickr.image(size: "50x60", search_terms: ['sports', 'fitness'], match_all: true) #=> "https://loremflickr.com/50/60/sports,fitness/all"
22
+ #
23
+ # @faker.version 1.9.0
24
+ def image(size: '300x300', search_terms: [], match_all: false)
25
+ build_url(size, nil, search_terms, match_all)
26
+ end
27
+
28
+ ##
29
+ # Produces a random grayscale image URL from loremflickr.com.
30
+ #
31
+ # @param size [String] Specifies the size of image to generate.
32
+ # @param search_terms [Array<String>] Adds search terms to the image URL.
33
+ # @param match_all [Boolean] Add "all" as part of the URL.
34
+ # @return [String]
35
+ #
36
+ # @example
37
+ # Faker::LoremFlickr.grayscale_image #=> "https://loremflickr.com/g/300/300/all"
38
+ # Faker::LoremFlickr.grayscale_image(size: "50x60") #=> "https://loremflickr.com/g/50/60/all"
39
+ # Faker::LoremFlickr.grayscale_image(size: "50x60", search_terms: ['sports']) #=> "https://loremflickr.com/g/50/60/sports"
40
+ # Faker::LoremFlickr.grayscale_image(size: "50x60", search_terms: ['sports', 'fitness']) #=> "https://loremflickr.com/50/60/g/sports,fitness"
41
+ # Faker::LoremFlickr.grayscale_image(size: "50x60", search_terms: ['sports', 'fitness'], match_all: true) #=> "https://loremflickr.com/g/50/60/sports,fitness/all"
42
+ #
43
+ # @faker.version 1.9.0
44
+ def grayscale_image(size: '300x300', search_terms: ['all'], match_all: false)
45
+ raise ArgumentError, 'Search terms must be specified for grayscale images' unless search_terms.any?
46
+
47
+ build_url(size, 'g', search_terms, match_all)
48
+ end
49
+
50
+ ##
51
+ # Produces a random pixelated image URL from loremflickr.com.
52
+ #
53
+ # @param size [String] Specifies the size of image to generate.
54
+ # @param search_terms [Array<String>] Adds search terms to the image URL.
55
+ # @param match_all [Boolean] Add "all" as part of the URL.
56
+ # @return [String]
57
+ #
58
+ # @example
59
+ # Faker::LoremFlickr.pixelated_image #=> "https://loremflickr.com/p/300/300/all"
60
+ # Faker::LoremFlickr.pixelated_image(size: "50x60") #=> "https://loremflickr.com/p/50/60/all"
61
+ # Faker::LoremFlickr.pixelated_image(size: "50x60", search_terms: ['sports']) #=> "https://loremflickr.com/p/50/60/sports"
62
+ # Faker::LoremFlickr.pixelated_image(size: "50x60", search_terms: ['sports', 'fitness']) #=> "https://loremflickr.com/p/50/60/sports,fitness"
63
+ # Faker::LoremFlickr.pixelated_image(size: "50x60", search_terms: ['sports', 'fitness'], match_all: true) #=> "https://loremflickr.com/p/50/60/sports,fitness/all"
64
+ #
65
+ # @faker.version 1.9.0
66
+ def pixelated_image(size: '300x300', search_terms: ['all'], match_all: false)
67
+ raise ArgumentError, 'Search terms must be specified for pixelated images' unless search_terms.any?
68
+
69
+ build_url(size, 'p', search_terms, match_all)
70
+ end
71
+
72
+ ##
73
+ # Produces a random colorized image URL from loremflickr.com.
74
+ #
75
+ # @param size [String] Specifies the size of image to generate.
76
+ # @param color [String] Specifies the color of image to generate.
77
+ # @param search_terms [Array<String>] Adds search terms to the image URL.
78
+ # @param match_all [Boolean] Add "all" as part of the URL.
79
+ # @return [String]
80
+ #
81
+ # @example
82
+ # Faker::LoremFlickr.image #=> "https://loremflickr.com/red/300/300/all"
83
+ # Faker::LoremFlickr.image(size: "50x60", color: 'blue') #=> "https://loremflickr.com/blue/50/60/all"
84
+ # Faker::LoremFlickr.image(size: "50x60", color: 'blue', search_terms: ['sports']) #=> "https://loremflickr.com/blue/50/60/sports"
85
+ # Faker::LoremFlickr.image(size: "50x60", color: 'blue', search_terms: ['sports', 'fitness']) #=> "https://loremflickr.com/blue/50/60/sports,fitness"
86
+ # Faker::LoremFlickr.image(size: "50x60", color: 'blue', search_terms: ['sports', 'fitness'], match_all: true) #=> "https://loremflickr.com/blue/50/60/sports,fitness/all"
87
+ #
88
+ # @faker.version 1.9.0
89
+ def colorized_image(size: '300x300', color: 'red', search_terms: ['all'], match_all: false)
90
+ raise ArgumentError, 'Search terms must be specified for colorized images' unless search_terms.any?
91
+ raise ArgumentError, "Supported colorizations are #{SUPPORTED_COLORIZATIONS.join(', ')}" unless SUPPORTED_COLORIZATIONS.include?(color)
92
+
93
+ build_url(size, color, search_terms, match_all)
94
+ end
95
+
96
+ private
97
+
98
+ def build_url(size, format, search_terms, match_all)
99
+ raise ArgumentError, 'Size should be specified in format 300x300' unless size =~ /^[0-9]+x[0-9]+$/
100
+
101
+ url_parts = ['https://loremflickr.com']
102
+ url_parts << format
103
+ url_parts += size.split('x')
104
+ url_parts << search_terms.compact.join(',') if search_terms.any?
105
+ url_parts << 'all' if match_all
106
+ url_parts.compact.join('/')
107
+ end
108
+ end
109
+ end
110
+ end
@@ -0,0 +1,170 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Markdown < Base
5
+ class << self
6
+ ##
7
+ # Produces a random header format.
8
+ #
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::Markdown.headers #=> "##### Autem"
13
+ #
14
+ # @faker.version 1.8.0
15
+ def headers
16
+ "#{fetch('markdown.headers')} #{Lorem.word.capitalize}"
17
+ end
18
+
19
+ ##
20
+ # Produces a random emphasis formatting on a random word in two sentences.
21
+ #
22
+ # @return [String]
23
+ #
24
+ # @example
25
+ # Faker::Markdown.emphasis #=> "_Incidunt atque quis repellat id impedit. Quas numquam quod incidunt dicta non. Blanditiis delectus laudantium atque reiciendis qui._"
26
+ #
27
+ # @faker.version 1.8.0
28
+ def emphasis
29
+ paragraph = Faker::Lorem.paragraph(sentence_count: 3)
30
+ words = paragraph.split
31
+ position = rand(0..words.length - 1)
32
+ formatting = fetch('markdown.emphasis')
33
+ words[position] = "#{formatting}#{words[position]}#{formatting}"
34
+ words.join(' ')
35
+ end
36
+
37
+ ##
38
+ # Produces a random ordered list of items between 1 and 10 randomly.
39
+ #
40
+ # @return [String]
41
+ #
42
+ # @example
43
+ # Faker::Markdown.ordered_list #=> "1. Qui reiciendis non consequatur atque.\n2. Quo doloremque veritatis tempora aut.\n3. Aspernatur.\n4. Ea ab.\n5. Qui.\n6. Sit pariatur nemo eveniet.\n7. Molestiae aut.\n8. Nihil molestias iure placeat.\n9. Dolore autem quisquam."
44
+ #
45
+ # @faker.version 1.8.0
46
+ def ordered_list
47
+ number = rand(1..10)
48
+
49
+ result = []
50
+ number.times do |i|
51
+ result << "#{i}. #{Faker::Lorem.sentence(word_count: 1)} \n"
52
+ end
53
+ result.join
54
+ end
55
+
56
+ ##
57
+ # Produces a random unordered list of items between 1 and 10 randomly.
58
+ #
59
+ # @return [String]
60
+ #
61
+ # @example
62
+ # Faker::Markdown.unordered_list #=> "* Voluptatum aliquid tempora molestiae facilis non sed.\n* Nostrum omnis iste impedit voluptatum dolor.\n* Esse quidem et facere."
63
+ #
64
+ # @faker.version 1.8.0
65
+ def unordered_list
66
+ number = rand(1..10)
67
+
68
+ result = []
69
+ number.times do |_i|
70
+ result << "* #{Faker::Lorem.sentence(word_count: 1)} \n"
71
+ end
72
+ result.join
73
+ end
74
+
75
+ ##
76
+ # Produces a random inline code snippet between two sentences.
77
+ #
78
+ # @return [String]
79
+ #
80
+ # @example
81
+ # Faker::Markdown.inline_code #=> "Aut eos quis suscipit. `Dignissimos voluptatem expedita qui.` Quo doloremque veritatis tempora aut."
82
+ #
83
+ # @faker.version 1.8.0
84
+ def inline_code
85
+ "`#{Faker::Lorem.sentence(word_count: 1)}`"
86
+ end
87
+
88
+ ##
89
+ # Produces a random code block formatted in Ruby.
90
+ #
91
+ # @return [String]
92
+ #
93
+ # @example
94
+ # Faker::Markdown.block_code #=> "```ruby\nEos quasi qui.\n```"
95
+ #
96
+ # @faker.version 1.8.0
97
+ def block_code
98
+ "```ruby\n#{Lorem.sentence(word_count: 1)}\n```"
99
+ end
100
+
101
+ ##
102
+ # Produces a random 3x4 table with a row of headings, a row of hyphens and two rows of data
103
+ #
104
+ # @return [String]
105
+ #
106
+ # @example
107
+ # Faker::Markdown.table #=> "ad | similique | voluptatem\n---- | ---- | ----\ncorrupti | est | rerum\nmolestiae | quidem | et"
108
+ #
109
+ # @faker.version 1.8.0
110
+ def table
111
+ table = []
112
+ 3.times do
113
+ table << "#{Lorem.word} | #{Lorem.word} | #{Lorem.word}"
114
+ end
115
+ table.insert(1, '---- | ---- | ----')
116
+ table.join("\n")
117
+ end
118
+
119
+ ##
120
+ # Produces a random method from the methods above, excluding the methods listed in the arguments.
121
+ #
122
+ # @overload random(methods)
123
+ # @param methods [Symbol] Specify which methods to exclude.
124
+ #
125
+ # @return [String, Array<String>]
126
+ #
127
+ # @example
128
+ # Faker::Markdown.random #=> returns output from a single method outlined above
129
+ # Faker::Markdown.random("table") #=> returns output from any single method outlined above except for "table"
130
+ # Faker::Markdown.random("ordered_list", "unordered_list") #=> returns output from any single method outlined above except for either ordered_list and unordered_list
131
+ #
132
+ # @faker.version 1.8.0
133
+ def random(*args)
134
+ method_list = available_methods
135
+ args&.each { |ex| method_list.delete_if { |meth| meth == ex.to_sym } }
136
+ send(method_list[Faker::Config.random.rand(0..method_list.length - 1)])
137
+ end
138
+
139
+ ##
140
+ # Produces a simulated blog-esque text-heavy block in markdown
141
+ #
142
+ # Keyword arguments: sentences, repeat
143
+ # @param sentences [Integer] Specifies how many sentences make a text block.
144
+ # @param repeat [Integer] Specifies how many times the text block repeats.
145
+ # @return [String]
146
+ #
147
+ # @example
148
+ # Faker::Markdown.sandwich #=> returns newline separated content of 1 header, 1 default lorem paragraph, and 1 random markdown element
149
+ # Faker::Markdown.sandwich(sentences: 5) #=> returns newline separated content of 1 header, 1 5-sentence lorem paragraph, and 1 random markdown element
150
+ # Faker::Markdown.sandwich(sentences: 6, repeat: 3) #=> returns newline separated content of 1 header, and then 3 sections consisting of, here, 1 6-sentence lorem paragraph and 1 random markdown element. The random markdown element is chosen at random in each iteration of the paragraph-markdown pairing.
151
+ #
152
+ # @faker.version 1.8.0
153
+ def sandwich(sentences: 3, repeat: 1)
154
+ text_block = []
155
+ text_block << headers
156
+ repeat.times do
157
+ text_block << Faker::Lorem.paragraph(sentence_count: sentences)
158
+ text_block << random
159
+ end
160
+ text_block.join("\n")
161
+ end
162
+
163
+ private
164
+
165
+ def available_methods
166
+ (Markdown.public_methods(false) - Base.methods).sort
167
+ end
168
+ end
169
+ end
170
+ end
@@ -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,175 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Measurement < Base
5
+ class << self
6
+ ALL = 'all'
7
+ NONE = 'none'
8
+
9
+ ##
10
+ # Produces a random height measurement.
11
+ #
12
+ # @param amount [Integer] Specifies the random height value.
13
+ # @return [String]
14
+ #
15
+ # @example
16
+ # Faker::Measurement.height #=> "6 inches"
17
+ # Faker::Measurement.height(amount: 1.4) #=> "1.4 inches"
18
+ # Faker::Measurement.height(amount: "none") #=> "inch"
19
+ # Faker::Measurement.height(amount: "all") #=> "inches"
20
+ #
21
+ # @faker.version 1.7.3
22
+ def height(amount: rand(10))
23
+ define_measurement_locale(amount, 'height')
24
+ end
25
+
26
+ ##
27
+ # Produces a random length measurement.
28
+ #
29
+ # @param amount [Integer] Specifies the random length value.
30
+ # @return [String]
31
+ #
32
+ # @example
33
+ # Faker::Measurement.length #=> "1 yard"
34
+ # Faker::Measurement.length(amount: 1.4) #=> "1.4 yards"
35
+ #
36
+ # @faker.version 1.7.3
37
+ def length(amount: rand(10))
38
+ define_measurement_locale(amount, 'length')
39
+ end
40
+
41
+ ##
42
+ # Produces a random volume measurement.
43
+ #
44
+ # @param amount [Integer] Specifies the random volume value.
45
+ # @return [String]
46
+ #
47
+ # @example
48
+ # Faker::Measurement.volume #=> "10 cups"
49
+ # Faker::Measurement.volume(amount: 1.4) #=> "1.4 cups"
50
+ #
51
+ # @faker.version 1.7.3
52
+ def volume(amount: rand(10))
53
+ define_measurement_locale(amount, 'volume')
54
+ end
55
+
56
+ ##
57
+ # Produces a random weight measurement.
58
+ #
59
+ # @param amount [Integer] Specifies the random weight value.
60
+ # @return [String]
61
+ #
62
+ # @example
63
+ # Faker::Measurement.weight #=> "3 pounds"
64
+ # Faker::Measurement.weight(amount: 1.4) #=> "1.4 pounds"
65
+ #
66
+ # @faker.version 1.7.3
67
+ def weight(amount: rand(10))
68
+ define_measurement_locale(amount, 'weight')
69
+ end
70
+
71
+ ##
72
+ # Produces a random metric height measurement.
73
+ #
74
+ # @param amount [Integer] Specifies the random height value.
75
+ # @return [String]
76
+ #
77
+ # @example
78
+ # Faker::Measurement.metric_height #=> "2 meters"
79
+ # Faker::Measurement.metric_height(amount: 1.4) #=> "1.4 meters"
80
+ #
81
+ # @faker.version 1.7.3
82
+ def metric_height(amount: rand(10))
83
+ define_measurement_locale(amount, 'metric_height')
84
+ end
85
+
86
+ ##
87
+ # Produces a random metric length measurement.
88
+ #
89
+ # @param amount [Integer] Specifies the random length value.
90
+ # @return [String]
91
+ #
92
+ # @example
93
+ # Faker::Measurement.metric_length #=> "0 decimeters"
94
+ # Faker::Measurement.metric_length(amount: 1.4) #=> "1.4 decimeters"
95
+ #
96
+ # @faker.version 1.7.3
97
+ def metric_length(amount: rand(10))
98
+ define_measurement_locale(amount, 'metric_length')
99
+ end
100
+
101
+ ##
102
+ # Produces a random metric volume measurement.
103
+ #
104
+ # @param amount [Integer] Specifies the random volume value.
105
+ # @return [String]
106
+ #
107
+ # @example
108
+ # Faker::Measurement.metric_volume #=> "1 liter"
109
+ # Faker::Measurement.metric_volume(amount: 1.4) #=> "1.4 liters"
110
+ #
111
+ # @faker.version 1.7.3
112
+ def metric_volume(amount: rand(10))
113
+ define_measurement_locale(amount, 'metric_volume')
114
+ end
115
+
116
+ ##
117
+ # Produces a random metric weight measurement.
118
+ #
119
+ # @param amount [Integer] Specifies the random weight value.
120
+ # @return [String]
121
+ #
122
+ # @example
123
+ # Faker::Measurement.metric_weight #=> "8 grams"
124
+ # Faker::Measurement.metric_weight(amount: 1.4) #=> "1.4 grams"
125
+ #
126
+ # @faker.version 1.7.3
127
+ def metric_weight(amount: rand(10))
128
+ define_measurement_locale(amount, 'metric_weight')
129
+ end
130
+
131
+ private
132
+
133
+ def check_for_plural(text, number)
134
+ if number && number != 1
135
+ make_plural(text)
136
+ else
137
+ text
138
+ end
139
+ end
140
+
141
+ def define_measurement_locale(amount, locale)
142
+ ensure_valid_amount(amount)
143
+ case amount
144
+ when ALL
145
+ make_plural(fetch("measurement.#{locale}"))
146
+ when NONE
147
+ fetch("measurement.#{locale}")
148
+ else
149
+ locale = check_for_plural(fetch("measurement.#{locale}"), amount)
150
+
151
+ "#{amount} #{locale}"
152
+ end
153
+ end
154
+
155
+ def ensure_valid_amount(amount)
156
+ raise ArgumentError, 'invalid amount' unless amount == NONE || amount == ALL || amount.is_a?(Integer) || amount.is_a?(Float)
157
+ end
158
+
159
+ def make_plural(text)
160
+ case text
161
+ when 'foot'
162
+ 'feet'
163
+ when 'inch'
164
+ 'inches'
165
+ when 'fluid ounce'
166
+ 'fluid ounces'
167
+ when 'metric ton'
168
+ 'metric tons'
169
+ else
170
+ "#{text}s"
171
+ end
172
+ end
173
+ end
174
+ end
175
+ end
@@ -0,0 +1,98 @@
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 rank in the U.S. Space Force.
60
+ #
61
+ # @return [String]
62
+ #
63
+ # @example
64
+ # Faker::Military.space_force_rank #=> "Senior Enlisted Advisor of the Space Force"
65
+ #
66
+ # @faker.version next
67
+ def space_force_rank
68
+ fetch('military.space_force_rank')
69
+ end
70
+
71
+ ##
72
+ # Produces a rank in the U.S. Coast Guard
73
+ #
74
+ # @return [String]
75
+ #
76
+ # @example
77
+ # Faker::Military.coast_guard_rank #=> "Master Chief Petty Officer of the Coast Guard"
78
+ #
79
+ # @faker.version next
80
+ def coast_guard_rank
81
+ fetch('military.coast_guard_rank')
82
+ end
83
+
84
+ ##
85
+ # Produces a U.S. Department of Defense Paygrade.
86
+ #
87
+ # @return [String]
88
+ #
89
+ # @example
90
+ # Faker::Military.dod_paygrade #=> "E-6"
91
+ #
92
+ # @faker.version 1.9.0
93
+ def dod_paygrade
94
+ fetch('military.dod_paygrade')
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Mountain < Base
5
+ class << self
6
+ ##
7
+ # Produces a name of a mountain
8
+ #
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::Mountain.name #=> "Mount Everest"
13
+ #
14
+ # @faker.version next
15
+ def name
16
+ fetch('mountain.name')
17
+ end
18
+
19
+ ##
20
+ # Produces a name of a range
21
+ #
22
+ # @return [String]
23
+ #
24
+ # @example
25
+ # Faker::Mountain.range #=> "Dhaulagiri Himalaya"
26
+ #
27
+ # @faker.version next
28
+ def range
29
+ fetch('mountain.range')
30
+ end
31
+ end
32
+ end
33
+ end