faker 2.0.0 → 3.8.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 (584) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1896 -11
  3. data/README.md +140 -307
  4. data/lib/faker/blockchain/aeternity.rb +70 -0
  5. data/lib/faker/blockchain/bitcoin.rb +27 -2
  6. data/lib/faker/blockchain/ethereum.rb +11 -1
  7. data/lib/faker/blockchain/tezos.rb +92 -9
  8. data/lib/faker/blockchain.rb +9 -0
  9. data/lib/faker/books/culture_series.rb +49 -0
  10. data/lib/faker/books/dune.rb +71 -5
  11. data/lib/faker/books/lovecraft.rb +182 -7
  12. data/lib/faker/books/the_kingkiller_chronicle.rb +61 -0
  13. data/lib/faker/books.rb +9 -0
  14. data/lib/faker/creature/animal.rb +9 -0
  15. data/lib/faker/creature/bird.rb +203 -0
  16. data/lib/faker/creature/cat.rb +27 -0
  17. data/lib/faker/creature/dog.rb +72 -0
  18. data/lib/faker/creature/horse.rb +18 -0
  19. data/lib/faker/creature.rb +9 -0
  20. data/lib/faker/default/address.rb +251 -6
  21. data/lib/faker/default/adjective.rb +35 -0
  22. data/lib/faker/default/alphanumeric.rb +49 -6
  23. data/lib/faker/default/ancient.rb +36 -0
  24. data/lib/faker/default/app.rb +45 -0
  25. data/lib/faker/default/appliance.rb +18 -0
  26. data/lib/faker/default/artist.rb +9 -0
  27. data/lib/faker/default/avatar.rb +32 -1
  28. data/lib/faker/default/bank.rb +117 -22
  29. data/lib/faker/default/barcode.rb +165 -0
  30. data/lib/faker/default/beer.rb +75 -3
  31. data/lib/faker/default/blood.rb +48 -0
  32. data/lib/faker/default/book.rb +61 -0
  33. data/lib/faker/default/boolean.rb +14 -1
  34. data/lib/faker/default/business.rb +27 -0
  35. data/lib/faker/default/camera.rb +46 -0
  36. data/lib/faker/default/cannabis.rb +90 -0
  37. data/lib/faker/default/chile_rut.rb +62 -8
  38. data/lib/faker/default/chuck_norris.rb +13 -2
  39. data/lib/faker/default/code.rb +165 -38
  40. data/lib/faker/default/coffee.rb +45 -0
  41. data/lib/faker/default/coin.rb +18 -0
  42. data/lib/faker/default/color.rb +123 -5
  43. data/lib/faker/default/commerce.rb +102 -11
  44. data/lib/faker/default/company.rb +445 -23
  45. data/lib/faker/default/compass.rb +135 -0
  46. data/lib/faker/default/computer.rb +63 -0
  47. data/lib/faker/default/construction.rb +54 -0
  48. data/lib/faker/default/cosmere.rb +90 -0
  49. data/lib/faker/default/crypto.rb +52 -5
  50. data/lib/faker/default/crypto_coin.rb +45 -0
  51. data/lib/faker/default/currency.rb +27 -0
  52. data/lib/faker/default/date.rb +145 -5
  53. data/lib/faker/default/dc_comics.rb +45 -0
  54. data/lib/faker/default/demographic.rb +57 -0
  55. data/lib/faker/default/dessert.rb +27 -0
  56. data/lib/faker/default/device.rb +54 -0
  57. data/lib/faker/default/driving_licence.rb +87 -14
  58. data/lib/faker/default/drone.rb +332 -0
  59. data/lib/faker/default/educator.rb +73 -6
  60. data/lib/faker/default/electrical_components.rb +27 -0
  61. data/lib/faker/default/emotion.rb +33 -0
  62. data/lib/faker/default/esport.rb +45 -0
  63. data/lib/faker/default/file.rb +53 -4
  64. data/lib/faker/default/finance.rb +74 -2
  65. data/lib/faker/default/food.rb +93 -3
  66. data/lib/faker/default/funny_name.rb +45 -0
  67. data/lib/faker/default/game.rb +48 -0
  68. data/lib/faker/default/gender.rb +31 -0
  69. data/lib/faker/default/greek_philosophers.rb +18 -0
  70. data/lib/faker/default/hacker.rb +59 -1
  71. data/lib/faker/default/hipster.rb +103 -7
  72. data/lib/faker/default/hobby.rb +22 -0
  73. data/lib/faker/default/house.rb +18 -0
  74. data/lib/faker/default/html.rb +230 -0
  75. data/lib/faker/default/id_number.rb +313 -8
  76. data/lib/faker/default/industry_segments.rb +36 -0
  77. data/lib/faker/default/invoice.rb +34 -7
  78. data/lib/faker/default/job.rb +36 -0
  79. data/lib/faker/default/json.rb +68 -8
  80. data/lib/faker/default/kpop.rb +54 -0
  81. data/lib/faker/default/lorem.rb +194 -21
  82. data/lib/faker/default/lorem_flickr.rb +67 -2
  83. data/lib/faker/default/markdown.rb +100 -9
  84. data/lib/faker/default/marketing.rb +9 -0
  85. data/lib/faker/default/measurement.rb +93 -2
  86. data/lib/faker/default/military.rb +71 -0
  87. data/lib/faker/default/mountain.rb +33 -0
  88. data/lib/faker/default/movie.rb +33 -0
  89. data/lib/faker/default/name.rb +98 -0
  90. data/lib/faker/default/nation.rb +45 -5
  91. data/lib/faker/default/{nhs.rb → national_health_service.rb} +27 -4
  92. data/lib/faker/default/nato_phonetic_alphabet.rb +9 -0
  93. data/lib/faker/default/number.rb +151 -12
  94. data/lib/faker/default/omniauth.rb +233 -92
  95. data/lib/faker/default/phone_number.rb +113 -11
  96. data/lib/faker/default/placeholdit.rb +24 -3
  97. data/lib/faker/default/programming_language.rb +18 -0
  98. data/lib/faker/default/quote.rb +124 -0
  99. data/lib/faker/default/relationship.rb +46 -1
  100. data/lib/faker/default/restaurant.rb +54 -2
  101. data/lib/faker/default/science.rb +135 -0
  102. data/lib/faker/default/slack_emoji.rb +81 -0
  103. data/lib/faker/default/source.rb +43 -0
  104. data/lib/faker/default/south_africa.rb +93 -3
  105. data/lib/faker/default/space.rb +128 -1
  106. data/lib/faker/default/sport.rb +116 -0
  107. data/lib/faker/default/string.rb +18 -4
  108. data/lib/faker/default/stripe.rb +64 -3
  109. data/lib/faker/default/subscription.rb +45 -0
  110. data/lib/faker/default/superhero.rb +45 -0
  111. data/lib/faker/default/tea.rb +41 -0
  112. data/lib/faker/default/team.rb +45 -0
  113. data/lib/faker/default/theater.rb +49 -0
  114. data/lib/faker/default/time.rb +80 -0
  115. data/lib/faker/default/types.rb +91 -11
  116. data/lib/faker/default/university.rb +45 -0
  117. data/lib/faker/default/vehicle.rb +225 -42
  118. data/lib/faker/default/verb.rb +45 -0
  119. data/lib/faker/default/vulnerability_identifier.rb +23 -0
  120. data/lib/faker/default/world_cup.rb +50 -0
  121. data/lib/faker/default/x.rb +189 -0
  122. data/lib/faker/default.rb +9 -0
  123. data/lib/faker/fantasy/tolkien.rb +67 -0
  124. data/lib/faker/fantasy.rb +9 -0
  125. data/lib/faker/games/clash_of_clans.rb +48 -0
  126. data/lib/faker/games/control.rb +113 -0
  127. data/lib/faker/games/dnd.rb +178 -0
  128. data/lib/faker/games/dota.rb +60 -0
  129. data/lib/faker/games/elder_scrolls.rb +98 -0
  130. data/lib/faker/games/fallout.rb +37 -0
  131. data/lib/faker/games/final_fantasy_xiv.rb +73 -0
  132. data/lib/faker/games/half_life.rb +27 -0
  133. data/lib/faker/games/heroes.rb +40 -0
  134. data/lib/faker/games/heroes_of_the_storm.rb +38 -2
  135. data/lib/faker/games/league_of_legends.rb +54 -0
  136. data/lib/faker/games/minecraft.rb +113 -0
  137. data/lib/faker/games/myst.rb +45 -0
  138. data/lib/faker/games/overwatch.rb +27 -0
  139. data/lib/faker/games/pokemon.rb +27 -0
  140. data/lib/faker/games/sonic_the_hedgehog.rb +27 -0
  141. data/lib/faker/games/street_fighter.rb +61 -0
  142. data/lib/faker/games/super_mario.rb +48 -0
  143. data/lib/faker/games/super_smash_bros.rb +18 -0
  144. data/lib/faker/games/tarkov.rb +205 -0
  145. data/lib/faker/games/touhou.rb +75 -0
  146. data/lib/faker/games/warhammer_fantasy.rb +74 -0
  147. data/lib/faker/games/witcher.rb +93 -0
  148. data/lib/faker/games/world_of_warcraft.rb +44 -1
  149. data/lib/faker/games/zelda.rb +37 -1
  150. data/lib/faker/games.rb +9 -0
  151. data/lib/faker/internet/http.rb +48 -0
  152. data/lib/faker/internet.rb +582 -0
  153. data/lib/faker/japanese_media/conan.rb +48 -0
  154. data/lib/faker/japanese_media/cowboy_bebop.rb +61 -0
  155. data/lib/faker/japanese_media/doraemon.rb +48 -0
  156. data/lib/faker/japanese_media/dragon_ball.rb +35 -0
  157. data/lib/faker/japanese_media/fullmetal_alchemist_brotherhood.rb +48 -0
  158. data/lib/faker/japanese_media/kamen_rider.rb +102 -0
  159. data/lib/faker/japanese_media/naruto.rb +61 -0
  160. data/lib/faker/japanese_media/one_piece.rb +55 -1
  161. data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
  162. data/lib/faker/japanese_media/sword_art_online.rb +36 -0
  163. data/lib/faker/japanese_media.rb +9 -0
  164. data/lib/faker/locations/australia.rb +49 -0
  165. data/lib/faker/locations.rb +9 -0
  166. data/lib/faker/movies/avatar.rb +49 -0
  167. data/lib/faker/movies/back_to_the_future.rb +28 -0
  168. data/lib/faker/movies/departed.rb +49 -0
  169. data/lib/faker/movies/ghostbusters.rb +28 -0
  170. data/lib/faker/movies/hackers.rb +48 -0
  171. data/lib/faker/movies/harry_potter.rb +54 -0
  172. data/lib/faker/movies/hitchhikers_guide_to_the_galaxy.rb +69 -0
  173. data/lib/faker/movies/hobbit.rb +41 -4
  174. data/lib/faker/movies/how_to_train_your_dragon.rb +48 -0
  175. data/lib/faker/movies/lebowski.rb +27 -0
  176. data/lib/faker/movies/lord_of_the_rings.rb +31 -3
  177. data/lib/faker/movies/princess_bride.rb +19 -0
  178. data/lib/faker/movies/star_wars.rb +169 -5
  179. data/lib/faker/movies/the_room.rb +63 -0
  180. data/lib/faker/movies/tron.rb +161 -0
  181. data/lib/faker/movies/v_for_vendetta.rb +29 -0
  182. data/lib/faker/movies.rb +9 -0
  183. data/lib/faker/music/bossa_nova.rb +35 -0
  184. data/lib/faker/music/grateful_dead.rb +18 -2
  185. data/lib/faker/music/hiphop.rb +48 -0
  186. data/lib/faker/music/opera.rb +273 -1
  187. data/lib/faker/music/pearl_jam.rb +48 -0
  188. data/lib/faker/music/phish.rb +36 -1
  189. data/lib/faker/music/prince.rb +64 -0
  190. data/lib/faker/music/rock_band.rb +21 -0
  191. data/lib/faker/music/rush.rb +35 -0
  192. data/lib/faker/music/smashing_pumpkins.rb +62 -0
  193. data/lib/faker/music/umphreys_mcgee.rb +9 -0
  194. data/lib/faker/music.rb +149 -0
  195. data/lib/faker/quotes/chiquito.rb +80 -0
  196. data/lib/faker/quotes/rajnikanth.rb +27 -0
  197. data/lib/faker/quotes/shakespeare.rb +70 -0
  198. data/lib/faker/quotes.rb +9 -0
  199. data/lib/faker/religion/bible.rb +50 -0
  200. data/lib/faker/religion.rb +9 -0
  201. data/lib/faker/sports/basketball.rb +36 -0
  202. data/lib/faker/sports/chess.rb +90 -0
  203. data/lib/faker/sports/football.rb +45 -0
  204. data/lib/faker/sports/mountaineering.rb +22 -0
  205. data/lib/faker/sports/volleyball.rb +74 -0
  206. data/lib/faker/sports.rb +9 -0
  207. data/lib/faker/travel/airport.rb +43 -0
  208. data/lib/faker/travel/train_station.rb +54 -0
  209. data/lib/faker/travel.rb +9 -0
  210. data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +22 -0
  211. data/lib/faker/tv_shows/archer.rb +51 -0
  212. data/lib/faker/tv_shows/big_bang_theory.rb +37 -0
  213. data/lib/faker/tv_shows/bojack_horseman.rb +28 -0
  214. data/lib/faker/tv_shows/breaking_bad.rb +18 -0
  215. data/lib/faker/tv_shows/brooklyn_nine_nine.rb +38 -0
  216. data/lib/faker/tv_shows/buffy.rb +47 -2
  217. data/lib/faker/tv_shows/community.rb +19 -0
  218. data/lib/faker/tv_shows/dr_who.rb +65 -2
  219. data/lib/faker/tv_shows/dumb_and_dumber.rb +28 -0
  220. data/lib/faker/tv_shows/family_guy.rb +28 -0
  221. data/lib/faker/tv_shows/final_space.rb +51 -0
  222. data/lib/faker/tv_shows/friends.rb +27 -0
  223. data/lib/faker/tv_shows/futurama.rb +65 -0
  224. data/lib/faker/tv_shows/game_of_thrones.rb +46 -0
  225. data/lib/faker/tv_shows/hey_arnold.rb +27 -0
  226. data/lib/faker/tv_shows/how_i_met_your_mother.rb +37 -0
  227. data/lib/faker/tv_shows/michael_scott.rb +10 -0
  228. data/lib/faker/tv_shows/new_girl.rb +19 -0
  229. data/lib/faker/tv_shows/parks_and_rec.rb +18 -0
  230. data/lib/faker/tv_shows/rick_and_morty.rb +28 -0
  231. data/lib/faker/tv_shows/ru_paul.rb +18 -0
  232. data/lib/faker/tv_shows/seinfeld.rb +28 -0
  233. data/lib/faker/tv_shows/silicon_valley.rb +75 -0
  234. data/lib/faker/tv_shows/simpsons.rb +42 -0
  235. data/lib/faker/tv_shows/south_park.rb +34 -0
  236. data/lib/faker/tv_shows/spongebob.rb +50 -0
  237. data/lib/faker/tv_shows/star_trek.rb +36 -0
  238. data/lib/faker/tv_shows/stargate.rb +28 -0
  239. data/lib/faker/tv_shows/stranger_things.rb +19 -0
  240. data/lib/faker/tv_shows/suits.rb +37 -0
  241. data/lib/faker/tv_shows/supernatural.rb +48 -0
  242. data/lib/faker/tv_shows/the_expanse.rb +36 -0
  243. data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +30 -2
  244. data/lib/faker/tv_shows/the_it_crowd.rb +37 -0
  245. data/lib/faker/tv_shows/the_office.rb +37 -0
  246. data/lib/faker/tv_shows/the_thick_of_it.rb +28 -0
  247. data/lib/faker/tv_shows/twin_peaks.rb +28 -0
  248. data/lib/faker/tv_shows/venture_bros.rb +38 -0
  249. data/lib/faker/tv_shows.rb +9 -0
  250. data/lib/faker/version.rb +2 -2
  251. data/lib/faker.rb +125 -45
  252. data/lib/helpers/base58.rb +1 -1
  253. data/lib/helpers/char.rb +22 -27
  254. data/lib/helpers/deprecator.rb +118 -0
  255. data/lib/helpers/positional_generator.rb +478 -0
  256. data/lib/helpers/unique_generator.rb +18 -14
  257. data/lib/locales/README.md +18 -2
  258. data/lib/locales/ar.yml +1608 -46
  259. data/lib/locales/bg.yml +937 -21
  260. data/lib/locales/ca-CAT.yml +347 -12
  261. data/lib/locales/ca.yml +580 -15
  262. data/lib/locales/da-DK.yml +530 -36
  263. data/lib/locales/de-AT.yml +3487 -25
  264. data/lib/locales/de-CH.yml +6051 -9
  265. data/lib/locales/de.yml +7185 -97
  266. data/lib/locales/ee.yml +1185 -27
  267. data/lib/locales/en/address.yml +1829 -559
  268. data/lib/locales/en/adjective.yml +179 -0
  269. data/lib/locales/en/airport.yml +381 -0
  270. data/lib/locales/en/ancient.yml +128 -4
  271. data/lib/locales/en/animal.yml +141 -2
  272. data/lib/locales/en/app.yml +89 -2
  273. data/lib/locales/en/appliance.yml +81 -2
  274. data/lib/locales/en/aqua_teen_hunger_force.yml +33 -1
  275. data/lib/locales/en/archer.yml +75 -0
  276. data/lib/locales/en/artist.yml +43 -1
  277. data/lib/locales/en/australia.yml +108 -0
  278. data/lib/locales/en/avatar.yml +57 -0
  279. data/lib/locales/en/back_to_the_future.yml +145 -117
  280. data/lib/locales/en/bank.yml +92 -3
  281. data/lib/locales/en/barcode.yml +24 -0
  282. data/lib/locales/en/beer.yml +232 -6
  283. data/lib/locales/en/bible.yml +87 -0
  284. data/lib/locales/en/big_bang_theory.yml +37 -0
  285. data/lib/locales/en/bird.yml +1280 -0
  286. data/lib/locales/en/blood.yml +13 -0
  287. data/lib/locales/en/bojack_horseman.yml +63 -3
  288. data/lib/locales/en/book.yml +486 -3
  289. data/lib/locales/en/bossa_nova.yml +110 -3
  290. data/lib/locales/en/breaking_bad.yml +110 -25
  291. data/lib/locales/en/brooklyn_nine_nine.yml +34 -0
  292. data/lib/locales/en/buffy.yml +239 -257
  293. data/lib/locales/en/business.yml +18 -2
  294. data/lib/locales/en/camera.yml +611 -0
  295. data/lib/locales/en/cannabis.yml +344 -10
  296. data/lib/locales/en/cat.yml +155 -3
  297. data/lib/locales/en/chess.yml +102 -0
  298. data/lib/locales/en/chiquito.yml +63 -0
  299. data/lib/locales/en/chuck_norris.yml +78 -79
  300. data/lib/locales/en/clash_of_clan.yml +99 -0
  301. data/lib/locales/en/code.yml +501 -1
  302. data/lib/locales/en/coffee.yml +450 -25
  303. data/lib/locales/en/color.yml +73 -1
  304. data/lib/locales/en/commerce.yml +117 -6
  305. data/lib/locales/en/community.yml +55 -30
  306. data/lib/locales/en/company.yml +1756 -13
  307. data/lib/locales/en/compass.yml +108 -12
  308. data/lib/locales/en/computer.yml +55 -0
  309. data/lib/locales/en/conan.yml +169 -0
  310. data/lib/locales/en/construction.yml +416 -422
  311. data/lib/locales/en/control.yml +247 -0
  312. data/lib/locales/en/cosmere.yml +219 -54
  313. data/lib/locales/en/cowboy_bebop.yml +160 -0
  314. data/lib/locales/en/culture_series.yml +298 -298
  315. data/lib/locales/en/currency.yml +358 -3
  316. data/lib/locales/en/dc_comics.yml +178 -49
  317. data/lib/locales/en/demographic.yml +218 -5
  318. data/lib/locales/en/departed.yml +46 -0
  319. data/lib/locales/en/dessert.yml +78 -3
  320. data/lib/locales/en/device.yml +112 -4
  321. data/lib/locales/en/dnd.yml +636 -0
  322. data/lib/locales/en/dog.yml +262 -7
  323. data/lib/locales/en/doraemon.yml +284 -0
  324. data/lib/locales/en/dota.yml +704 -63
  325. data/lib/locales/en/dr_who.yml +468 -93
  326. data/lib/locales/en/dragon_ball.yml +243 -1
  327. data/lib/locales/en/driving_license.yml +181 -0
  328. data/lib/locales/en/drone.yml +95 -0
  329. data/lib/locales/en/dumb_and_dumber.yml +72 -56
  330. data/lib/locales/en/dune.yml +270 -131
  331. data/lib/locales/en/educator.yml +75 -6
  332. data/lib/locales/en/elder_scrolls.yml +582 -9
  333. data/lib/locales/en/electrical_components.yml +49 -3
  334. data/lib/locales/en/emotion.yml +480 -0
  335. data/lib/locales/en/esport.yml +58 -5
  336. data/lib/locales/en/fallout.yml +311 -133
  337. data/lib/locales/en/family_guy.yml +54 -4
  338. data/lib/locales/en/file.yml +109 -2
  339. data/lib/locales/en/final_fantasy_xiv.yml +754 -0
  340. data/lib/locales/en/final_space.yml +35 -0
  341. data/lib/locales/en/finance.yml +80 -4
  342. data/lib/locales/en/food.yml +1067 -10
  343. data/lib/locales/en/football.yml +121 -5
  344. data/lib/locales/en/fresh_prince_of_bel_air.yml +119 -70
  345. data/lib/locales/en/friends.yml +162 -3
  346. data/lib/locales/en/fullmetal_alchemist_brotherhood.yml +78 -0
  347. data/lib/locales/en/funny_name.yml +752 -1
  348. data/lib/locales/en/futurama.yml +336 -0
  349. data/lib/locales/en/game.yml +11 -0
  350. data/lib/locales/en/game_of_thrones.yml +2487 -5
  351. data/lib/locales/en/gender.yml +15 -2
  352. data/lib/locales/en/ghostbusters.yml +101 -88
  353. data/lib/locales/en/grateful_dead.yml +47 -45
  354. data/lib/locales/en/greek_philosophers.yml +44 -23
  355. data/lib/locales/en/hacker.yml +110 -5
  356. data/lib/locales/en/hackers.yml +53 -0
  357. data/lib/locales/en/half_life.yml +84 -3
  358. data/lib/locales/en/harry_potter.yml +323 -6
  359. data/lib/locales/en/heroes.yml +408 -3
  360. data/lib/locales/en/heroes_of_the_storm.yml +131 -4
  361. data/lib/locales/en/hey_arnold.yml +104 -21
  362. data/lib/locales/en/hipster.yml +203 -1
  363. data/lib/locales/en/hitchhikers_guide_to_the_galaxy.yml +243 -42
  364. data/lib/locales/en/hobby.yml +170 -0
  365. data/lib/locales/en/horse.yml +446 -2
  366. data/lib/locales/en/house.yml +34 -2
  367. data/lib/locales/en/how_i_met_your_mother.yml +97 -25
  368. data/lib/locales/en/how_to_train_your_dragon.yml +173 -0
  369. data/lib/locales/en/id_number.yml +7 -2
  370. data/lib/locales/en/industry_segments.yml +188 -4
  371. data/lib/locales/en/internet.yml +136 -3
  372. data/lib/locales/en/jack_handey.yml +54 -0
  373. data/lib/locales/en/job.yml +98 -7
  374. data/lib/locales/en/kamen_rider.yml +718 -0
  375. data/lib/locales/en/kpop.yml +954 -80
  376. data/lib/locales/en/league_of_legends.yml +285 -6
  377. data/lib/locales/en/lebowski.yml +58 -40
  378. data/lib/locales/en/lorem.yml +1095 -6
  379. data/lib/locales/en/lovecraft.yml +76 -6
  380. data/lib/locales/en/markdown.yml +12 -2
  381. data/lib/locales/en/marketing.yml +54 -1
  382. data/lib/locales/en/measurement.yml +42 -8
  383. data/lib/locales/en/michael_scott.yml +41 -42
  384. data/lib/locales/en/military.yml +179 -5
  385. data/lib/locales/en/minecraft.yml +663 -0
  386. data/lib/locales/en/mitch_hedberg.yml +46 -0
  387. data/lib/locales/en/mountain.yml +171 -0
  388. data/lib/locales/en/mountaineering.yml +14 -0
  389. data/lib/locales/en/movie.yml +206 -2
  390. data/lib/locales/en/music.yml +461 -29
  391. data/lib/locales/en/myst.yml +87 -31
  392. data/lib/locales/en/name.yml +6068 -5
  393. data/lib/locales/en/naruto.yml +230 -0
  394. data/lib/locales/en/nato_phonetic_alphabet.yml +27 -1
  395. data/lib/locales/en/new_girl.yml +35 -37
  396. data/lib/locales/en/one_piece.yml +359 -6
  397. data/lib/locales/en/opera.yml +169 -1
  398. data/lib/locales/en/overwatch.yml +2648 -37
  399. data/lib/locales/en/parks_and_rec.yml +33 -4
  400. data/lib/locales/en/pearl_jam.yml +213 -0
  401. data/lib/locales/en/phish.yml +391 -1
  402. data/lib/locales/en/phone_number.yml +78 -3
  403. data/lib/locales/en/pokemon.yml +417 -4
  404. data/lib/locales/en/prince.yml +227 -0
  405. data/lib/locales/en/princess_bride.yml +48 -2
  406. data/lib/locales/en/programming_language.yml +753 -3
  407. data/lib/locales/en/quote.yml +606 -163
  408. data/lib/locales/en/rajnikanth.yml +77 -0
  409. data/lib/locales/en/relationship.yml +29 -6
  410. data/lib/locales/en/restaurant.yml +31 -31
  411. data/lib/locales/en/rick_and_morty.yml +116 -3
  412. data/lib/locales/en/rock_band.yml +228 -1
  413. data/lib/locales/en/rupaul.yml +120 -122
  414. data/lib/locales/en/rush.yml +32 -0
  415. data/lib/locales/en/science.yml +481 -3
  416. data/lib/locales/en/seinfeld.yml +110 -3
  417. data/lib/locales/en/shakespeare.yml +46 -53
  418. data/lib/locales/en/silicon_valley.yml +122 -50
  419. data/lib/locales/en/simpsons.yml +897 -23
  420. data/lib/locales/en/slack_emoji.yml +874 -8
  421. data/lib/locales/en/smashing_pumpkins.yml +382 -0
  422. data/lib/locales/en/source.yml +35 -0
  423. data/lib/locales/en/south_park.yml +360 -2
  424. data/lib/locales/en/space.yml +373 -14
  425. data/lib/locales/en/spongebob.yml +489 -0
  426. data/lib/locales/en/sport.yml +130 -0
  427. data/lib/locales/en/star_trek.yml +105 -4
  428. data/lib/locales/en/star_wars.yml +564 -219
  429. data/lib/locales/en/stargate.yml +65 -18
  430. data/lib/locales/en/stranger_thing.yml +31 -33
  431. data/lib/locales/en/street_fighter.yml +1524 -0
  432. data/lib/locales/en/stripe.yml +3 -3
  433. data/lib/locales/en/studio_ghibli.yml +107 -0
  434. data/lib/locales/en/subscription.yml +47 -5
  435. data/lib/locales/en/suits.yml +45 -0
  436. data/lib/locales/en/super_mario.yml +58 -0
  437. data/lib/locales/en/super_smash_bros.yml +23 -5
  438. data/lib/locales/en/superhero.yml +574 -4
  439. data/lib/locales/en/supernatural.yml +141 -0
  440. data/lib/locales/en/sword_art_online.yml +327 -331
  441. data/lib/locales/en/tarkov.yml +593 -0
  442. data/lib/locales/en/tea.yml +172 -0
  443. data/lib/locales/en/team.yml +125 -3
  444. data/lib/locales/en/the_expanse.yml +92 -4
  445. data/lib/locales/en/the_it_crowd.yml +148 -152
  446. data/lib/locales/en/the_kingkiller_chronicle.yml +56 -0
  447. data/lib/locales/en/the_office.yml +82 -0
  448. data/lib/locales/en/the_room.yml +68 -0
  449. data/lib/locales/en/the_thick_of_it.yml +83 -3
  450. data/lib/locales/en/theater.yml +597 -0
  451. data/lib/locales/en/tolkien.yml +2453 -0
  452. data/lib/locales/en/touhou.yml +839 -0
  453. data/lib/locales/en/train_station.yml +280 -0
  454. data/lib/locales/en/tron.yml +227 -0
  455. data/lib/locales/en/twin_peaks.yml +130 -3
  456. data/lib/locales/en/umphreys_mcgee.yml +266 -1
  457. data/lib/locales/en/university.yml +15 -2
  458. data/lib/locales/en/v_for_vendetta.yml +157 -160
  459. data/lib/locales/en/vehicle.yml +2809 -75
  460. data/lib/locales/en/venture_bros.yml +225 -4
  461. data/lib/locales/en/verbs.yml +3785 -5
  462. data/lib/locales/en/volleyball.yml +501 -0
  463. data/lib/locales/en/warhammer_fantasy.yml +549 -0
  464. data/lib/locales/en/witcher.yml +426 -7
  465. data/lib/locales/en/world_cup.yml +1132 -235
  466. data/lib/locales/en/world_of_warcraft.yml +122 -4
  467. data/lib/locales/en/yoda.yml +38 -1
  468. data/lib/locales/en/zelda.yml +962 -4
  469. data/lib/locales/en-AU.yml +728 -17
  470. data/lib/locales/en-BORK.yml +104 -1
  471. data/lib/locales/en-CA.yml +373 -15
  472. data/lib/locales/en-GB.yml +118 -8
  473. data/lib/locales/en-IND.yml +1259 -16
  474. data/lib/locales/en-KE.yml +212 -0
  475. data/lib/locales/en-MS.yml +364 -16
  476. data/lib/locales/en-NEP.yml +213 -36
  477. data/lib/locales/en-NG.yml +737 -65
  478. data/lib/locales/en-NZ.yml +1183 -27
  479. data/lib/locales/en-PAK.yml +392 -9
  480. data/lib/locales/en-SG.yml +581 -15
  481. data/lib/locales/en-TH.yml +360 -0
  482. data/lib/locales/en-UG.yml +374 -75
  483. data/lib/locales/en-US.yml +6937 -71
  484. data/lib/locales/en-ZA.yml +1394 -13
  485. data/lib/locales/en-au-ocker.yml +266 -21
  486. data/lib/locales/en.yml +0 -50
  487. data/lib/locales/es-AR.yml +4570 -0
  488. data/lib/locales/es-MX.yml +1910 -41
  489. data/lib/locales/es.yml +2172 -52
  490. data/lib/locales/fa.yml +1624 -3
  491. data/lib/locales/fi-FI.yml +316 -16
  492. data/lib/locales/fr/address.yml +773 -0
  493. data/lib/locales/fr/adjective.yml +266 -0
  494. data/lib/locales/fr/ancient.yml +141 -0
  495. data/lib/locales/fr/animal.yml +122 -0
  496. data/lib/locales/fr/appliance.yml +69 -0
  497. data/lib/locales/fr/book.yml +31 -0
  498. data/lib/locales/fr/color.yml +34 -0
  499. data/lib/locales/fr/company.yml +497 -0
  500. data/lib/locales/fr/compass.yml +71 -0
  501. data/lib/locales/fr/demographic.yml +6 -0
  502. data/lib/locales/fr/gender.yml +21 -0
  503. data/lib/locales/fr/internet.yml +15 -0
  504. data/lib/locales/fr/lorem.yml +1094 -0
  505. data/lib/locales/fr/measurement.yml +34 -0
  506. data/lib/locales/fr/name.yml +1193 -0
  507. data/lib/locales/fr/phone_number.yml +38 -0
  508. data/lib/locales/fr/pokemon.yml +421 -0
  509. data/lib/locales/fr-CA.yml +2756 -44
  510. data/lib/locales/fr-CH.yml +2455 -42
  511. data/lib/locales/fr.yml +2 -111
  512. data/lib/locales/he.yml +255 -9
  513. data/lib/locales/hy.yml +3630 -124
  514. data/lib/locales/id.yml +840 -10
  515. data/lib/locales/it.yml +1310 -31
  516. data/lib/locales/ja/README.md +13 -0
  517. data/lib/locales/ja/address.yml +363 -0
  518. data/lib/locales/ja/adjective.yml +148 -0
  519. data/lib/locales/ja/ancient.yml +18 -0
  520. data/lib/locales/ja/animal.yml +87 -0
  521. data/lib/locales/ja/artist.yml +46 -0
  522. data/lib/locales/ja/bank.yml +139 -0
  523. data/lib/locales/ja/book.yml +496 -0
  524. data/lib/locales/ja/cat.yml +79 -0
  525. data/lib/locales/ja/coffee.yml +22 -0
  526. data/lib/locales/ja/color.yml +35 -0
  527. data/lib/locales/ja/commerce.yml +103 -0
  528. data/lib/locales/ja/company.yml +26 -0
  529. data/lib/locales/ja/dog.yml +339 -0
  530. data/lib/locales/ja/emotion.yml +49 -0
  531. data/lib/locales/ja/food.yml +41 -0
  532. data/lib/locales/ja/football.yml +115 -0
  533. data/lib/locales/ja/gender.yml +6 -0
  534. data/lib/locales/ja/lorem.yml +1020 -0
  535. data/lib/locales/ja/name.yml +213 -0
  536. data/lib/locales/ja/naruto.yml +230 -0
  537. data/lib/locales/ja/overwatch.yml +37 -0
  538. data/lib/locales/ja/phone_number.yml +13 -0
  539. data/lib/locales/ja/pokemon.yml +441 -0
  540. data/lib/locales/ja/relationship.yml +33 -0
  541. data/lib/locales/ja/restaurant.yml +82 -0
  542. data/lib/locales/ja/space.yml +23 -0
  543. data/lib/locales/ja/sport.yml +130 -0
  544. data/lib/locales/ja/studio_ghibli.yml +112 -0
  545. data/lib/locales/ja/subscription.yml +50 -0
  546. data/lib/locales/ja/super_mario.yml +73 -0
  547. data/lib/locales/ja/super_smash_bros.yml +8 -0
  548. data/lib/locales/ja/touhou.yml +466 -0
  549. data/lib/locales/ja/university.yml +22 -0
  550. data/lib/locales/ja/zelda.yml +19 -0
  551. data/lib/locales/ko.yml +1450 -17
  552. data/lib/locales/lt.yml +315 -0
  553. data/lib/locales/lv.yml +1221 -27
  554. data/lib/locales/mi-NZ.yml +283 -0
  555. data/lib/locales/nb-NO.yml +518 -27
  556. data/lib/locales/nl.yml +33514 -55
  557. data/lib/locales/pl.yml +4008 -38
  558. data/lib/locales/pt-BR.yml +8210 -641
  559. data/lib/locales/pt.yml +846 -45
  560. data/lib/locales/ru.yml +1355 -30
  561. data/lib/locales/sk.yml +4416 -41
  562. data/lib/locales/sv.yml +731 -41
  563. data/lib/locales/th.yml +380 -0
  564. data/lib/locales/tr.yml +77 -19
  565. data/lib/locales/uk.yml +1814 -48
  566. data/lib/locales/vi.yml +392 -48
  567. data/lib/locales/zh-CN/bank.yml +17 -0
  568. data/lib/locales/zh-CN.yml +541 -19
  569. data/lib/locales/zh-TW.yml +1031 -15
  570. metadata +230 -125
  571. data/History.md +0 -176
  572. data/lib/faker/books/book.rb +0 -25
  573. data/lib/faker/default/bossa_nova.rb +0 -15
  574. data/lib/faker/default/fillmurray.rb +0 -15
  575. data/lib/faker/default/internet.rb +0 -207
  576. data/lib/faker/default/lorem_pixel.rb +0 -38
  577. data/lib/faker/default/twitter.rb +0 -174
  578. data/lib/faker/games/game.rb +0 -21
  579. data/lib/faker/movies/movie.rb +0 -11
  580. data/lib/faker/music/music.rb +0 -47
  581. data/lib/faker/quotes/quote.rb +0 -32
  582. data/lib/locales/en/hobbit.yml +0 -19
  583. data/lib/locales/en/lord_of_the_rings.yml +0 -6
  584. data/lib/locales/ja.yml +0 -98
@@ -5,18 +5,54 @@ module Faker
5
5
  flexible :industry_segments
6
6
 
7
7
  class << self
8
+ ##
9
+ # Produces the name of an industry.
10
+ #
11
+ # @return [String]
12
+ #
13
+ # @example
14
+ # Faker::IndustrySegments.industry #=> "Basic Materials"
15
+ #
16
+ # @faker.version 1.9.2
8
17
  def industry
9
18
  fetch('industry_segments.industry')
10
19
  end
11
20
 
21
+ ##
22
+ # Produces the name of a super-sector of an industry.
23
+ #
24
+ # @return [String]
25
+ #
26
+ # @example
27
+ # Faker::IndustrySegments.super_sector #=> "Basic Resources"
28
+ #
29
+ # @faker.version 1.9.2
12
30
  def super_sector
13
31
  fetch('industry_segments.super_sector')
14
32
  end
15
33
 
34
+ ##
35
+ # Produces the name of a sector of an industry.
36
+ #
37
+ # @return [String]
38
+ #
39
+ # @example
40
+ # Faker::IndustrySegments.sector #=> "Industrial Metals & Mining"
41
+ #
42
+ # @faker.version 1.9.2
16
43
  def sector
17
44
  fetch('industry_segments.sector')
18
45
  end
19
46
 
47
+ ##
48
+ # Produces the name of a subsector of an industry.
49
+ #
50
+ # @return [String]
51
+ #
52
+ # @example
53
+ # Faker::IndustrySegments.industry #=> "Basic Materials"
54
+ #
55
+ # @faker.version 1.9.2
20
56
  def sub_sector
21
57
  fetch('industry_segments.sub_sector')
22
58
  end
@@ -5,21 +5,48 @@ module Faker
5
5
  flexible :invoice
6
6
 
7
7
  class << self
8
- # Generate random amount between values with 2 decimals
8
+ ##
9
+ # Produces a random amount between values with 2 decimals
10
+ #
11
+ # @param from [Integer] Specifies lower limit.
12
+ # @param to [Integer] Specifies upper limit.
13
+ # @return [Integer]
14
+ #
15
+ # @example
16
+ # Faker::Invoice.amount_between #=> 0
17
+ # Faker::Invoice.amount_between(from: 0, to: 10) #=> 4.33
18
+ #
19
+ # @faker.version 1.9.0
9
20
  def amount_between(from: 0, to: 0)
10
21
  Faker::Base.rand_in_range(from, to).round(2)
11
22
  end
12
23
 
13
- # International bank slip reference https://en.wikipedia.org/wiki/Creditor_Reference
14
- # ref is optional so that we can create unit tests
24
+ ##
25
+ # Produces a random valid reference according to the International bank slip reference https://en.wikipedia.org/wiki/Creditor_Reference
26
+ #
27
+ # @param ref [String] Specifies reference base.
28
+ # @return [String]
29
+ #
30
+ # @example
31
+ # Faker::Invoice.creditor_reference #=> "RF34118592570724925498"
32
+ #
33
+ # @faker.version 1.9.0
15
34
  def creditor_reference(ref: '')
16
35
  ref = reference if ref.empty?
17
36
 
18
- 'RF' + iban_checksum('RF', ref) + ref
37
+ "RF#{iban_checksum('RF', ref)}#{ref}"
19
38
  end
20
39
 
21
- # Payment references have some rules in certain countries
22
- # ref is optional so that we can create unit tests
40
+ ##
41
+ # Produces a random valid reference.
42
+ #
43
+ # @param ref [String] Specifies reference base.
44
+ # @return [String]
45
+ #
46
+ # @example
47
+ # Faker::Invoice.reference #=> "45656646957845"
48
+ #
49
+ # @faker.version 1.9.0
23
50
  def reference(ref: '')
24
51
  pattern = fetch('invoice.reference.pattern')
25
52
 
@@ -75,7 +102,7 @@ module Faker
75
102
  mod10_remainder(weighted_sum)
76
103
  end
77
104
 
78
- # Calculates weigthed sum
105
+ # Calculates weighted sum
79
106
  #
80
107
  # For example with 12345678, [1,2]
81
108
  # Ref.num. 1 2 3 4 5 6 7 8
@@ -5,18 +5,54 @@ module Faker
5
5
  flexible :job
6
6
 
7
7
  class << self
8
+ ##
9
+ # Produces a random job title.
10
+ #
11
+ # @return [String]
12
+ #
13
+ # @example
14
+ # Faker::Job.title #=> "Construction Manager"
15
+ #
16
+ # @faker.version 1.7.0
8
17
  def title
9
18
  parse('job.title')
10
19
  end
11
20
 
21
+ ##
22
+ # Produces a random job position.
23
+ #
24
+ # @return [String]
25
+ #
26
+ # @example
27
+ # Faker::Job.position #=> "Strategist"
28
+ #
29
+ # @faker.version 1.8.7
12
30
  def position
13
31
  fetch('job.position')
14
32
  end
15
33
 
34
+ ##
35
+ # Produces a random job field.
36
+ #
37
+ # @return [String]
38
+ #
39
+ # @example
40
+ # Faker::Job.field #=> "Banking"
41
+ #
42
+ # @faker.version 1.7.0
16
43
  def field
17
44
  fetch('job.field')
18
45
  end
19
46
 
47
+ ##
48
+ # Produces a random job skill.
49
+ #
50
+ # @return [String]
51
+ #
52
+ # @example
53
+ # Faker::Job.key_skill #=> "Leadership"
54
+ #
55
+ # @faker.version 1.7.0
20
56
  def key_skill
21
57
  fetch('job.key_skills')
22
58
  end
@@ -1,22 +1,79 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Faker
2
4
  class Json < Base
3
5
  require 'json'
4
6
 
5
7
  class << self
8
+ ##
9
+ # Produces a random simple JSON formatted string.
10
+ #
11
+ # @param width [Integer] Specifies the number of key-value pairs.
12
+ # @param options [Hash] Specifies a Faker gem class to use for keys and for values, respectably. options_hash = {key: Class.method, value: Class.method}
13
+ # @return [Hash{String => String}]
14
+ #
15
+ # @example
16
+ # Faker::Json.shallow_json(width: 3, options: { key: 'RockBand.name', value: 'Seinfeld.quote' }) # =>
17
+ # {"Parliament Funkadelic":"They're real, and they're spectacular.",
18
+ # "Fleetwood Mac":"I'm not a lesbian. I hate men, but I'm not a lesbian.",
19
+ # "The Roots":"It became very clear to me sitting out there today that every decision
20
+ # I've made in my entire life has been wrong. My life is the complete opposite of everything
21
+ # I want it to be. Every instinct I have, in every aspect of life, be it something to wear,
22
+ # something to eat - it's all been wrong."}
23
+ #
24
+ # @faker.version 1.9.2
6
25
  def shallow_json(width: 3, options: { key: 'Name.first_name', value: 'Name.first_name' })
7
- options[:key] = 'Faker::' + options[:key]
8
- options[:value] = 'Faker::' + options[:value]
26
+ options[:key] = "Faker::#{options[:key]}"
27
+ options[:value] = "Faker::#{options[:value]}"
9
28
 
10
29
  hash = build_shallow_hash(width, options)
11
30
  JSON.generate(hash)
12
31
  end
13
32
 
33
+ ##
34
+ # Produces a random nested JSON formatted string that can take JSON as an additional argument.
35
+ #
36
+ # @param json [Hash{String => String}] Specifies a Json.shallow_json and uses its keys as keys of the nested JSON.
37
+ # @param width [Integer] Specifies the number of nested key-value pairs.
38
+ # @param options [Hash] Specifies a Faker gem class to use for nested keys and for values, respectably. options_hash = {key: Class.method, value: Class.method}
39
+ # @return [Hash{String => String}]
40
+ #
41
+ # @example
42
+ # json = Faker::Json.shallow_json(width: 3, options: { key: 'Name.first_name', value: 'Name.last_name' })
43
+ # puts json # =>
44
+ # {"Alisha":"Olson","Everardo":"DuBuque","Bridgette":"Turner"}
45
+ #
46
+ # json2 = Faker::Json.add_depth_to_json(json: json, width: 2, options: { key: 'Name.first_name', value: 'Name.last_name' })
47
+ # puts json2 # =>
48
+ # {"Alisha":{"Daisy":"Trantow","Oda":"Haag"},
49
+ # "Everardo":{"Javier":"Marvin","Eliseo":"Schuppe"},
50
+ # "Bridgette":{"Jorge":"Kertzmann","Lelah":"MacGyver"}}
51
+ #
52
+ # json3 = Faker::Json.add_depth_to_json(json: json2, width: 4, options: { key: 'Name.first_name', value: 'Name.last_name' })
53
+ # puts json3 # =>
54
+ # {"Alisha":
55
+ # {"Daisy":
56
+ # {"Bulah":"Wunsch","Cristian":"Champlin","Lester":"Bartoletti","Greg":"Jacobson"},
57
+ # "Oda":
58
+ # {"Salvatore":"Kuhlman","Aubree":"Okuneva","Larry":"Schmitt","Velva":"Gibson"}},
59
+ # "Everardo":
60
+ # {"Javier":
61
+ # {"Eduardo":"Orn","Laila":"Kub","Thad":"Legros","Dion":"Wilderman"},
62
+ # "Eliseo":
63
+ # {"Olin":"Hilpert","Marisa":"Greenfelder","Karlee":"Schmitt","Judd":"Larkin"}},
64
+ # "Bridgette":
65
+ # {"Jorge":
66
+ # {"Eloy":"Pfeffer","Kody":"Hansen","Paxton":"Lubowitz","Abe":"Lesch"},
67
+ # "Lelah":
68
+ # {"Rick":"Wiza","Bonita":"Bayer","Gardner":"Auer","Felicity":"Abbott"}}}
69
+ #
70
+ # @faker.version 1.9.2
14
71
  def add_depth_to_json(json: shallow_json, width: 3, options: { key: 'Name.first_name', value: 'Name.first_name' })
15
- options[:key] = 'Faker::' + options[:key]
16
- options[:value] = 'Faker::' + options[:value]
72
+ options[:key] = "Faker::#{options[:key]}"
73
+ options[:value] = "Faker::#{options[:value]}"
17
74
 
18
75
  hash = JSON.parse(json)
19
- hash.each do |key, _|
76
+ hash.each_key do |key|
20
77
  add_hash_to_bottom(hash, [key], width, options)
21
78
  end
22
79
  JSON.generate(hash)
@@ -38,7 +95,7 @@ module Faker
38
95
  def add_hash_to_bottom(hash, key_array, width, options)
39
96
  key_string = build_keys_from_array(key_array)
40
97
  if eval("hash#{key_string}").is_a?(::Hash)
41
- eval("hash#{key_string}").each do |key, _|
98
+ eval("hash#{key_string}").each_key do |key|
42
99
  key_array << key
43
100
  add_hash_to_bottom(hash, key_array, width, options)
44
101
  end
@@ -49,17 +106,20 @@ module Faker
49
106
  end
50
107
 
51
108
  def add_hash(key_array, hash, width, options)
52
- string_to_eval = 'hash'
109
+ string_to_eval = 'hash'.dup
110
+
53
111
  key_array.length.times do |index|
54
112
  string_to_eval << "['#{key_array[index]}']"
55
113
  end
56
114
  string_to_eval << " = #{build_shallow_hash(width, options)}"
57
115
  eval(string_to_eval)
116
+
58
117
  hash
59
118
  end
60
119
 
61
120
  def build_keys_from_array(key_array)
62
- key_string = ''
121
+ key_string = ''.dup
122
+
63
123
  key_array.each do |value|
64
124
  key_string << "['#{value}']"
65
125
  end
@@ -3,26 +3,80 @@
3
3
  module Faker
4
4
  class Kpop < Base
5
5
  class << self
6
+ ##
7
+ # Produces the name of a 1990's 'OG' K-Pop group.
8
+ #
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::Kpop.i_groups #=> "Seo Taiji and Boys"
13
+ #
14
+ # @faker.version 1.8.5
6
15
  def i_groups
7
16
  fetch('kpop.i_groups')
8
17
  end
9
18
 
19
+ ##
20
+ # Produces the name of a 2000's K-Pop group.
21
+ #
22
+ # @return [String]
23
+ #
24
+ # @example
25
+ # Faker::Kpop.ii_groups #=> "Girls' Generation"
26
+ #
27
+ # @faker.version 1.8.5
10
28
  def ii_groups
11
29
  fetch('kpop.ii_groups')
12
30
  end
13
31
 
32
+ ##
33
+ # Produces the name of a 2010's K-Pop group.
34
+ #
35
+ # @return [String]
36
+ #
37
+ # @example
38
+ # Faker::Kpop.iii_groups #=> "Trouble Maker"
39
+ #
40
+ # @faker.version 1.8.5
14
41
  def iii_groups
15
42
  fetch('kpop.iii_groups')
16
43
  end
17
44
 
45
+ ##
46
+ # Produces the name of a K-Pop girl group.
47
+ #
48
+ # @return [String]
49
+ #
50
+ # @example
51
+ # Faker::Kpop.girl_groups #=> "2NE1"
52
+ #
53
+ # @faker.version 1.8.5
18
54
  def girl_groups
19
55
  fetch('kpop.girl_groups')
20
56
  end
21
57
 
58
+ ##
59
+ # Produces the name of a K-Pop boy band.
60
+ #
61
+ # @return [String]
62
+ #
63
+ # @example
64
+ # Faker::Kpop.boy_bands #=> "Exo"
65
+ #
66
+ # @faker.version 1.8.5
22
67
  def boy_bands
23
68
  fetch('kpop.boy_bands')
24
69
  end
25
70
 
71
+ ##
72
+ # Produces the name of a solo K-Pop artist.
73
+ #
74
+ # @return [String]
75
+ #
76
+ # @example
77
+ # Faker::Kpop.solo #=> "T.O.P"
78
+ #
79
+ # @faker.version 1.8.5
26
80
  def solo
27
81
  fetch('kpop.solo')
28
82
  end
@@ -4,62 +4,235 @@ module Faker
4
4
  # Based on Perl's Text::Lorem
5
5
  class Lorem < Base
6
6
  class << self
7
- def word
8
- sample(translate('faker.lorem.words'))
7
+ ##
8
+ # Returs the random word
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::Lorem.word #=> "soluto"
13
+ # Faker::Lorem.word(exclude_words: 'error') #=> "nisi"
14
+ # Faker::Lorem.word(exclude_words: 'id, error') #=> "et"
15
+ # Faker::Lorem.word(exclude_words: ['id', 'error']) #=> "consequatur"
16
+ #
17
+ # @faker.version 2.1.3
18
+ def word(exclude_words: nil)
19
+ words(number: 1, exclude_words: exclude_words).first
9
20
  end
10
21
 
11
- def words(number: 3, supplemental: false)
22
+ ##
23
+ # Generates random 3 words
24
+ #
25
+ # @param number [Integer] Number of words to be generated
26
+ # @param supplemental [Boolean] Whether to attach supplemental words at the end, default is false
27
+ #
28
+ # @return [Array] Array for words
29
+ #
30
+ # @example
31
+ # Faker::Lorem.words #=> ["hic", "quia", "nihil"]
32
+ # Faker::Lorem.words(number: 4) #=> ["est", "temporibus", "et", "quaerat"]
33
+ # Faker::Lorem.words(number: 4, supplemental: true) #=> ["nisi", "sit", "allatus", "consequatur"]
34
+ # Faker::Lorem.words(number: 4, supplemental: true, exclude_words: 'sit') #=> ["nisi", "allatus", "consequatur", "aut"]
35
+ #
36
+ # @faker.version 2.1.3
37
+ def words(number: 3, supplemental: false, exclude_words: nil)
12
38
  resolved_num = resolve(number)
13
39
  word_list = (
14
40
  translate('faker.lorem.words') +
15
41
  (supplemental ? translate('faker.lorem.supplemental') : [])
16
42
  )
43
+ if exclude_words
44
+ exclude_words = exclude_words.split(', ') if exclude_words.instance_of?(::String)
45
+ word_list -= exclude_words
46
+ end
17
47
  word_list *= ((resolved_num / word_list.length) + 1)
18
- shuffle(word_list)[0, resolved_num]
48
+ sample(word_list, resolved_num)
19
49
  end
20
50
 
51
+ ##
52
+ # Generates single character
53
+ #
54
+ # @return [String]
55
+ #
56
+ # @example
57
+ # Faker::Lorem.character #=> "e"
58
+ #
59
+ # @faker.version 2.1.3
21
60
  def character
22
- sample(Types::CHARACTERS)
61
+ sample(Faker::Types::CHARACTERS)
23
62
  end
24
63
 
25
- def characters(number: 255)
26
- Alphanumeric.alphanumeric(number: number)
64
+ ##
65
+ # Produces a random string of alphanumeric characters
66
+ #
67
+ # @param number [Integer] The number of characters to generate
68
+ # @param min_alpha [Integer] The minimum number of alphabetic to add to the string
69
+ # @param min_numeric [Integer] The minimum number of numbers to add to the string
70
+ #
71
+ # @return [String]
72
+ #
73
+ # @example
74
+ # Faker::Lorem.characters #=> "uw1ep04lhs0c4d931n1jmrspprf5w..."
75
+ # Faker::Lorem.characters(number: 10) #=> "ang9cbhoa8"
76
+ # Faker::Lorem.characters(number: 10, min_alpha: 4) #=> "ang9cbhoa8"
77
+ # Faker::Lorem.characters(number: 10, min_alpha: 4, min_numeric: 1) #=> "ang9cbhoa8"
78
+ #
79
+ # @faker.version 2.1.3
80
+ def characters(number: 255, min_alpha: 0, min_numeric: 0)
81
+ Faker::Alphanumeric.alphanumeric(number: number, min_alpha: min_alpha, min_numeric: min_numeric)
27
82
  end
28
83
 
84
+ ##
85
+ # Generates the emoji
86
+ #
87
+ # @return [String]
88
+ #
89
+ # @example
90
+ # Faker::Lorem.multibyte #=> "😀"
91
+ # Faker::Lorem.multibyte #=> "❤"
92
+ #
93
+ # @faker.version 2.1.3
29
94
  def multibyte
30
95
  sample(translate('faker.lorem.multibyte')).pack('C*').force_encoding('utf-8')
31
96
  end
32
97
 
33
- def sentence(word_count: 4, supplemental: false, random_words_to_add: 0)
34
- words(number: word_count + rand(random_words_to_add.to_i), supplemental: supplemental).join(' ').capitalize + locale_period
98
+ ##
99
+ # Generates sentence
100
+ #
101
+ # @param word_count [Integer] How many words should be there in a sentence, default to 4
102
+ # @param supplemental [Boolean] Add supplemental words, default to false
103
+ # @param random_words_to_add [Integer] Add any random words, default to 0
104
+ #
105
+ # @return [String]
106
+ #
107
+ # @example
108
+ # Faker::Lorem.sentence #=> "Magnam qui aut quidem."
109
+ # Faker::Lorem.sentence(word_count: 5) #=> "Voluptas rerum aut aliquam velit."
110
+ # Faker::Lorem.sentence(word_count: 5, supplemental: true) #=> "Aut viscus curtus votum iusto."
111
+ # Faker::Lorem.sentence(word_count: 5, supplemental: true, random_words_to_add:2) #=> "Crinis quo cruentus velit animi vomer."
112
+ #
113
+ # @faker.version 2.1.3
114
+ def sentence(word_count: 4, supplemental: false, random_words_to_add: 0, exclude_words: nil)
115
+ words(number: word_count + rand(random_words_to_add.to_i), supplemental: supplemental, exclude_words: exclude_words).join(locale_space).capitalize + locale_period
35
116
  end
36
117
 
37
- def sentences(number: 3, supplemental: false)
38
- 1.upto(resolve(number)).collect { sentence(word_count: 3, supplemental: supplemental) }
118
+ ##
119
+ # Generates three sentences
120
+ #
121
+ # @param number [Integer] How many sentences to be generated, default to 3
122
+ # @param supplemental [Boolean] Should add supplemental words, defaults to false
123
+ #
124
+ # @return [Array] Returns array for sentences.
125
+ #
126
+ # @example
127
+ # Faker::Lorem.sentences #=> ["Possimus non tenetur.", "Nulla non excepturi.", "Quisquam rerum facilis."]
128
+ # Faker::Lorem.sentences(number: 2) #=> ["Nulla est natus.", "Perferendis autem cum."]
129
+ # Faker::Lorem.sentences(number: 2, supplemental: true) #=> ["Cito cena ad.", "Solvo animus allatus."]
130
+ #
131
+ # @faker.version 2.1.3
132
+ def sentences(number: 3, supplemental: false, exclude_words: nil)
133
+ 1.upto(resolve(number)).collect { sentence(word_count: 3, supplemental: supplemental, exclude_words: exclude_words) }
39
134
  end
40
135
 
41
- def paragraph(sentence_count: 3, supplemental: false, random_sentences_to_add: 0)
42
- sentences(number: resolve(sentence_count) + rand(random_sentences_to_add.to_i), supplemental: supplemental).join(locale_space)
136
+ ##
137
+ # Generates three sentence paragraph
138
+ #
139
+ # @param sentence_count [Integer] Number of sentences in the paragraph
140
+ # @param supplemental [Boolean]
141
+ # @param random_sentences_to_add [Integer]
142
+ #
143
+ # @return [String]
144
+ #
145
+ # @example
146
+ # Faker::Lorem.paragraph
147
+ # #=> "Impedit et est. Aliquid deleniti necessitatibus. Et aspernatur minima."
148
+ # Faker::Lorem.paragraph(sentence_count: 2)
149
+ # #=> "Rerum fugit vitae. Et atque autem."
150
+ # Faker::Lorem.paragraph(sentence_count: 2, supplemental: true)
151
+ # #=> "Terreo coerceo utor. Vester sunt cogito."
152
+ # Faker::Lorem.paragraph(sentence_count: 2, supplemental: true, random_sentences_to_add: 2)
153
+ # #=> "Texo tantillus tamisium. Tribuo amissio tamisium. Facere aut canis."
154
+ #
155
+ # @faker.version 2.1.3
156
+ def paragraph(sentence_count: 3, supplemental: false, random_sentences_to_add: 0, exclude_words: nil)
157
+ sentences(number: resolve(sentence_count) + rand(random_sentences_to_add.to_i), supplemental: supplemental, exclude_words: exclude_words).join(locale_space)
43
158
  end
44
159
 
45
- def paragraphs(number: 3, supplemental: false)
46
- 1.upto(resolve(number)).collect { paragraph(sentence_count: 3, supplemental: supplemental) }
160
+ ##
161
+ # Generates three paragraphs
162
+ #
163
+ # @param number [Integer]
164
+ # @param supplemental [Boolean]
165
+ #
166
+ # @return [Array]
167
+ #
168
+ # @example
169
+ # Faker::Lorem.paragraphs
170
+ # Faker::Lorem.paragraphs(number:2)
171
+ # Faker::Lorem.paragraphs(number:2, supplemental: true)
172
+ #
173
+ # @faker.version 2.1.3
174
+ def paragraphs(number: 3, supplemental: false, exclude_words: nil)
175
+ 1.upto(resolve(number)).collect { paragraph(sentence_count: 3, supplemental: supplemental, exclude_words: exclude_words) }
47
176
  end
48
177
 
178
+ ##
179
+ # Generates paragraph with 256 characters
180
+ #
181
+ # @param number [Integer]
182
+ # @param supplemental [Boolean]
183
+ #
184
+ # @return [String]
185
+ #
186
+ # @example
187
+ # Faker::Lorem.paragraph_by_chars
188
+ # Faker::Lorem.paragraph_by_chars(number: 20) #=> "Sit modi alias. Imp."
189
+ # Faker::Lorem.paragraph_by_chars(number: 20, supplemental: true) #=> "Certus aveho admove."
190
+ #
191
+ # @faker.version 2.1.3
49
192
  def paragraph_by_chars(number: 256, supplemental: false)
50
193
  paragraph = paragraph(sentence_count: 3, supplemental: supplemental)
51
194
 
52
- paragraph += ' ' + paragraph(sentence_count: 3, supplemental: supplemental) while paragraph.length < number
195
+ paragraph += " #{paragraph(sentence_count: 3, supplemental: supplemental)}" while paragraph.length < number
53
196
 
54
- paragraph[0...number - 1] + '.'
197
+ "#{paragraph[0...(number - 1)]}."
55
198
  end
56
199
 
57
- def question(word_count: 4, supplemental: false, random_words_to_add: 0)
58
- words(number: word_count + rand(random_words_to_add), supplemental: supplemental).join(' ').capitalize + locale_question_mark
200
+ ##
201
+ # Returns the question with 4 words
202
+ #
203
+ # @param word_count [Integer]
204
+ # @param supplemental [Boolean]
205
+ # @param random_words_to_add [Integer]
206
+ #
207
+ # @return [String]
208
+ #
209
+ # @example
210
+ # Faker::Lorem.question #=> "Natus deleniti sequi laudantium?"
211
+ # Faker::Lorem.question(word_count: 2) #=> "Quo ut?"
212
+ # Faker::Lorem.question(word_count: 2, supplemental: true) #=> "Terga consequatur?"
213
+ # Faker::Lorem.question(word_count: 2, supplemental: true, random_words_to_add: 2) #=> "Depulso uter ut?"
214
+ #
215
+ # @faker.version 2.1.3
216
+ def question(word_count: 4, supplemental: false, random_words_to_add: 0, exclude_words: nil)
217
+ words(number: word_count + rand(random_words_to_add), supplemental: supplemental, exclude_words: exclude_words).join(' ').capitalize + locale_question_mark
59
218
  end
60
219
 
61
- def questions(number: 3, supplemental: false)
62
- 1.upto(resolve(number)).collect { question(word_count: 3, supplemental: supplemental) }
220
+ ##
221
+ # Generates array of three questions
222
+ #
223
+ # @param number [Integer]
224
+ # @param supplemental [Boolean]
225
+ #
226
+ # @return [Array]
227
+ #
228
+ # @example
229
+ # Faker::Lorem.questions #=> ["Amet culpa enim?", "Voluptatem deleniti numquam?", "Veniam non cum?"]
230
+ # Faker::Lorem.questions(number: 2) #=> ["Minus occaecati nobis?", "Veniam et alias?"]
231
+ # Faker::Lorem.questions(number: 2, supplemental: true) #=> ["Acceptus subito cetera?", "Aro sulum cubicularis?"]
232
+ #
233
+ # @faker.version 2.1.3
234
+ def questions(number: 3, supplemental: false, exclude_words: nil)
235
+ 1.upto(resolve(number)).collect { question(word_count: 3, supplemental: supplemental, exclude_words: exclude_words) }
63
236
  end
64
237
 
65
238
  private