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
data/History.md DELETED
@@ -1,176 +0,0 @@
1
- ## v1.6.5 (2016-07-08)
2
- * Removed Faker::ChuckNorris.name
3
-
4
- ## v1.6.4 (2016-07-06)
5
- * Removed support for Ruby 1.9.3
6
- * Added Faker::ChuckNorris, Faker::Crypto, Faker::Educator, Faker::File, Faker::Music, Faker::Space, Faker::Vehicle, and Faker::Yoda
7
- * Fixed bug with credit card types
8
- * DST fixes in Faker::Time
9
- * Added Faker::Name.name_with_middle
10
- * Added Faker::Code.imei
11
- * Added Faker::Code.asin
12
- * Added Faker::Lorem.question and Faker::Lorem.questions
13
- * Added Faker::Internet.private_ip_v4_address
14
- * Added Faker::Company.australian_business_number
15
- * Other miscellaneous fixes and locale updates
16
-
17
- ## v1.6.3 (2016-02-23)
18
- * Fix for UTF problem in Ruby 1.9.3
19
- * Fix for Faker::StarWars.character
20
- * Updated sv locale
21
-
22
- ## v1.6.2 (2016-02-20)
23
- * Fix for locale-switching (Russian email addresses)
24
- * Added Faker::Beer, Faker::Boolean, Faker::Cat, Faker::StarWars, and Faker::Superhero
25
- * Added Faker::Color.color_name
26
- * Added Faker::Date.between_except
27
- * Fixed Faker::Internet.ip_v4_cidr and Faker::Internet.ip_v6_cidr
28
- * Added locales: ca, ca-CAT, da-DK, fi-FI, and pt
29
-
30
- ## v1.6.1 (2015-11-23)
31
- * Fix for locale issues in tests
32
-
33
- ## v1.6.0 (2015-11-23)
34
- * Lots of bug fixes -- most notably, a fix for email addresses and domains in non-en locales
35
- * Updated locales: de, en-AU, en-NZ, en-SG, en-US, en-au-ocker, en, es, fr, he, it, ja, nb-NO, pl, pt-BR, sk, and zh-CN
36
- * Updated classes: Address, Avatar, Book, Code, Commerce, Company, Hipster, IDNumber, Internet, Number, Placeholdit, Shakespeare, and Time
37
-
38
- ## v1.5.0 (2015-08-17)
39
- * Added logos
40
- * Added Slack Emoji
41
- * Updated image generators
42
- * Updated Dutch Locale
43
- * Added support for generating RGB values, HSL colors, alpha channel, and HSLA colors
44
- * Added locale for Uganda
45
- * Added basic Ukrainian support
46
- * Added university name generator
47
- * Updated documentation
48
- * Updated a variety of locales
49
- * Various fixes
50
-
51
- ## v1.4.3 (2014-08-15)
52
- * Updated Russian locale
53
- * Added EIN generator
54
- * Fixed Swedish locale
55
- * Added birthday to Faker::Date
56
- * Added Faker::App
57
-
58
- ## v1.4.2 (2014-07-15)
59
- * Added Swedish locale
60
- * README update
61
-
62
- ## v1.4.1 (2014-07-04)
63
- * Bugfix and cleanup
64
-
65
- ## v1.4.0 (2014-07-03)
66
- * Many enhancements and bugfixes
67
-
68
- ## v1.3.0 (2014-03-08)
69
- * Many enhancements and few bugfixes
70
-
71
- ## v1.2.0 (2013-07-27)
72
- * Many major and minor enhancements :)
73
-
74
- ## v1.1.2 (2012-09-18)
75
- * 1 minor change:
76
- * Fixed Ruby 1.8 compatibility
77
-
78
- ## v1.1.1 (2012-09-17)
79
- * 1 minor change:
80
- * Removed ja locale because of parse errors
81
-
82
- ## v1.1.0 (2012-09-15)
83
- * 1 major change:
84
- * Removed deprecated methods from Address: earth_country, us_state, us_state_abbr, uk_postcode, uk_county
85
- * Many minor changes (please see github pull requests for credits)
86
- * Added many localizations
87
- * Added range and array support for Lorem
88
-
89
- ## v1.0.1 (2011-09-27)
90
- * 1 minor enhancement
91
- * Added safe_email method to get someaddress@example.com [Kazimierz Kiełkowicz]
92
- * 1 bug fix:
93
- * Use the locale fallback properly when parsing string formats
94
-
95
- ## v1.0.0 (2011-09-08)
96
- * 2 major enhancements
97
- * Moved all formats to locale files
98
- * Stopped interfering with I18n's global settings for fallbacks
99
- * 3 minor bug fixes:
100
- * Ruby 1.9.2 fixes [eMxyzptlk]
101
- * UTF8 fixes [maxmiliano]
102
- * Updated IPv4 generator to return valid addresses [Sylvain Desbureaux]
103
- * Many minor enhancements:
104
- * Added bork locale for bork-ified lorem [johnbentcope]
105
- * Added IPv6 address generator [jc00ke]
106
- * Removed deprecation warnings for Array#rand [chrismarshall]
107
- * Added German translation and I18n improvments [Matthias Kühnert]
108
- * Added Dutch translation [moretea]
109
- * Added Lat/Long generator [Andy Callaghan]
110
- * Added buzzword-laden title generator [supercleanse]
111
- * Added optional extended wordlist for lorem [chriskottom]
112
- * Updated German translation [Jan Schwenzien]
113
- * Locale improvements [suweller]
114
- * Added limit to lorem generator [darrenterhune]
115
- * Added Brazilian Portuguese translation [maxmiliano]
116
- * Added Australian translation [madeindata]
117
- * Added Canadian translation [igbanam]
118
- * Added Norwegian translation [kytrinyx]
119
- * Lots of translation-related cleanup [kytrinyx]
120
-
121
-
122
- ## v0.9.5 (2011-01-27)
123
- * 1 minor bug fix:
124
- * Fixed YAML [Aaron Patterson]
125
- * 3 minor enhancements:
126
- * Added default rake task to run all tests [Aaron Patterson]
127
- * Removed shuffle method [Aaron Patterson]
128
- * Use psych if present [Aaron Patterson]
129
-
130
- ## v0.9.4 (2010-12-29)
131
- * 1 minor bug fix:
132
- * Stopped getting in the way of Rails' late locale loading
133
-
134
- ## v0.9.3 (2010-12-28)
135
- * 1 minor enhancement:
136
- * Added a faker namespace for translations
137
-
138
- ## v0.9.2 (2010-12-22)
139
- * 1 bug fix:
140
- * Stopped stomping on I18n load path
141
-
142
- ## v0.9.1 (2010-12-22)
143
- * 1 bug fix:
144
- * Stopped setting I18n default locale
145
- * 1 major enhancement:
146
- * Added method_missing to Address to add methods based on data in locale files
147
- * 1 minor enhancement:
148
- * Added Swiss locale [Lukas Westermann]
149
-
150
- ## v0.9.0 (2010-12-21)
151
- * 1 major enhancement:
152
- * Moved strings and some formats to locale files
153
-
154
- ## v0.3.1 (2008-04-03)
155
- * 1 minor enhancement:
156
- * Added city to Address
157
-
158
- ## v0.3.0 (2008-01-01)
159
- * 3 major enhancements:
160
- * Added Lorem to generate fake Latin
161
- * Added secondary_address to Address, and made inclusion of
162
- secondary address in street_address optional (false by
163
- default).
164
- * Added UK address methods [Caius Durling]
165
-
166
- ## v0.2.1 (2007-12-05)
167
- * 1 major enhancement:
168
- * Dropped facets to avoid conflict with ActiveSupport
169
- * 2 minor enhancements:
170
- * Changed the output of user_name to randomly separate with a . or _
171
- * Added a few tests
172
-
173
- ## v0.1.0 (2007-11-22)
174
-
175
- * 1 major enhancement:
176
- * Initial release
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Faker
4
- class Book < Base
5
- flexible :book
6
-
7
- class << self
8
- def title
9
- fetch('book.title')
10
- end
11
-
12
- def author
13
- parse('book.author')
14
- end
15
-
16
- def publisher
17
- fetch('book.publisher')
18
- end
19
-
20
- def genre
21
- fetch('book.genre')
22
- end
23
- end
24
- end
25
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Faker
4
- class BossaNova < Base
5
- class << self
6
- def artist
7
- fetch('bossa_nova.artists')
8
- end
9
-
10
- def song
11
- fetch('bossa_nova.songs')
12
- end
13
- end
14
- end
15
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Faker
4
- class Fillmurray < Base
5
- class << self
6
- def image(grayscale: false, width: 200, height: 200)
7
- raise ArgumentError, 'Width should be a number' unless width.to_s =~ /^\d+$/
8
- raise ArgumentError, 'Height should be a number' unless height.to_s =~ /^\d+$/
9
- raise ArgumentError, 'Grayscale should be a boolean' unless [true, false].include?(grayscale)
10
-
11
- "https://www.fillmurray.com#{'/g' if grayscale == true}/#{width}/#{height}"
12
- end
13
- end
14
- end
15
- end
@@ -1,207 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Faker
4
- class Internet < Base
5
- class << self
6
- def email(name: nil, separators: nil)
7
- if separators
8
- [username(specifier: name, separators: separators), domain_name].join('@')
9
- else
10
- [username(specifier: name), domain_name].join('@')
11
- end
12
- end
13
-
14
- def free_email(name: nil)
15
- [username(specifier: name), fetch('internet.free_email')].join('@')
16
- end
17
-
18
- def safe_email(name: nil)
19
- [username(specifier: name), 'example.' + sample(%w[org com net])].join('@')
20
- end
21
-
22
- def username(specifier: nil, separators: %w[. _])
23
- with_locale(:en) do
24
- return shuffle(specifier.scan(/[[:word:]]+/)).join(sample(separators)).downcase if specifier.respond_to?(:scan)
25
-
26
- if specifier.is_a?(Integer)
27
- # If specifier is Integer and has large value, Argument error exception is raised to overcome memory full error
28
- raise ArgumentError, 'Given argument is too large' if specifier > 10**6
29
-
30
- tries = 0 # Don't try forever in case we get something like 1_000_000.
31
- result = nil
32
- loop do
33
- result = username(specifier: nil, separators: separators)
34
- tries += 1
35
- break unless result.length < specifier && tries < 7
36
- end
37
- return result * (specifier / result.length + 1) if specifier.positive?
38
- elsif specifier.is_a?(Range)
39
- tries = 0
40
- result = nil
41
- loop do
42
- result = username(specifier: specifier.min, separators: separators)
43
- tries += 1
44
- break unless !specifier.include?(result.length) && tries < 7
45
- end
46
- return result[0...specifier.max]
47
- end
48
-
49
- sample([
50
- Char.prepare(Name.first_name),
51
- [Name.first_name, Name.last_name].map do |name|
52
- Char.prepare(name)
53
- end.join(sample(separators))
54
- ])
55
- end
56
- end
57
-
58
- def password(min_length: 8, max_length: 16, mix_case: true, special_characters: false)
59
- temp = Lorem.characters(number: min_length)
60
- diff_length = max_length - min_length
61
-
62
- if diff_length.positive?
63
- diff_rand = rand(diff_length + 1)
64
- temp += Lorem.characters(number: diff_rand)
65
- end
66
-
67
- if mix_case
68
- temp.chars.each_with_index do |char, index|
69
- temp[index] = char.upcase if index.even?
70
- end
71
- end
72
-
73
- if special_characters
74
- chars = %w[! @ # $ % ^ & *]
75
- rand(1..min_length).times do |i|
76
- temp[i] = chars[rand(chars.length)]
77
- end
78
- end
79
-
80
- temp
81
- end
82
-
83
- def domain_name(subdomain: false)
84
- with_locale(:en) do
85
- domain_elements = [Char.prepare(domain_word), domain_suffix]
86
- domain_elements.unshift(Char.prepare(domain_word)) if subdomain
87
- domain_elements.join('.')
88
- end
89
- end
90
-
91
- def fix_umlauts(string: '')
92
- Char.fix_umlauts(string)
93
- end
94
-
95
- def domain_word
96
- with_locale(:en) { Char.prepare(Company.name.split(' ').first) }
97
- end
98
-
99
- def domain_suffix
100
- fetch('internet.domain_suffix')
101
- end
102
-
103
- def mac_address(prefix: '')
104
- prefix_digits = prefix.split(':').map { |d| d.to_i(16) }
105
- address_digits = Array.new((6 - prefix_digits.size)) { rand(256) }
106
- (prefix_digits + address_digits).map { |d| format('%02x', d) }.join(':')
107
- end
108
-
109
- def ip_v4_address
110
- [rand_in_range(0, 255), rand_in_range(0, 255),
111
- rand_in_range(0, 255), rand_in_range(0, 255)].join('.')
112
- end
113
-
114
- def private_ip_v4_address
115
- addr = nil
116
- loop do
117
- addr = ip_v4_address
118
- break if private_net_checker[addr]
119
- end
120
- addr
121
- end
122
-
123
- def public_ip_v4_address
124
- addr = nil
125
- loop do
126
- addr = ip_v4_address
127
- break unless reserved_net_checker[addr]
128
- end
129
- addr
130
- end
131
-
132
- def private_nets_regex
133
- [
134
- /^10\./, # 10.0.0.0 - 10.255.255.255
135
- /^100\.(6[4-9]|[7-9]\d|1[0-1]\d|12[0-7])\./, # 100.64.0.0 - 100.127.255.255
136
- /^127\./, # 127.0.0.0 - 127.255.255.255
137
- /^169\.254\./, # 169.254.0.0 - 169.254.255.255
138
- /^172\.(1[6-9]|2\d|3[0-1])\./, # 172.16.0.0 - 172.31.255.255
139
- /^192\.0\.0\./, # 192.0.0.0 - 192.0.0.255
140
- /^192\.168\./, # 192.168.0.0 - 192.168.255.255
141
- /^198\.(1[8-9])\./ # 198.18.0.0 - 198.19.255.255
142
- ]
143
- end
144
-
145
- def private_net_checker
146
- ->(addr) { private_nets_regex.any? { |net| net =~ addr } }
147
- end
148
-
149
- def reserved_nets_regex
150
- [
151
- /^0\./, # 0.0.0.0 - 0.255.255.255
152
- /^192\.0\.2\./, # 192.0.2.0 - 192.0.2.255
153
- /^192\.88\.99\./, # 192.88.99.0 - 192.88.99.255
154
- /^198\.51\.100\./, # 198.51.100.0 - 198.51.100.255
155
- /^203\.0\.113\./, # 203.0.113.0 - 203.0.113.255
156
- /^(22[4-9]|23\d)\./, # 224.0.0.0 - 239.255.255.255
157
- /^(24\d|25[0-5])\./ # 240.0.0.0 - 255.255.255.254 and 255.255.255.255
158
- ]
159
- end
160
-
161
- def reserved_net_checker
162
- ->(addr) { (private_nets_regex + reserved_nets_regex).any? { |net| net =~ addr } }
163
- end
164
-
165
- def ip_v4_cidr
166
- "#{ip_v4_address}/#{rand(1..31)}"
167
- end
168
-
169
- def ip_v6_address
170
- (1..8).map { rand(65_536).to_s(16) }.join(':')
171
- end
172
-
173
- def ip_v6_cidr
174
- "#{ip_v6_address}/#{rand(1..127)}"
175
- end
176
-
177
- def url(host: domain_name, path: "/#{username}", scheme: 'http')
178
- "#{scheme}://#{host}#{path}"
179
- end
180
-
181
- def slug(words: nil, glue: nil)
182
- glue ||= sample(%w[- _])
183
- (words || Faker::Lorem.words(number: 2).join(' ')).delete(',.').gsub(' ', glue).downcase
184
- end
185
-
186
- def device_token
187
- shuffle(rand(16**64).to_s(16).rjust(64, '0').chars.to_a).join
188
- end
189
-
190
- def user_agent(vendor: nil)
191
- agent_hash = translate('faker.internet.user_agent')
192
- agents = vendor.respond_to?(:to_sym) && agent_hash[vendor.to_sym] || agent_hash[sample(agent_hash.keys)]
193
- sample(agents)
194
- end
195
-
196
- def uuid
197
- # borrowed from: https://github.com/ruby/ruby/blob/d48783bb0236db505fe1205d1d9822309de53a36/lib/securerandom.rb#L250
198
- ary = Faker::Config.random.bytes(16).unpack('NnnnnN')
199
- ary[2] = (ary[2] & 0x0fff) | 0x4000
200
- ary[3] = (ary[3] & 0x3fff) | 0x8000
201
- '%08x-%04x-%04x-%04x-%04x%08x' % ary # rubocop:disable Style/FormatString
202
- end
203
-
204
- alias user_name username
205
- end
206
- end
207
- end
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Faker
4
- class LoremPixel < Base
5
- class << self
6
- SUPPORTED_CATEGORIES = %w[abstract
7
- animals
8
- business
9
- cats
10
- city
11
- food
12
- nightlife
13
- fashion
14
- people
15
- nature
16
- sports
17
- technics
18
- transport].freeze
19
-
20
- # rubocop:disable Metrics/ParameterLists
21
- def image(size: '300x300', is_gray: false, category: nil, number: nil, text: nil, secure: true)
22
- raise ArgumentError, 'Size should be specified in format 300x300' unless size =~ /^[0-9]+x[0-9]+$/
23
- raise ArgumentError, "Supported categories are #{SUPPORTED_CATEGORIES.join(', ')}" unless category.nil? || SUPPORTED_CATEGORIES.include?(category)
24
- raise ArgumentError, 'Category required when number is passed' if !number.nil? && category.nil?
25
- raise ArgumentError, 'Number must be between 1 and 10' unless number.nil? || (1..10).cover?(number)
26
- raise ArgumentError, 'Category and number must be passed when text is passed' if !text.nil? && number.nil? && category.nil?
27
-
28
- url_parts = secure ? ['https:/'] : ['http:/']
29
- url_parts << ['lorempixel.com']
30
- url_parts << 'g' if is_gray
31
- url_parts += size.split('x')
32
- url_parts += [category, number, text].compact
33
- url_parts.join('/')
34
- end
35
- # rubocop:enable Metrics/ParameterLists
36
- end
37
- end
38
- end
@@ -1,174 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Faker
4
- class Twitter < Base
5
- class << self
6
- def user(include_status: true, include_email: false)
7
- user_id = id
8
- background_image_url = Faker::LoremPixel.image(size: '600x400') # TODO: Make the dimensions change
9
- profile_image_url = Faker::Avatar.image(slug: user_id, size: '48x48')
10
- user = {
11
- id: user_id,
12
- id_str: user_id.to_s,
13
- contributors_enabled: Faker::Boolean.boolean(true_ratio: 0.1),
14
- created_at: created_at,
15
- default_profile_image: Faker::Boolean.boolean(true_ratio: 0.1),
16
- default_profile: Faker::Boolean.boolean(true_ratio: 0.1),
17
- description: Faker::Lorem.sentence,
18
- entities: user_entities,
19
- favourites_count: Faker::Number.between(to: 1, from: 100_000),
20
- follow_request_sent: false,
21
- followers_count: Faker::Number.between(to: 1, from: 10_000_000),
22
- following: false,
23
- friends_count: Faker::Number.between(to: 1, from: 100_000),
24
- geo_enabled: Faker::Boolean.boolean(true_ratio: 0.1),
25
- is_translation_enabled: Faker::Boolean.boolean(true_ratio: 0.1),
26
- is_translator: Faker::Boolean.boolean(true_ratio: 0.1),
27
- lang: Faker::Address.country_code,
28
- listed_count: Faker::Number.between(to: 1, from: 1000),
29
- location: "#{Faker::Address.city}, #{Faker::Address.state_abbr}, #{Faker::Address.country_code}",
30
- name: Faker::Name.name,
31
- notifications: false,
32
- profile_background_color: Faker::Color.hex_color,
33
- profile_background_image_url_https: background_image_url,
34
- profile_background_image_url: background_image_url.sub('https://', 'http://'),
35
- profile_background_tile: Faker::Boolean.boolean(true_ratio: 0.1),
36
- profile_banner_url: Faker::LoremPixel.image(size: '1500x500'),
37
- profile_image_url_https: profile_image_url,
38
- profile_image_url: profile_image_url.sub('https://', 'http://'),
39
- profile_link_color: Faker::Color.hex_color,
40
- profile_sidebar_border_color: Faker::Color.hex_color,
41
- profile_sidebar_fill_color: Faker::Color.hex_color,
42
- profile_text_color: Faker::Color.hex_color,
43
- profile_use_background_image: Faker::Boolean.boolean(true_ratio: 0.4),
44
- protected: Faker::Boolean.boolean(true_ratio: 0.1),
45
- screen_name: screen_name,
46
- statuses_count: Faker::Number.between(to: 1, from: 100_000),
47
- time_zone: Faker::Address.time_zone,
48
- url: Faker::Internet.url(host: 'example.com'),
49
- utc_offset: utc_offset,
50
- verified: Faker::Boolean.boolean(true_ratio: 0.1)
51
- }
52
- user[:status] = Faker::Twitter.status(include_user: false) if include_status
53
- user[:email] = Faker::Internet.safe_email if include_email
54
- user
55
- end
56
-
57
- def status(include_user: true, include_photo: false)
58
- status_id = id
59
- status = {
60
- id: status_id,
61
- id_str: status_id.to_s,
62
- contributors: nil,
63
- coordinates: nil,
64
- created_at: created_at,
65
- entities: status_entities(include_photo: include_photo),
66
- favorite_count: Faker::Number.between(to: 1, from: 10_000),
67
- favorited: false,
68
- geo: nil,
69
- in_reply_to_screen_name: nil,
70
- in_reply_to_status_id: nil,
71
- in_reply_to_user_id_str: nil,
72
- in_reply_to_user_id: nil,
73
- is_quote_status: false,
74
- lang: Faker::Address.country_code,
75
- nil: nil,
76
- place: nil,
77
- possibly_sensitive: Faker::Boolean.boolean(true_ratio: 0.1),
78
- retweet_count: Faker::Number.between(to: 1, from: 10_000),
79
- retweeted_status: nil,
80
- retweeted: false,
81
- source: "<a href=\"#{Faker::Internet.url(host: 'example.com')}\" rel=\"nofollow\">#{Faker::Company.name}</a>",
82
- text: Faker::Lorem.sentence,
83
- truncated: false
84
- }
85
- status[:user] = Faker::Twitter.user(include_status: false) if include_user
86
- status[:text] = "#{status[:text]} #{status[:entities][:media].first[:url]}" if include_photo
87
- status
88
- end
89
-
90
- def screen_name
91
- Faker::Internet.username(specifier: nil, separators: ['_'])[0...20]
92
- end
93
-
94
- private
95
-
96
- def id
97
- Faker::Number.between(from: 1, to: 9_223_372_036_854_775_807)
98
- end
99
-
100
- def created_at
101
- Faker::Date.between(from: '2006-03-21', to: ::Date.today).strftime('%a %b %d %H:%M:%S %z %Y')
102
- end
103
-
104
- def utc_offset
105
- Faker::Number.between(to: -43_200, from: 50_400)
106
- end
107
-
108
- def user_entities
109
- {
110
- url: {
111
- urls: []
112
- },
113
- description: {
114
- urls: []
115
- }
116
- }
117
- end
118
-
119
- def status_entities(include_photo: false)
120
- entities = {
121
- hashtags: [],
122
- symbols: [],
123
- user_mentions: [],
124
- urls: []
125
- }
126
- entities[:media] = [photo_entity] if include_photo
127
- entities
128
- end
129
-
130
- def photo_entity
131
- # TODO: Dynamic image sizes
132
- # TODO: Return accurate indices
133
- media_url = Faker::LoremPixel.image(size: '1064x600')
134
- media_id = id
135
- {
136
- id: media_id,
137
- id_str: media_id.to_s,
138
- indices: [
139
- 103,
140
- 126
141
- ],
142
- media_url: media_url.sub('https://', 'http://'),
143
- media_url_https: media_url,
144
- url: Faker::Internet.url(host: 'example.com'),
145
- display_url: 'example.com',
146
- expanded_url: Faker::Internet.url(host: 'example.com'),
147
- type: 'photo',
148
- sizes: {
149
- medium: {
150
- w: 1064,
151
- h: 600,
152
- resize: 'fit'
153
- },
154
- large: {
155
- w: 1064,
156
- h: 600,
157
- resize: 'fit'
158
- },
159
- small: {
160
- w: 680,
161
- h: 383,
162
- resize: 'fit'
163
- },
164
- thumb: {
165
- w: 150,
166
- h: 150,
167
- resize: 'crop'
168
- }
169
- }
170
- }
171
- end
172
- end
173
- end
174
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Faker
4
- class Game < Base
5
- flexible :game
6
-
7
- class << self
8
- def title
9
- fetch('game.title')
10
- end
11
-
12
- def genre
13
- fetch('game.genre')
14
- end
15
-
16
- def platform
17
- fetch('game.platform')
18
- end
19
- end
20
- end
21
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Faker
4
- class Movie < Base
5
- class << self
6
- def quote
7
- fetch('movie.quote')
8
- end
9
- end
10
- end
11
- end