faker 1.8.2 → 2.23.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 (615) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +1756 -10
  3. data/History.md +4 -4
  4. data/License.txt +2 -2
  5. data/README.md +328 -111
  6. data/bin/faker +5 -0
  7. data/lib/faker/blockchain/aeternity.rb +70 -0
  8. data/lib/faker/blockchain/bitcoin.rb +60 -0
  9. data/lib/faker/blockchain/ethereum.rb +26 -0
  10. data/lib/faker/blockchain/tezos.rb +135 -0
  11. data/lib/faker/books/book.rb +61 -0
  12. data/lib/faker/books/culture_series.rb +83 -0
  13. data/lib/faker/books/dune.rb +132 -0
  14. data/lib/faker/books/lovecraft.rb +280 -0
  15. data/lib/faker/books/the_kingkiller_chronicle.rb +61 -0
  16. data/lib/faker/creature/animal.rb +22 -0
  17. data/lib/faker/creature/bird.rb +203 -0
  18. data/lib/faker/creature/cat.rb +50 -0
  19. data/lib/faker/creature/dog.rb +115 -0
  20. data/lib/faker/creature/horse.rb +37 -0
  21. data/lib/faker/default/address.rb +368 -0
  22. data/lib/faker/default/adjective.rb +35 -0
  23. data/lib/faker/default/alphanumeric.rb +73 -0
  24. data/lib/faker/default/ancient.rb +59 -0
  25. data/lib/faker/default/app.rb +77 -0
  26. data/lib/faker/default/appliance.rb +33 -0
  27. data/lib/faker/default/artist.rb +20 -0
  28. data/lib/faker/default/avatar.rb +60 -0
  29. data/lib/faker/default/bank.rb +207 -0
  30. data/lib/faker/default/barcode.rb +165 -0
  31. data/lib/faker/default/beer.rb +113 -0
  32. data/lib/faker/default/blood.rb +48 -0
  33. data/lib/faker/default/boolean.rb +26 -0
  34. data/lib/faker/default/bossa_nova.rb +33 -0
  35. data/lib/faker/default/business.rb +50 -0
  36. data/lib/faker/default/camera.rb +46 -0
  37. data/lib/faker/default/cannabis.rb +135 -0
  38. data/lib/faker/default/chile_rut.rb +102 -0
  39. data/lib/faker/default/chuck_norris.rb +25 -0
  40. data/lib/faker/default/code.rb +282 -0
  41. data/lib/faker/default/coffee.rb +82 -0
  42. data/lib/faker/default/coin.rb +33 -0
  43. data/lib/faker/default/color.rb +79 -0
  44. data/lib/faker/default/commerce.rb +171 -0
  45. data/lib/faker/default/company.rb +579 -0
  46. data/lib/faker/default/compass.rb +202 -0
  47. data/lib/faker/default/computer.rb +63 -0
  48. data/lib/faker/default/construction.rb +83 -0
  49. data/lib/faker/default/cosmere.rb +138 -0
  50. data/lib/faker/default/crypto.rb +61 -0
  51. data/lib/faker/default/crypto_coin.rb +94 -0
  52. data/lib/faker/default/currency.rb +46 -0
  53. data/lib/faker/default/date.rb +186 -0
  54. data/lib/faker/default/dc_comics.rb +70 -0
  55. data/lib/faker/default/demographic.rb +98 -0
  56. data/lib/faker/default/dessert.rb +48 -0
  57. data/lib/faker/default/device.rb +85 -0
  58. data/lib/faker/default/driving_licence.rb +131 -0
  59. data/lib/faker/default/drone.rb +332 -0
  60. data/lib/faker/default/educator.rb +102 -0
  61. data/lib/faker/default/electrical_components.rb +48 -0
  62. data/lib/faker/default/emotion.rb +33 -0
  63. data/lib/faker/default/esport.rb +72 -0
  64. data/lib/faker/default/file.rb +100 -0
  65. data/lib/faker/default/fillmurray.rb +45 -0
  66. data/lib/faker/default/finance.rb +116 -0
  67. data/lib/faker/default/food.rb +126 -0
  68. data/lib/faker/default/funny_name.rb +90 -0
  69. data/lib/faker/default/gender.rb +46 -0
  70. data/lib/faker/default/greek_philosophers.rb +33 -0
  71. data/lib/faker/default/hacker.rb +103 -0
  72. data/lib/faker/default/hipster.rb +194 -0
  73. data/lib/faker/default/hobby.rb +22 -0
  74. data/lib/faker/default/house.rb +33 -0
  75. data/lib/faker/default/id_number.rb +418 -0
  76. data/lib/faker/default/industry_segments.rb +61 -0
  77. data/lib/faker/default/internet.rb +629 -0
  78. data/lib/faker/default/internet_http.rb +48 -0
  79. data/lib/faker/default/invoice.rb +136 -0
  80. data/lib/faker/default/job.rb +61 -0
  81. data/lib/faker/default/json.rb +143 -0
  82. data/lib/faker/default/kpop.rb +85 -0
  83. data/lib/faker/default/lorem.rb +302 -0
  84. data/lib/faker/default/lorem_flickr.rb +138 -0
  85. data/lib/faker/default/lorem_pixel.rb +70 -0
  86. data/lib/faker/default/markdown.rb +175 -0
  87. data/lib/faker/default/marketing.rb +22 -0
  88. data/lib/faker/default/measurement.rb +207 -0
  89. data/lib/faker/default/military.rb +98 -0
  90. data/lib/faker/default/mountain.rb +33 -0
  91. data/lib/faker/default/name.rb +156 -0
  92. data/lib/faker/default/nation.rb +73 -0
  93. data/lib/faker/default/nato_phonetic_alphabet.rb +20 -0
  94. data/lib/faker/default/nhs.rb +57 -0
  95. data/lib/faker/default/number.rb +289 -0
  96. data/lib/faker/default/omniauth.rb +505 -0
  97. data/lib/faker/default/phone_number.rb +137 -0
  98. data/lib/faker/default/placeholdit.rb +63 -0
  99. data/lib/faker/default/programming_language.rb +33 -0
  100. data/lib/faker/default/relationship.rb +91 -0
  101. data/lib/faker/default/religion.rb +6 -0
  102. data/lib/faker/default/restaurant.rb +63 -0
  103. data/lib/faker/default/science.rb +154 -0
  104. data/lib/faker/default/slack_emoji.rb +124 -0
  105. data/lib/faker/default/source.rb +76 -0
  106. data/lib/faker/default/south_africa.rb +141 -0
  107. data/lib/faker/default/space.rb +191 -0
  108. data/lib/faker/default/string.rb +63 -0
  109. data/lib/faker/default/stripe.rb +142 -0
  110. data/lib/faker/default/subscription.rb +70 -0
  111. data/lib/faker/default/superhero.rb +72 -0
  112. data/lib/faker/default/tea.rb +41 -0
  113. data/lib/faker/default/team.rb +74 -0
  114. data/lib/faker/default/time.rb +177 -0
  115. data/lib/faker/default/twitter.rb +223 -0
  116. data/lib/faker/default/types.rb +182 -0
  117. data/lib/faker/default/university.rb +75 -0
  118. data/lib/faker/default/vehicle.rb +355 -0
  119. data/lib/faker/default/verb.rb +72 -0
  120. data/lib/faker/default/vulnerability_identifier.rb +23 -0
  121. data/lib/faker/default/world_cup.rb +86 -0
  122. data/lib/faker/fantasy/tolkien.rb +67 -0
  123. data/lib/faker/games/clash_of_clans.rb +48 -0
  124. data/lib/faker/games/control.rb +113 -0
  125. data/lib/faker/games/dnd.rb +136 -0
  126. data/lib/faker/games/dota.rb +93 -0
  127. data/lib/faker/games/elder_scrolls.rb +139 -0
  128. data/lib/faker/games/fallout.rb +62 -0
  129. data/lib/faker/games/game.rb +48 -0
  130. data/lib/faker/games/half_life.rb +48 -0
  131. data/lib/faker/games/heroes.rb +61 -0
  132. data/lib/faker/games/heroes_of_the_storm.rb +72 -0
  133. data/lib/faker/games/league_of_legends.rb +87 -0
  134. data/lib/faker/games/minecraft.rb +113 -0
  135. data/lib/faker/games/myst.rb +74 -0
  136. data/lib/faker/games/overwatch.rb +48 -0
  137. data/lib/faker/games/pokemon.rb +48 -0
  138. data/lib/faker/games/sonic_the_hedgehog.rb +48 -0
  139. data/lib/faker/games/street_fighter.rb +61 -0
  140. data/lib/faker/games/super_mario.rb +48 -0
  141. data/lib/faker/games/super_smash_bros.rb +35 -0
  142. data/lib/faker/games/touhou.rb +75 -0
  143. data/lib/faker/games/warhammer_fantasy.rb +74 -0
  144. data/lib/faker/games/witcher.rb +126 -0
  145. data/lib/faker/games/world_of_warcraft.rb +60 -0
  146. data/lib/faker/games/zelda.rb +62 -0
  147. data/lib/faker/japanese_media/conan.rb +48 -0
  148. data/lib/faker/japanese_media/doraemon.rb +48 -0
  149. data/lib/faker/japanese_media/dragon_ball.rb +48 -0
  150. data/lib/faker/japanese_media/fullmetal_alchemist_brotherhood.rb +48 -0
  151. data/lib/faker/japanese_media/kamen_rider.rb +102 -0
  152. data/lib/faker/japanese_media/naruto.rb +61 -0
  153. data/lib/faker/japanese_media/one_piece.rb +87 -0
  154. data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
  155. data/lib/faker/japanese_media/sword_art_online.rb +61 -0
  156. data/lib/faker/locations/australia.rb +47 -0
  157. data/lib/faker/movies/back_to_the_future.rb +49 -0
  158. data/lib/faker/movies/departed.rb +49 -0
  159. data/lib/faker/movies/ghostbusters.rb +49 -0
  160. data/lib/faker/movies/harry_potter.rb +87 -0
  161. data/lib/faker/movies/hitchhikers_guide_to_the_galaxy.rb +106 -0
  162. data/lib/faker/movies/hobbit.rb +62 -0
  163. data/lib/faker/movies/how_to_train_your_dragon.rb +48 -0
  164. data/lib/faker/movies/lebowski.rb +48 -0
  165. data/lib/faker/movies/lord_of_the_rings.rb +49 -0
  166. data/lib/faker/movies/movie.rb +33 -0
  167. data/lib/faker/movies/princess_bride.rb +36 -0
  168. data/lib/faker/movies/room.rb +63 -0
  169. data/lib/faker/movies/star_wars.rb +273 -0
  170. data/lib/faker/movies/tron.rb +161 -0
  171. data/lib/faker/movies/v_for_vendetta.rb +50 -0
  172. data/lib/faker/music/grateful_dead.rb +37 -0
  173. data/lib/faker/music/hiphop.rb +48 -0
  174. data/lib/faker/music/music.rb +145 -0
  175. data/lib/faker/music/opera.rb +298 -0
  176. data/lib/faker/music/pearl_jam.rb +50 -0
  177. data/lib/faker/music/phish.rb +48 -0
  178. data/lib/faker/music/prince.rb +64 -0
  179. data/lib/faker/music/rock_band.rb +34 -0
  180. data/lib/faker/music/rush.rb +37 -0
  181. data/lib/faker/music/show.rb +49 -0
  182. data/lib/faker/music/umphreys_mcgee.rb +22 -0
  183. data/lib/faker/quotes/chiquito.rb +80 -0
  184. data/lib/faker/quotes/quote.rb +111 -0
  185. data/lib/faker/quotes/rajnikanth.rb +27 -0
  186. data/lib/faker/quotes/shakespeare.rb +111 -0
  187. data/lib/faker/religion/bible.rb +50 -0
  188. data/lib/faker/sports/basketball.rb +61 -0
  189. data/lib/faker/sports/football.rb +74 -0
  190. data/lib/faker/sports/mountaineering.rb +22 -0
  191. data/lib/faker/sports/sport.rb +110 -0
  192. data/lib/faker/sports/volleyball.rb +74 -0
  193. data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +37 -0
  194. data/lib/faker/tv_shows/big_bang_theory.rb +37 -0
  195. data/lib/faker/tv_shows/bojack_horseman.rb +51 -0
  196. data/lib/faker/tv_shows/breaking_bad.rb +37 -0
  197. data/lib/faker/tv_shows/brooklyn_nine_nine.rb +38 -0
  198. data/lib/faker/tv_shows/buffy.rb +89 -0
  199. data/lib/faker/tv_shows/community.rb +38 -0
  200. data/lib/faker/tv_shows/dr_who.rb +115 -0
  201. data/lib/faker/tv_shows/dumb_and_dumber.rb +51 -0
  202. data/lib/faker/tv_shows/family_guy.rb +51 -0
  203. data/lib/faker/tv_shows/final_space.rb +51 -0
  204. data/lib/faker/tv_shows/friends.rb +50 -0
  205. data/lib/faker/tv_shows/futurama.rb +65 -0
  206. data/lib/faker/tv_shows/game_of_thrones.rb +77 -0
  207. data/lib/faker/tv_shows/hey_arnold.rb +50 -0
  208. data/lib/faker/tv_shows/how_i_met_your_mother.rb +64 -0
  209. data/lib/faker/tv_shows/michael_scott.rb +23 -0
  210. data/lib/faker/tv_shows/new_girl.rb +38 -0
  211. data/lib/faker/tv_shows/parks_and_rec.rb +37 -0
  212. data/lib/faker/tv_shows/rick_and_morty.rb +51 -0
  213. data/lib/faker/tv_shows/ru_paul.rb +37 -0
  214. data/lib/faker/tv_shows/seinfeld.rb +51 -0
  215. data/lib/faker/tv_shows/silicon_valley.rb +118 -0
  216. data/lib/faker/tv_shows/simpsons.rb +65 -0
  217. data/lib/faker/tv_shows/south_park.rb +38 -0
  218. data/lib/faker/tv_shows/star_trek.rb +63 -0
  219. data/lib/faker/tv_shows/stargate.rb +51 -0
  220. data/lib/faker/tv_shows/stranger_things.rb +38 -0
  221. data/lib/faker/tv_shows/suits.rb +37 -0
  222. data/lib/faker/tv_shows/supernatural.rb +48 -0
  223. data/lib/faker/tv_shows/the_expanse.rb +63 -0
  224. data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +64 -0
  225. data/lib/faker/tv_shows/the_it_crowd.rb +64 -0
  226. data/lib/faker/tv_shows/the_office.rb +37 -0
  227. data/lib/faker/tv_shows/the_thick_of_it.rb +51 -0
  228. data/lib/faker/tv_shows/twin_peaks.rb +51 -0
  229. data/lib/faker/tv_shows/venture_bros.rb +65 -0
  230. data/lib/faker/version.rb +4 -2
  231. data/lib/faker.rb +166 -66
  232. data/lib/helpers/base58.rb +22 -0
  233. data/lib/helpers/char.rb +37 -20
  234. data/lib/helpers/unique_generator.rb +34 -6
  235. data/lib/locales/README.md +40 -0
  236. data/lib/locales/ar.yml +106 -0
  237. data/lib/locales/bg.yml +5 -2
  238. data/lib/locales/ca-CAT.yml +1 -1
  239. data/lib/locales/ca.yml +2 -4
  240. data/lib/locales/da-DK.yml +10 -6
  241. data/lib/locales/de-AT.yml +14 -5
  242. data/lib/locales/de-CH.yml +1696 -1
  243. data/lib/locales/de.yml +27 -13
  244. data/lib/locales/ee.yml +61 -0
  245. data/lib/locales/en/address.yml +553 -4
  246. data/lib/locales/en/adjective.yml +179 -0
  247. data/lib/locales/en/ancient.yml +7 -0
  248. data/lib/locales/en/animal.yml +6 -0
  249. data/lib/locales/en/app.yml +8 -0
  250. data/lib/locales/en/appliance.yml +5 -0
  251. data/lib/locales/en/aqua_teen_hunger_force.yml +36 -0
  252. data/lib/locales/en/artist.yml +4 -0
  253. data/lib/locales/en/australia.yml +107 -0
  254. data/lib/locales/en/back_to_the_future.yml +120 -0
  255. data/lib/locales/en/bank.yml +302 -0
  256. data/lib/locales/en/barcode.yml +24 -0
  257. data/lib/locales/en/basketball.yml +99 -0
  258. data/lib/locales/en/beer.yml +9 -0
  259. data/lib/locales/en/bible.yml +90 -0
  260. data/lib/locales/en/big_bang_theory.yml +38 -0
  261. data/lib/locales/en/bird.yml +1281 -0
  262. data/lib/locales/en/blood.yml +13 -0
  263. data/lib/locales/en/bojack_horseman.yml +6 -0
  264. data/lib/locales/en/book.yml +491 -0
  265. data/lib/locales/en/bossa_nova.yml +6 -0
  266. data/lib/locales/en/breaking_bad.yml +28 -0
  267. data/lib/locales/en/brooklyn_nine_nine.yml +35 -0
  268. data/lib/locales/en/buffy.yml +260 -0
  269. data/lib/locales/en/business.yml +5 -0
  270. data/lib/locales/en/camera.yml +611 -0
  271. data/lib/locales/en/cannabis.yml +13 -0
  272. data/lib/locales/en/cat.yml +7 -0
  273. data/lib/locales/en/chiquito.yml +64 -0
  274. data/lib/locales/en/chuck_norris.yml +82 -0
  275. data/lib/locales/en/clash_of_clan.yml +101 -0
  276. data/lib/locales/en/code.yml +4 -0
  277. data/lib/locales/en/coffee.yml +31 -0
  278. data/lib/locales/en/coin.yml +6 -0
  279. data/lib/locales/en/color.yml +4 -0
  280. data/lib/locales/en/commerce.yml +28 -0
  281. data/lib/locales/en/community.yml +33 -0
  282. data/lib/locales/en/company.yml +22 -0
  283. data/lib/locales/en/compass.yml +34 -0
  284. data/lib/locales/en/computer.yml +55 -0
  285. data/lib/locales/en/conan.yml +171 -0
  286. data/lib/locales/en/construction.yml +425 -0
  287. data/lib/locales/en/control.yml +247 -0
  288. data/lib/locales/en/cosmere.yml +57 -0
  289. data/lib/locales/en/crypto_coin.yml +25 -0
  290. data/lib/locales/en/culture_series.yml +307 -0
  291. data/lib/locales/en/currency.yml +6 -0
  292. data/lib/locales/en/dc_comics.yml +52 -0
  293. data/lib/locales/en/demographic.yml +221 -0
  294. data/lib/locales/en/departed.yml +50 -0
  295. data/lib/locales/en/dessert.yml +6 -0
  296. data/lib/locales/en/device.yml +115 -0
  297. data/lib/locales/en/dnd.yml +451 -0
  298. data/lib/locales/en/dog.yml +11 -0
  299. data/lib/locales/en/doraemon.yml +286 -0
  300. data/lib/locales/en/dota.yml +693 -0
  301. data/lib/locales/en/dr_who.yml +31 -9
  302. data/lib/locales/en/dragon_ball.yml +246 -0
  303. data/lib/locales/en/driving_license.yml +181 -0
  304. data/lib/locales/en/drone.yml +95 -0
  305. data/lib/locales/en/dumb_and_dumber.yml +59 -0
  306. data/lib/locales/en/dune.yml +298 -0
  307. data/lib/locales/en/educator.yml +80 -0
  308. data/lib/locales/en/elder_scrolls.yml +585 -0
  309. data/lib/locales/en/electrical_components.yml +6 -0
  310. data/lib/locales/en/emotion.yml +480 -0
  311. data/lib/locales/en/esport.yml +8 -0
  312. data/lib/locales/en/fallout.yml +315 -0
  313. data/lib/locales/en/file.yml +13 -0
  314. data/lib/locales/en/final_space.yml +37 -0
  315. data/lib/locales/en/finance.yml +189 -0
  316. data/lib/locales/en/fma_brotherhood.yml +78 -0
  317. data/lib/locales/en/food.yml +1057 -0
  318. data/lib/locales/en/football.yml +8 -0
  319. data/lib/locales/en/fresh_prince_of_bel_air.yml +73 -0
  320. data/lib/locales/en/friends.yml +6 -0
  321. data/lib/locales/en/funny_name.yml +4 -0
  322. data/lib/locales/en/futurama.yml +344 -0
  323. data/lib/locales/en/game.yml +294 -0
  324. data/lib/locales/en/game_of_thrones.yml +8 -0
  325. data/lib/locales/en/gender.yml +6 -0
  326. data/lib/locales/en/ghostbusters.yml +91 -0
  327. data/lib/locales/en/grateful_dead.yml +48 -0
  328. data/lib/locales/en/greek_philosophers.yml +26 -0
  329. data/lib/locales/en/hacker.yml +8 -0
  330. data/lib/locales/en/half_life.yml +88 -0
  331. data/lib/locales/en/harry_potter.yml +9 -0
  332. data/lib/locales/en/heroes.yml +411 -0
  333. data/lib/locales/en/heroes_of_the_storm.yml +134 -0
  334. data/lib/locales/en/hey_arnold.yml +24 -0
  335. data/lib/locales/en/hipster.yml +4 -0
  336. data/lib/locales/en/hitchhikers_guide_to_the_galaxy.yml +45 -0
  337. data/lib/locales/en/hobby.yml +171 -0
  338. data/lib/locales/en/horse.yml +6 -0
  339. data/lib/locales/en/house.yml +5 -0
  340. data/lib/locales/en/how_i_met_your_mother.yml +28 -0
  341. data/lib/locales/en/how_to_train_your_dragon.yml +174 -0
  342. data/lib/locales/en/id_number.yml +5 -0
  343. data/lib/locales/en/industry_segments.yml +7 -0
  344. data/lib/locales/en/internet.yml +137 -3
  345. data/lib/locales/en/invoice.yml +6 -0
  346. data/lib/locales/en/jack_handey.yml +54 -0
  347. data/lib/locales/en/job.yml +15 -0
  348. data/lib/locales/en/kamen_rider.yml +452 -0
  349. data/lib/locales/en/kpop.yml +83 -0
  350. data/lib/locales/en/league_of_legends.yml +289 -0
  351. data/lib/locales/en/lebowski.yml +43 -0
  352. data/lib/locales/en/lorem.yml +11 -0
  353. data/lib/locales/en/lovecraft.yml +76 -6
  354. data/lib/locales/en/markdown.yml +5 -0
  355. data/lib/locales/en/marketing.yml +4 -0
  356. data/lib/locales/en/measurement.yml +11 -0
  357. data/lib/locales/en/michael_scott.yml +45 -0
  358. data/lib/locales/en/military.yml +182 -0
  359. data/lib/locales/en/minecraft.yml +663 -0
  360. data/lib/locales/en/mountain.yml +171 -0
  361. data/lib/locales/en/mountaineering.yml +14 -0
  362. data/lib/locales/en/movie.yml +194 -2
  363. data/lib/locales/en/music.yml +464 -0
  364. data/lib/locales/en/myst.yml +104 -0
  365. data/lib/locales/en/name.yml +26 -0
  366. data/lib/locales/en/naruto.yml +230 -0
  367. data/lib/locales/en/nation.yml +11 -0
  368. data/lib/locales/en/nato_phonetic_alphabet.yml +4 -0
  369. data/lib/locales/en/new_girl.yml +40 -0
  370. data/lib/locales/en/one_piece.yml +9 -0
  371. data/lib/locales/en/opera.yml +340 -0
  372. data/lib/locales/en/overwatch.yml +2654 -0
  373. data/lib/locales/en/parks_and_rec.yml +7 -0
  374. data/lib/locales/en/pearl_jam.yml +213 -0
  375. data/lib/locales/en/phish.yml +395 -0
  376. data/lib/locales/en/phone_number.yml +7 -0
  377. data/lib/locales/en/pokemon.yml +421 -0
  378. data/lib/locales/en/prince.yml +227 -0
  379. data/lib/locales/en/princess_bride.yml +5 -0
  380. data/lib/locales/en/programming_language.yml +6 -0
  381. data/lib/locales/en/quote.yml +695 -0
  382. data/lib/locales/en/rajnikanth.yml +77 -0
  383. data/lib/locales/en/relationship.yml +10 -0
  384. data/lib/locales/en/restaurant.yml +129 -0
  385. data/lib/locales/en/rock_band.yml +5 -0
  386. data/lib/locales/en/room.yml +68 -0
  387. data/lib/locales/en/rupaul.yml +125 -0
  388. data/lib/locales/en/rush.yml +32 -0
  389. data/lib/locales/en/science.yml +484 -0
  390. data/lib/locales/en/seinfeld.yml +6 -0
  391. data/lib/locales/en/shakespeare.yml +53 -0
  392. data/lib/locales/en/show.yml +597 -0
  393. data/lib/locales/en/silicon_valley.yml +53 -0
  394. data/lib/locales/en/simpsons.yml +694 -0
  395. data/lib/locales/en/slack_emoji.yml +20 -0
  396. data/lib/locales/en/sonic_the_hedgehog.yml +410 -0
  397. data/lib/locales/en/source.yml +46 -0
  398. data/lib/locales/en/south_park.yml +5 -0
  399. data/lib/locales/en/space.yml +17 -0
  400. data/lib/locales/en/sport.yml +121 -0
  401. data/lib/locales/en/star_trek.yml +7 -0
  402. data/lib/locales/en/star_wars.yml +606 -0
  403. data/lib/locales/en/stargate.yml +21 -0
  404. data/lib/locales/en/stranger_thing.yml +36 -0
  405. data/lib/locales/en/street_fighter.yml +1524 -0
  406. data/lib/locales/en/stripe.yml +42 -0
  407. data/lib/locales/en/studio_ghibli.yml +107 -0
  408. data/lib/locales/en/subscription.yml +8 -0
  409. data/lib/locales/en/suits.yml +45 -0
  410. data/lib/locales/en/super_mario.yml +58 -0
  411. data/lib/locales/en/super_smash_bros.yml +223 -0
  412. data/lib/locales/en/superhero.yml +12 -0
  413. data/lib/locales/en/supernatural.yml +141 -0
  414. data/lib/locales/en/sword_art_online.yml +334 -0
  415. data/lib/locales/en/tea.yml +172 -0
  416. data/lib/locales/en/team.yml +8 -0
  417. data/lib/locales/en/the_expanse.yml +7 -0
  418. data/lib/locales/en/the_it_crowd.yml +155 -0
  419. data/lib/locales/en/the_kingkiller_chronicle.yml +56 -0
  420. data/lib/locales/en/the_office.yml +86 -0
  421. data/lib/locales/en/the_thick_of_it.yml +6 -0
  422. data/lib/locales/en/tolkien.yml +2453 -0
  423. data/lib/locales/en/touhou.yml +839 -0
  424. data/lib/locales/en/tron.yml +227 -0
  425. data/lib/locales/en/twin_peaks.yml +6 -0
  426. data/lib/locales/en/umphreys_mcgee.yml +4 -0
  427. data/lib/locales/en/university.yml +10 -0
  428. data/lib/locales/en/v_for_vendetta.yml +163 -0
  429. data/lib/locales/en/vehicle.yml +2814 -0
  430. data/lib/locales/en/venture_bros.yml +7 -0
  431. data/lib/locales/en/verbs.yml +8 -0
  432. data/lib/locales/en/volleyball.yml +501 -0
  433. data/lib/locales/en/warhammer_fantasy.yml +582 -0
  434. data/lib/locales/en/witcher.yml +430 -0
  435. data/lib/locales/en/world_cup.yml +271 -0
  436. data/lib/locales/en/world_of_warcraft.yml +126 -0
  437. data/lib/locales/en/yoda.yml +4 -0
  438. data/lib/locales/en/zelda.yml +966 -0
  439. data/lib/locales/en-AU.yml +50 -8
  440. data/lib/locales/en-CA.yml +27 -2
  441. data/lib/locales/en-GB.yml +2 -1
  442. data/lib/locales/en-IND.yml +5 -2
  443. data/lib/locales/en-MS.yml +10 -1
  444. data/lib/locales/en-NEP.yml +6 -3
  445. data/lib/locales/en-NG.yml +2 -0
  446. data/lib/locales/en-NZ.yml +140 -17
  447. data/lib/locales/en-PAK.yml +4 -2
  448. data/lib/locales/en-SG.yml +6 -1
  449. data/lib/locales/en-TH.yml +360 -0
  450. data/lib/locales/en-US.yml +38 -10
  451. data/lib/locales/en-ZA.yml +114 -17
  452. data/lib/locales/en-au-ocker.yml +2 -1
  453. data/lib/locales/en.yml +0 -746
  454. data/lib/locales/es-AR.yml +4600 -0
  455. data/lib/locales/es-MX.yml +17 -1
  456. data/lib/locales/es.yml +75 -1
  457. data/lib/locales/fa.yml +6 -0
  458. data/lib/locales/fi-FI.yml +12 -6
  459. data/lib/locales/fr/address.yml +21 -0
  460. data/lib/locales/fr/adjective.yml +266 -0
  461. data/lib/locales/fr/animal.yml +5 -0
  462. data/lib/locales/fr/appliance.yml +4 -0
  463. data/lib/locales/fr/book.yml +7 -0
  464. data/lib/locales/fr/color.yml +4 -0
  465. data/lib/locales/fr/company.yml +17 -0
  466. data/lib/locales/fr/compass.yml +23 -0
  467. data/lib/locales/fr/demographic.yml +4 -0
  468. data/lib/locales/fr/gender.yml +6 -0
  469. data/lib/locales/fr/internet.yml +5 -0
  470. data/lib/locales/fr/lorem.yml +5 -0
  471. data/lib/locales/fr/measurement.yml +7 -0
  472. data/lib/locales/fr/name.yml +21 -0
  473. data/lib/locales/fr/phone_number.yml +7 -0
  474. data/lib/locales/fr/pokemon.yml +7 -0
  475. data/lib/locales/fr-CA.yml +107 -0
  476. data/lib/locales/fr-CH.yml +78 -0
  477. data/lib/locales/fr.yml +1 -65
  478. data/lib/locales/he.yml +2 -0
  479. data/lib/locales/hy.yml +411 -0
  480. data/lib/locales/id.yml +7 -2
  481. data/lib/locales/it.yml +15 -3
  482. data/lib/locales/ja/README.md +13 -0
  483. data/lib/locales/ja/address.yml +120539 -0
  484. data/lib/locales/ja/adjective.yml +148 -0
  485. data/lib/locales/ja/ancient.yml +4 -0
  486. data/lib/locales/ja/animal.yml +5 -0
  487. data/lib/locales/ja/bank.yml +4 -0
  488. data/lib/locales/ja/book.yml +7 -0
  489. data/lib/locales/ja/cat.yml +5 -0
  490. data/lib/locales/ja/coffee.yml +4 -0
  491. data/lib/locales/ja/color.yml +4 -0
  492. data/lib/locales/ja/commerce.yml +11 -0
  493. data/lib/locales/ja/company.yml +8 -0
  494. data/lib/locales/ja/dog.yml +6 -0
  495. data/lib/locales/ja/emotion.yml +51 -0
  496. data/lib/locales/ja/food.yml +4 -0
  497. data/lib/locales/ja/gender.yml +4 -0
  498. data/lib/locales/ja/lorem.yml +9 -0
  499. data/lib/locales/ja/name.yml +13 -0
  500. data/lib/locales/ja/naruto.yml +230 -0
  501. data/lib/locales/ja/overwatch.yml +5 -0
  502. data/lib/locales/ja/phone_number.yml +7 -0
  503. data/lib/locales/ja/pokemon.yml +7 -0
  504. data/lib/locales/ja/relationship.yml +10 -0
  505. data/lib/locales/ja/restaurant.yml +11 -0
  506. data/lib/locales/ja/space.yml +5 -0
  507. data/lib/locales/ja/studio_ghibli.yml +112 -0
  508. data/lib/locales/ja/subscription.yml +8 -0
  509. data/lib/locales/ja/super_mario.yml +9 -0
  510. data/lib/locales/ja/super_smash_bros.yml +8 -0
  511. data/lib/locales/ja/university.yml +9 -0
  512. data/lib/locales/ja/zelda.yml +5 -0
  513. data/lib/locales/ko.yml +98 -3
  514. data/lib/locales/lt.yml +35 -0
  515. data/lib/locales/lv.yml +55 -0
  516. data/lib/locales/mi-NZ.yml +281 -0
  517. data/lib/locales/nb-NO.yml +15 -6
  518. data/lib/locales/nl.yml +13 -4
  519. data/lib/locales/no.yml +7 -0
  520. data/lib/locales/pl.yml +13 -2
  521. data/lib/locales/pt-BR.yml +657 -17
  522. data/lib/locales/pt.yml +16 -6
  523. data/lib/locales/ru.yml +54 -5
  524. data/lib/locales/sk.yml +21 -13
  525. data/lib/locales/sv.yml +15 -7
  526. data/lib/locales/th.yml +380 -0
  527. data/lib/locales/tr.yml +14 -0
  528. data/lib/locales/uk.yml +17 -4
  529. data/lib/locales/vi.yml +7 -2
  530. data/lib/locales/zh-CN.yml +10 -4
  531. data/lib/locales/zh-TW.yml +3 -1
  532. metadata +620 -98
  533. data/lib/extensions/array.rb +0 -22
  534. data/lib/extensions/symbol.rb +0 -9
  535. data/lib/faker/address.rb +0 -67
  536. data/lib/faker/ancient.rb +0 -21
  537. data/lib/faker/app.rb +0 -18
  538. data/lib/faker/artist.rb +0 -9
  539. data/lib/faker/avatar.rb +0 -15
  540. data/lib/faker/bank.rb +0 -31
  541. data/lib/faker/beer.rb +0 -40
  542. data/lib/faker/bitcoin.rb +0 -48
  543. data/lib/faker/book.rb +0 -23
  544. data/lib/faker/boolean.rb +0 -9
  545. data/lib/faker/business.rb +0 -22
  546. data/lib/faker/cat.rb +0 -19
  547. data/lib/faker/chuck_norris.rb +0 -11
  548. data/lib/faker/code.rb +0 -147
  549. data/lib/faker/coffee.rb +0 -29
  550. data/lib/faker/color.rb +0 -30
  551. data/lib/faker/commerce.rb +0 -64
  552. data/lib/faker/company.rb +0 -141
  553. data/lib/faker/compass.rb +0 -65
  554. data/lib/faker/crypto.rb +0 -19
  555. data/lib/faker/date.rb +0 -78
  556. data/lib/faker/demographic.rb +0 -35
  557. data/lib/faker/dessert.rb +0 -19
  558. data/lib/faker/dr_who.rb +0 -34
  559. data/lib/faker/dragon_ball.rb +0 -9
  560. data/lib/faker/educator.rb +0 -23
  561. data/lib/faker/esport.rb +0 -25
  562. data/lib/faker/family_guy.rb +0 -17
  563. data/lib/faker/file.rb +0 -24
  564. data/lib/faker/fillmurray.rb +0 -14
  565. data/lib/faker/finance.rb +0 -28
  566. data/lib/faker/food.rb +0 -21
  567. data/lib/faker/friends.rb +0 -17
  568. data/lib/faker/funny_name.rb +0 -43
  569. data/lib/faker/game_of_thrones.rb +0 -25
  570. data/lib/faker/hacker.rb +0 -45
  571. data/lib/faker/harry_potter.rb +0 -21
  572. data/lib/faker/hey_arnold.rb +0 -17
  573. data/lib/faker/hipster.rb +0 -59
  574. data/lib/faker/hitchhikers_guide_to_the_galaxy.rb +0 -33
  575. data/lib/faker/hobbit.rb +0 -21
  576. data/lib/faker/how_i_met_your_mother.rb +0 -21
  577. data/lib/faker/id_number.rb +0 -36
  578. data/lib/faker/internet.rb +0 -178
  579. data/lib/faker/job.rb +0 -16
  580. data/lib/faker/league_of_legends.rb +0 -29
  581. data/lib/faker/lord_of_the_rings.rb +0 -13
  582. data/lib/faker/lorem.rb +0 -68
  583. data/lib/faker/lorem_pixel.rb +0 -21
  584. data/lib/faker/lovecraft.rb +0 -73
  585. data/lib/faker/markdown.rb +0 -66
  586. data/lib/faker/matz.rb +0 -9
  587. data/lib/faker/movie.rb +0 -9
  588. data/lib/faker/music.rb +0 -33
  589. data/lib/faker/name.rb +0 -42
  590. data/lib/faker/number.rb +0 -86
  591. data/lib/faker/omniauth.rb +0 -340
  592. data/lib/faker/overwatch.rb +0 -17
  593. data/lib/faker/phone_number.rb +0 -44
  594. data/lib/faker/placeholdit.rb +0 -20
  595. data/lib/faker/pokemon.rb +0 -17
  596. data/lib/faker/rick_and_morty.rb +0 -17
  597. data/lib/faker/robin.rb +0 -9
  598. data/lib/faker/rock_band.rb +0 -9
  599. data/lib/faker/rupaul.rb +0 -11
  600. data/lib/faker/shakespeare.rb +0 -83
  601. data/lib/faker/simpsons.rb +0 -22
  602. data/lib/faker/slack_emoji.rb +0 -43
  603. data/lib/faker/space.rb +0 -58
  604. data/lib/faker/star_trek.rb +0 -21
  605. data/lib/faker/star_wars.rb +0 -80
  606. data/lib/faker/superhero.rb +0 -25
  607. data/lib/faker/team.rb +0 -24
  608. data/lib/faker/time.rb +0 -51
  609. data/lib/faker/twin_peaks.rb +0 -17
  610. data/lib/faker/twitter.rb +0 -172
  611. data/lib/faker/university.rb +0 -20
  612. data/lib/faker/vehicle.rb +0 -37
  613. data/lib/faker/yoda.rb +0 -10
  614. data/lib/faker/zelda.rb +0 -18
  615. data/lib/locales/ja.yml +0 -46
@@ -1,22 +0,0 @@
1
- class Array
2
- unless self.method_defined? :sample
3
- def sample(n = nil)
4
- #based on code from https://github.com/marcandre/backports
5
- size = self.length
6
- return self[Kernel.rand(size)] if n.nil?
7
-
8
- n = n.to_int
9
- raise ArgumentError, "negative array size" if n < 0
10
-
11
- n = size if n > size
12
-
13
- result = Array.new(self)
14
- n.times do |i|
15
- r = i + Kernel.rand(size - i)
16
- result[i], result[r] = result[r], result[i]
17
- end
18
- result[n..size] = []
19
- result
20
- end
21
- end
22
- end
@@ -1,9 +0,0 @@
1
- # For Ruby 1.8
2
- unless :symbol.respond_to?(:downcase)
3
- Symbol.class_eval do
4
- def downcase
5
- to_s.downcase.intern
6
- end
7
- end
8
- end
9
-
data/lib/faker/address.rb DELETED
@@ -1,67 +0,0 @@
1
- module Faker
2
- class Address < Base
3
- flexible :address
4
-
5
- class << self
6
- def city(options = {})
7
- parse(options[:with_state] ? 'address.city_with_state' : 'address.city')
8
- end
9
-
10
- def street_name
11
- parse('address.street_name')
12
- end
13
-
14
- def street_address(include_secondary = false)
15
- numerify(parse('address.street_address') + (include_secondary ? ' ' + secondary_address : ''))
16
- end
17
-
18
- def secondary_address
19
- bothify(fetch('address.secondary_address'))
20
- end
21
-
22
- def building_number
23
- bothify(fetch('address.building_number'))
24
- end
25
-
26
- def community
27
- parse('address.community')
28
- end
29
-
30
- def zip_code(state_abbreviation = '')
31
- return bothify(fetch('address.postcode')) if state_abbreviation === ''
32
-
33
- # provide a zip code that is valid for the state provided
34
- # see http://www.fincen.gov/forms/files/us_state_territory_zip_codes.pdf
35
- bothify(fetch('address.postcode_by_state.' + state_abbreviation))
36
- end
37
-
38
- def time_zone
39
- fetch('address.time_zone')
40
- end
41
-
42
- alias_method :zip, :zip_code
43
- alias_method :postcode, :zip_code
44
-
45
- def street_suffix; fetch('address.street_suffix'); end
46
- def city_suffix; fetch('address.city_suffix'); end
47
- def city_prefix; fetch('address.city_prefix'); end
48
- def state_abbr; fetch('address.state_abbr'); end
49
- def state; fetch('address.state'); end
50
- def country; fetch('address.country'); end
51
- def country_code; fetch('address.country_code'); end
52
- def country_code_long; fetch('address.country_code_long'); end
53
-
54
- def latitude
55
- ((rand * 180) - 90).to_s
56
- end
57
-
58
- def longitude
59
- ((rand * 360) - 180).to_s
60
- end
61
-
62
- def full_address
63
- parse('address.full_address')
64
- end
65
- end
66
- end
67
- end
data/lib/faker/ancient.rb DELETED
@@ -1,21 +0,0 @@
1
- module Faker
2
- class Ancient < Base
3
- class << self
4
- def god
5
- fetch('ancient.god')
6
- end
7
-
8
- def primordial
9
- fetch('ancient.primordial')
10
- end
11
-
12
- def titan
13
- fetch('ancient.titan')
14
- end
15
-
16
- def hero
17
- fetch('ancient.hero')
18
- end
19
- end
20
- end
21
- end
data/lib/faker/app.rb DELETED
@@ -1,18 +0,0 @@
1
- module Faker
2
- class App < Base
3
- class << self
4
-
5
- def name
6
- fetch('app.name')
7
- end
8
-
9
- def version
10
- parse('app.version')
11
- end
12
-
13
- def author
14
- parse('app.author')
15
- end
16
- end
17
- end
18
- end
data/lib/faker/artist.rb DELETED
@@ -1,9 +0,0 @@
1
- module Faker
2
- class Artist < Base
3
- class << self
4
- def name
5
- fetch('artist.names')
6
- end
7
- end
8
- end
9
- end
data/lib/faker/avatar.rb DELETED
@@ -1,15 +0,0 @@
1
- module Faker
2
- class Avatar < Base
3
- class << self
4
- SUPPORTED_FORMATS = %w(png jpg bmp)
5
-
6
- def image(slug = nil, size = '300x300', format = 'png', set = 'set1', bgset = nil)
7
- raise ArgumentError, "Size should be specified in format 300x300" unless size.match(/^[0-9]+x[0-9]+$/)
8
- raise ArgumentError, "Supported formats are #{SUPPORTED_FORMATS.join(', ')}" unless SUPPORTED_FORMATS.include?(format)
9
- slug ||= Faker::Lorem.words.join
10
- bgset_query = "&bgset=#{bgset}" if bgset
11
- "https://robohash.org/#{slug}.#{format}?size=#{size}&set=#{set}#{bgset_query}"
12
- end
13
- end
14
- end
15
- end
data/lib/faker/bank.rb DELETED
@@ -1,31 +0,0 @@
1
- module Faker
2
- class Bank < Base
3
- flexible :bank
4
-
5
- class << self
6
- def name
7
- fetch('bank.name')
8
- end
9
-
10
- def swift_bic
11
- fetch('bank.swift_bic')
12
- end
13
-
14
- def iban(bank_country_code="GB")
15
- details = iban_details.find { |country| country["bank_country_code"] == bank_country_code.upcase }
16
- raise ArgumentError, "Could not find iban details for #{bank_country_code}" unless details
17
- bcc = details["bank_country_code"] + 2.times.map{ rand(10) }.join
18
- ilc = (0...details["iban_letter_code"].to_i).map{ (65 + rand(26)).chr }.join
19
- ib = details["iban_digits"].to_i.times.map{ rand(10) }.join
20
- bcc + ilc + ib
21
- end
22
-
23
- private
24
-
25
- def iban_details
26
- fetch_all('bank.iban_details')
27
- end
28
- end
29
- end
30
- end
31
-
data/lib/faker/beer.rb DELETED
@@ -1,40 +0,0 @@
1
- # encoding: utf-8
2
- module Faker
3
- class Beer < Base
4
- flexible :beer
5
-
6
- class << self
7
- def name
8
- fetch('beer.name')
9
- end
10
-
11
- def style
12
- fetch('beer.style')
13
- end
14
-
15
- def hop
16
- fetch('beer.hop')
17
- end
18
-
19
- def yeast
20
- fetch('beer.yeast')
21
- end
22
-
23
- def malts
24
- fetch('beer.malt')
25
- end
26
-
27
- def ibu
28
- rand(10..100).to_s + ' IBU'
29
- end
30
-
31
- def alcohol
32
- rand(2.0..10.0).round(1).to_s + '%'
33
- end
34
-
35
- def blg
36
- rand(5.0..20.0).round(1).to_s + '°Blg'
37
- end
38
- end
39
- end
40
- end
data/lib/faker/bitcoin.rb DELETED
@@ -1,48 +0,0 @@
1
- require 'digest'
2
- require 'securerandom'
3
-
4
- module Faker
5
- class Bitcoin < Base
6
- class << self
7
-
8
- PROTOCOL_VERSIONS = {
9
- main: 0,
10
- testnet: 111
11
- }
12
-
13
- def address
14
- address_for(:main)
15
- end
16
-
17
- def testnet_address
18
- address_for(:testnet)
19
- end
20
-
21
- protected
22
-
23
- def base58(str)
24
- alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
25
- base = alphabet.size
26
-
27
- lv = 0
28
- str.split('').reverse.each_with_index { |v,i| lv += v.unpack('C')[0] * 256**i }
29
-
30
- ret = ''
31
- while lv > 0 do
32
- lv, mod = lv.divmod(base)
33
- ret << alphabet[mod]
34
- end
35
-
36
- npad = str.match(/^#{0.chr}*/)[0].to_s.size
37
- '1'*npad + ret.reverse
38
- end
39
-
40
- def address_for(network)
41
- version = PROTOCOL_VERSIONS.fetch(network)
42
- packed = version.chr + Faker::Config.random.bytes(20)
43
- checksum = Digest::SHA2.digest(Digest::SHA2.digest(packed))[0..3]
44
- base58(packed + checksum)
45
- end
46
- end
47
- end
48
- end
data/lib/faker/book.rb DELETED
@@ -1,23 +0,0 @@
1
- module Faker
2
- class Book < Base
3
- flexible :book
4
-
5
- class << self
6
- def title
7
- fetch('book.title')
8
- end
9
-
10
- def author
11
- parse('book.author')
12
- end
13
-
14
- def publisher
15
- fetch('book.publisher')
16
- end
17
-
18
- def genre
19
- fetch('book.genre')
20
- end
21
- end
22
- end
23
- end
data/lib/faker/boolean.rb DELETED
@@ -1,9 +0,0 @@
1
- module Faker
2
- class Boolean < Base
3
- class << self
4
- def boolean(true_ratio = 0.5)
5
- (rand < true_ratio)
6
- end
7
- end
8
- end
9
- end
@@ -1,22 +0,0 @@
1
- require 'date'
2
-
3
- module Faker
4
- class Business < Base
5
- flexible :business
6
-
7
- class << self
8
- def credit_card_number
9
- fetch('business.credit_card_numbers')
10
- end
11
-
12
- def credit_card_expiry_date
13
- ::Date.today + (365 * (rand(4) + 1))
14
- end
15
-
16
- def credit_card_type
17
- fetch('business.credit_card_types')
18
- end
19
- end
20
-
21
- end
22
- end
data/lib/faker/cat.rb DELETED
@@ -1,19 +0,0 @@
1
- module Faker
2
- class Cat < Base
3
- flexible :cat
4
-
5
- class << self
6
- def name
7
- fetch('cat.name')
8
- end
9
-
10
- def breed
11
- fetch('cat.breed')
12
- end
13
-
14
- def registry
15
- fetch('cat.registry')
16
- end
17
- end
18
- end
19
- end
@@ -1,11 +0,0 @@
1
- module Faker
2
- class ChuckNorris < Base
3
- flexible :name
4
-
5
- class << self
6
- # from: https://github.com/jenkinsci/chucknorris-plugin/blob/master/src/main/java/hudson/plugins/chucknorris/FactGenerator.java
7
- def fact; fetch('chuck_norris.fact'); end
8
-
9
- end
10
- end
11
- end
data/lib/faker/code.rb DELETED
@@ -1,147 +0,0 @@
1
- module Faker
2
- class Code < Base
3
- flexible :code
4
- class << self
5
-
6
- # Generates a 10 digit NPI (National Provider Identifier
7
- # issued to health care providers in the United States)
8
- def npi
9
- rand(10 ** 10).to_s.rjust(10, '0')
10
- end
11
-
12
- # By default generates 10 sign isbn code in format 123456789-X
13
- # You can pass 13 to generate new 13 sign code
14
- def isbn(base = 10)
15
- base == 13 ? generate_base13_isbn : generate_base10_isbn
16
- end
17
-
18
- # By default generates 13 sign ean code in format 1234567890123
19
- # You can pass 8 to generate ean8 code
20
- def ean(base = 13)
21
- base == 8 ? generate_base8_ean : generate_base13_ean
22
- end
23
-
24
- def rut
25
- value = Number.number(8)
26
- vd = rut_verificator_digit(value)
27
- value << "-#{vd}"
28
- end
29
-
30
- # By default generates a Singaporean NRIC ID for someone
31
- # who is born between the age of 18 and 65.
32
- def nric(min_age = 18, max_age = 65)
33
- birthyear = Date.birthday(min_age, max_age).year
34
- prefix = birthyear < 2000 ? 'S' : 'T'
35
- values = birthyear.to_s[-2..-1]
36
- values << regexify(/\d{5}/)
37
- check_alpha = generate_nric_check_alphabet(values, prefix)
38
- "#{prefix}#{values}#{check_alpha}"
39
- end
40
-
41
- # Generate GSM modem, device or mobile phone 15 digit IMEI number.
42
- def imei
43
- generate_imei
44
- end
45
-
46
- # Retrieves a real Amazon ASIN code list taken from
47
- # https://archive.org/details/asin_listing
48
- def asin
49
- fetch('code.asin')
50
- end
51
-
52
- private
53
-
54
- # Reporting body identifier
55
- RBI = %w(01 10 30 33 35 44 45 49 50 51 52 53 54 86 91 98 99).freeze
56
-
57
- def generate_imei
58
- pos = 0
59
- str = Array.new(15, 0)
60
- sum = 0
61
- t = 0
62
- len_offset = 0
63
- len = 15
64
-
65
- # Fill in the first two values of the string based with the specified prefix.
66
- # Reporting Body Identifier list: http://en.wikipedia.org/wiki/Reporting_Body_Identifier
67
- arr = sample(RBI)
68
- str[0] = arr[0].to_i
69
- str[1] = arr[1].to_i
70
- pos = 2
71
-
72
- # Fill all the remaining numbers except for the last one with random values.
73
- while pos < (len - 1)
74
- str[pos] = rand(0..9)
75
- pos += 1
76
- end
77
-
78
- # Calculate the Luhn checksum of the values thus far
79
- len_offset = (len + 1) % 2
80
- (0..(len - 1)).each do |position|
81
- if (position + len_offset) % 2 != 0
82
- t = str[position] * 2
83
-
84
- if t > 9
85
- t -= 9
86
- end
87
-
88
- sum += t
89
- else
90
- sum += str[position]
91
- end
92
- end
93
-
94
- # Choose the last digit so that it causes the entire string to pass the checksum.
95
- str[len - 1] = (10 - (sum % 10)) % 10
96
-
97
- # Output the IMEI value.
98
- str.join('')
99
- end
100
-
101
- def generate_base10_isbn
102
- values = regexify(/\d{9}/)
103
- remainder = sum(values) { |value, index| (index + 1) * value.to_i } % 11
104
- values << "-#{remainder == 10 ? 'X' : remainder}"
105
- end
106
-
107
- def generate_base13_isbn
108
- values = regexify(/\d{12}/)
109
- remainder = sum(values) { |value, index| index.even? ? value.to_i : value.to_i * 3 } % 10
110
- values << "-#{((10 - remainder) % 10)}"
111
- end
112
-
113
- def sum(values, &block)
114
- values.split(//).each_with_index.inject(0) do |sum, (value, index)|
115
- sum + block.call(value, index)
116
- end
117
- end
118
-
119
- def generate_base8_ean
120
- values = regexify(/\d{7}/)
121
- check_digit = 10 - values.split(//).each_with_index.inject(0){ |s, (v, i)| s + v.to_i * EAN_CHECK_DIGIT8[i] } % 10
122
- values << (check_digit == 10 ? 0 : check_digit).to_s
123
- end
124
-
125
- def generate_base13_ean
126
- values = regexify(/\d{12}/)
127
- check_digit = 10 - values.split(//).each_with_index.inject(0){ |s, (v, i)| s + v.to_i * EAN_CHECK_DIGIT13[i] } % 10
128
- values << (check_digit == 10 ? 0 : check_digit).to_s
129
- end
130
-
131
- EAN_CHECK_DIGIT8 = [3, 1, 3, 1, 3, 1, 3]
132
- EAN_CHECK_DIGIT13 = [1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3]
133
-
134
- def rut_verificator_digit(rut)
135
- total = rut.to_s.rjust(8, '0').split(//).zip(%w(3 2 7 6 5 4 3 2)).collect{|a, b| a.to_i * b.to_i}.inject(:+)
136
- (11 - total % 11).to_s.gsub(/10/, 'k').gsub(/11/, '0')
137
- end
138
-
139
- def generate_nric_check_alphabet(values, prefix)
140
- weight = %w(2 7 6 5 4 3 2)
141
- total = values.split(//).zip(weight).collect { |a, b| a.to_i * b.to_i }.inject(:+)
142
- total = total + 4 if prefix == 'T'
143
- %w(A B C D E F G H I Z J)[10 - total % 11]
144
- end
145
- end
146
- end
147
- end
data/lib/faker/coffee.rb DELETED
@@ -1,29 +0,0 @@
1
- module Faker
2
- class Coffee < Base
3
- class << self
4
- def blend_name
5
- parse('coffee.blend_name')
6
- end
7
-
8
- def origin
9
- country = fetch('coffee.country')
10
- region = fetch("coffee.regions.#{search_format(country)}")
11
- "#{region}, #{country}"
12
- end
13
-
14
- def variety
15
- fetch('coffee.variety')
16
- end
17
-
18
- def notes
19
- parse('coffee.notes')
20
- end
21
-
22
- private
23
-
24
- def search_format(key)
25
- key.split.length > 1 ? key.split.join('_').downcase : key.downcase
26
- end
27
- end
28
- end
29
- end
data/lib/faker/color.rb DELETED
@@ -1,30 +0,0 @@
1
- module Faker
2
- class Color < Base
3
- class << self
4
- def hex_color
5
- '#%06x' % (rand * 0xffffff)
6
- end
7
-
8
- def color_name
9
- fetch('color.name')
10
- end
11
-
12
- def single_rgb_color
13
- sample((0..255).to_a)
14
- end
15
-
16
- def rgb_color
17
- 3.times.collect { single_rgb_color }
18
- end
19
-
20
- # returns [hue, saturation, lightness]
21
- def hsl_color
22
- [sample((0..360).to_a), rand.round(2), rand.round(2)]
23
- end
24
-
25
- def hsla_color
26
- hsl_color << rand.round(1)
27
- end
28
- end
29
- end
30
- end
@@ -1,64 +0,0 @@
1
- module Faker
2
- class Commerce < Base
3
-
4
- class << self
5
- def color
6
- fetch('color.name')
7
- end
8
-
9
- def promotion_code(digits = 6)
10
- [
11
- fetch('commerce.promotion_code.adjective'),
12
- fetch('commerce.promotion_code.noun'),
13
- Faker::Number.number(digits)
14
- ].join
15
- end
16
-
17
- def department(max = 3, fixed_amount = false)
18
- num = max if fixed_amount
19
- num ||= 1 + rand(max)
20
-
21
- categories = categories(num)
22
-
23
- return merge_categories(categories) if num > 1
24
- categories[0]
25
- end
26
-
27
- def product_name
28
- "#{fetch('commerce.product_name.adjective')} #{fetch('commerce.product_name.material')} #{fetch('commerce.product_name.product')}"
29
- end
30
-
31
- def material
32
- fetch('commerce.product_name.material')
33
- end
34
-
35
- def price(range=0..100.0, as_string=false)
36
- price = (rand(range) * 100).floor/100.0
37
- if as_string
38
- price_parts = price.to_s.split('.')
39
- price = price_parts[0] + price_parts[-1].ljust(2, "0")
40
- end
41
- price
42
- end
43
-
44
- private
45
-
46
- def categories(num)
47
- categories = []
48
- while categories.length < num
49
- category = fetch('commerce.department')
50
- categories << category unless categories.include?(category)
51
- end
52
-
53
- categories
54
- end
55
-
56
- def merge_categories(categories)
57
- separator = fetch('separator')
58
- comma_separated = categories.slice!(0...-1).join(', ')
59
-
60
- [comma_separated, categories[0]].join(separator)
61
- end
62
- end
63
- end
64
- end