faker 1.1.2 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (569) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +2383 -0
  3. data/History.md +176 -0
  4. data/License.txt +2 -2
  5. data/README.md +487 -47
  6. data/bin/faker +5 -0
  7. data/lib/faker/blockchain/aeternity.rb +70 -0
  8. data/lib/faker/blockchain/bitcoin.rb +60 -0
  9. data/lib/faker/blockchain/ethereum.rb +26 -0
  10. data/lib/faker/blockchain/tezos.rb +135 -0
  11. data/lib/faker/books/book.rb +61 -0
  12. data/lib/faker/books/culture_series.rb +83 -0
  13. data/lib/faker/books/dune.rb +124 -0
  14. data/lib/faker/books/lovecraft.rb +249 -0
  15. data/lib/faker/books/the_kingkiller_chronicle.rb +61 -0
  16. data/lib/faker/creature/animal.rb +22 -0
  17. data/lib/faker/creature/bird.rb +203 -0
  18. data/lib/faker/creature/cat.rb +50 -0
  19. data/lib/faker/creature/dog.rb +115 -0
  20. data/lib/faker/creature/horse.rb +37 -0
  21. data/lib/faker/default/address.rb +348 -0
  22. data/lib/faker/default/adjective.rb +35 -0
  23. data/lib/faker/default/alphanumeric.rb +67 -0
  24. data/lib/faker/default/ancient.rb +59 -0
  25. data/lib/faker/default/app.rb +68 -0
  26. data/lib/faker/default/appliance.rb +33 -0
  27. data/lib/faker/default/artist.rb +20 -0
  28. data/lib/faker/default/avatar.rb +49 -0
  29. data/lib/faker/default/bank.rb +199 -0
  30. data/lib/faker/default/barcode.rb +165 -0
  31. data/lib/faker/default/beer.rb +113 -0
  32. data/lib/faker/default/blood.rb +48 -0
  33. data/lib/faker/default/boolean.rb +23 -0
  34. data/lib/faker/default/bossa_nova.rb +33 -0
  35. data/lib/faker/default/business.rb +50 -0
  36. data/lib/faker/default/camera.rb +46 -0
  37. data/lib/faker/default/cannabis.rb +135 -0
  38. data/lib/faker/default/chile_rut.rb +92 -0
  39. data/lib/faker/default/chuck_norris.rb +25 -0
  40. data/lib/faker/default/code.rb +269 -0
  41. data/lib/faker/default/coffee.rb +82 -0
  42. data/lib/faker/default/coin.rb +33 -0
  43. data/lib/faker/default/color.rb +150 -0
  44. data/lib/faker/default/commerce.rb +157 -0
  45. data/lib/faker/default/company.rb +571 -0
  46. data/lib/faker/default/compass.rb +202 -0
  47. data/lib/faker/default/computer.rb +63 -0
  48. data/lib/faker/default/construction.rb +83 -0
  49. data/lib/faker/default/cosmere.rb +138 -0
  50. data/lib/faker/default/crypto.rb +61 -0
  51. data/lib/faker/default/crypto_coin.rb +82 -0
  52. data/lib/faker/default/currency.rb +46 -0
  53. data/lib/faker/default/date.rb +153 -0
  54. data/lib/faker/default/dc_comics.rb +70 -0
  55. data/lib/faker/default/demographic.rb +94 -0
  56. data/lib/faker/default/dessert.rb +48 -0
  57. data/lib/faker/default/device.rb +85 -0
  58. data/lib/faker/default/driving_licence.rb +121 -0
  59. data/lib/faker/default/drone.rb +332 -0
  60. data/lib/faker/default/educator.rb +102 -0
  61. data/lib/faker/default/electrical_components.rb +48 -0
  62. data/lib/faker/default/emotion.rb +33 -0
  63. data/lib/faker/default/esport.rb +72 -0
  64. data/lib/faker/default/file.rb +81 -0
  65. data/lib/faker/default/fillmurray.rb +38 -0
  66. data/lib/faker/default/finance.rb +112 -0
  67. data/lib/faker/default/food.rb +126 -0
  68. data/lib/faker/default/funny_name.rb +90 -0
  69. data/lib/faker/default/gender.rb +46 -0
  70. data/lib/faker/default/greek_philosophers.rb +33 -0
  71. data/lib/faker/default/hacker.rb +103 -0
  72. data/lib/faker/default/hipster.rb +155 -0
  73. data/lib/faker/default/hobby.rb +22 -0
  74. data/lib/faker/default/house.rb +33 -0
  75. data/lib/faker/default/id_number.rb +410 -0
  76. data/lib/faker/default/industry_segments.rb +61 -0
  77. data/lib/faker/default/internet.rb +582 -0
  78. data/lib/faker/default/internet_http.rb +48 -0
  79. data/lib/faker/default/invoice.rb +123 -0
  80. data/lib/faker/default/job.rb +61 -0
  81. data/lib/faker/default/json.rb +125 -0
  82. data/lib/faker/default/kpop.rb +85 -0
  83. data/lib/faker/default/lorem.rb +250 -0
  84. data/lib/faker/default/lorem_flickr.rb +110 -0
  85. data/lib/faker/default/markdown.rb +170 -0
  86. data/lib/faker/default/marketing.rb +22 -0
  87. data/lib/faker/default/measurement.rb +175 -0
  88. data/lib/faker/default/military.rb +98 -0
  89. data/lib/faker/default/mountain.rb +33 -0
  90. data/lib/faker/default/name.rb +152 -0
  91. data/lib/faker/default/nation.rb +73 -0
  92. data/lib/faker/default/nato_phonetic_alphabet.rb +20 -0
  93. data/lib/faker/default/nhs.rb +53 -0
  94. data/lib/faker/default/number.rb +244 -0
  95. data/lib/faker/default/omniauth.rb +471 -0
  96. data/lib/faker/default/phone_number.rb +133 -0
  97. data/lib/faker/default/placeholdit.rb +52 -0
  98. data/lib/faker/default/programming_language.rb +33 -0
  99. data/lib/faker/default/relationship.rb +87 -0
  100. data/lib/faker/default/religion.rb +6 -0
  101. data/lib/faker/default/restaurant.rb +63 -0
  102. data/lib/faker/default/science.rb +154 -0
  103. data/lib/faker/default/slack_emoji.rb +124 -0
  104. data/lib/faker/default/source.rb +63 -0
  105. data/lib/faker/default/south_africa.rb +141 -0
  106. data/lib/faker/default/space.rb +191 -0
  107. data/lib/faker/default/string.rb +59 -0
  108. data/lib/faker/default/stripe.rb +126 -0
  109. data/lib/faker/default/subscription.rb +70 -0
  110. data/lib/faker/default/superhero.rb +72 -0
  111. data/lib/faker/default/tea.rb +41 -0
  112. data/lib/faker/default/team.rb +74 -0
  113. data/lib/faker/default/time.rb +149 -0
  114. data/lib/faker/default/twitter.rb +207 -0
  115. data/lib/faker/default/types.rb +160 -0
  116. data/lib/faker/default/university.rb +75 -0
  117. data/lib/faker/default/vehicle.rb +320 -0
  118. data/lib/faker/default/verb.rb +72 -0
  119. data/lib/faker/default/vulnerability_identifier.rb +23 -0
  120. data/lib/faker/default/world_cup.rb +77 -0
  121. data/lib/faker/fantasy/tolkien.rb +67 -0
  122. data/lib/faker/games/clash_of_clans.rb +48 -0
  123. data/lib/faker/games/control.rb +113 -0
  124. data/lib/faker/games/dnd.rb +136 -0
  125. data/lib/faker/games/dota.rb +89 -0
  126. data/lib/faker/games/elder_scrolls.rb +139 -0
  127. data/lib/faker/games/fallout.rb +62 -0
  128. data/lib/faker/games/game.rb +48 -0
  129. data/lib/faker/games/half_life.rb +48 -0
  130. data/lib/faker/games/heroes.rb +61 -0
  131. data/lib/faker/games/heroes_of_the_storm.rb +72 -0
  132. data/lib/faker/games/league_of_legends.rb +87 -0
  133. data/lib/faker/games/minecraft.rb +113 -0
  134. data/lib/faker/games/myst.rb +74 -0
  135. data/lib/faker/games/overwatch.rb +48 -0
  136. data/lib/faker/games/pokemon.rb +48 -0
  137. data/lib/faker/games/sonic_the_hedgehog.rb +48 -0
  138. data/lib/faker/games/street_fighter.rb +61 -0
  139. data/lib/faker/games/super_mario.rb +48 -0
  140. data/lib/faker/games/super_smash_bros.rb +35 -0
  141. data/lib/faker/games/tarkov.rb +205 -0
  142. data/lib/faker/games/touhou.rb +75 -0
  143. data/lib/faker/games/warhammer_fantasy.rb +74 -0
  144. data/lib/faker/games/witcher.rb +126 -0
  145. data/lib/faker/games/world_of_warcraft.rb +60 -0
  146. data/lib/faker/games/zelda.rb +62 -0
  147. data/lib/faker/japanese_media/conan.rb +48 -0
  148. data/lib/faker/japanese_media/cowboy_bebop.rb +61 -0
  149. data/lib/faker/japanese_media/doraemon.rb +48 -0
  150. data/lib/faker/japanese_media/dragon_ball.rb +48 -0
  151. data/lib/faker/japanese_media/fullmetal_alchemist_brotherhood.rb +48 -0
  152. data/lib/faker/japanese_media/kamen_rider.rb +102 -0
  153. data/lib/faker/japanese_media/naruto.rb +61 -0
  154. data/lib/faker/japanese_media/one_piece.rb +87 -0
  155. data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
  156. data/lib/faker/japanese_media/sword_art_online.rb +61 -0
  157. data/lib/faker/locations/australia.rb +47 -0
  158. data/lib/faker/movies/back_to_the_future.rb +49 -0
  159. data/lib/faker/movies/departed.rb +49 -0
  160. data/lib/faker/movies/ghostbusters.rb +49 -0
  161. data/lib/faker/movies/hackers.rb +48 -0
  162. data/lib/faker/movies/harry_potter.rb +87 -0
  163. data/lib/faker/movies/hitchhikers_guide_to_the_galaxy.rb +106 -0
  164. data/lib/faker/movies/hobbit.rb +62 -0
  165. data/lib/faker/movies/how_to_train_your_dragon.rb +48 -0
  166. data/lib/faker/movies/lebowski.rb +48 -0
  167. data/lib/faker/movies/lord_of_the_rings.rb +49 -0
  168. data/lib/faker/movies/movie.rb +33 -0
  169. data/lib/faker/movies/princess_bride.rb +36 -0
  170. data/lib/faker/movies/room.rb +63 -0
  171. data/lib/faker/movies/star_wars.rb +269 -0
  172. data/lib/faker/movies/tron.rb +161 -0
  173. data/lib/faker/movies/v_for_vendetta.rb +50 -0
  174. data/lib/faker/music/grateful_dead.rb +37 -0
  175. data/lib/faker/music/hiphop.rb +48 -0
  176. data/lib/faker/music/music.rb +145 -0
  177. data/lib/faker/music/opera.rb +298 -0
  178. data/lib/faker/music/pearl_jam.rb +50 -0
  179. data/lib/faker/music/phish.rb +48 -0
  180. data/lib/faker/music/prince.rb +64 -0
  181. data/lib/faker/music/rock_band.rb +34 -0
  182. data/lib/faker/music/rush.rb +37 -0
  183. data/lib/faker/music/show.rb +49 -0
  184. data/lib/faker/music/umphreys_mcgee.rb +22 -0
  185. data/lib/faker/quotes/chiquito.rb +80 -0
  186. data/lib/faker/quotes/quote.rb +111 -0
  187. data/lib/faker/quotes/rajnikanth.rb +27 -0
  188. data/lib/faker/quotes/shakespeare.rb +111 -0
  189. data/lib/faker/religion/bible.rb +50 -0
  190. data/lib/faker/sports/basketball.rb +61 -0
  191. data/lib/faker/sports/football.rb +74 -0
  192. data/lib/faker/sports/mountaineering.rb +22 -0
  193. data/lib/faker/sports/sport.rb +116 -0
  194. data/lib/faker/sports/volleyball.rb +74 -0
  195. data/lib/faker/travel/airport.rb +47 -0
  196. data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +37 -0
  197. data/lib/faker/tv_shows/big_bang_theory.rb +37 -0
  198. data/lib/faker/tv_shows/bojack_horseman.rb +51 -0
  199. data/lib/faker/tv_shows/breaking_bad.rb +37 -0
  200. data/lib/faker/tv_shows/brooklyn_nine_nine.rb +38 -0
  201. data/lib/faker/tv_shows/buffy.rb +89 -0
  202. data/lib/faker/tv_shows/community.rb +38 -0
  203. data/lib/faker/tv_shows/dr_who.rb +115 -0
  204. data/lib/faker/tv_shows/dumb_and_dumber.rb +51 -0
  205. data/lib/faker/tv_shows/family_guy.rb +51 -0
  206. data/lib/faker/tv_shows/final_space.rb +51 -0
  207. data/lib/faker/tv_shows/friends.rb +50 -0
  208. data/lib/faker/tv_shows/futurama.rb +65 -0
  209. data/lib/faker/tv_shows/game_of_thrones.rb +77 -0
  210. data/lib/faker/tv_shows/hey_arnold.rb +50 -0
  211. data/lib/faker/tv_shows/how_i_met_your_mother.rb +64 -0
  212. data/lib/faker/tv_shows/michael_scott.rb +23 -0
  213. data/lib/faker/tv_shows/new_girl.rb +38 -0
  214. data/lib/faker/tv_shows/parks_and_rec.rb +37 -0
  215. data/lib/faker/tv_shows/rick_and_morty.rb +51 -0
  216. data/lib/faker/tv_shows/ru_paul.rb +37 -0
  217. data/lib/faker/tv_shows/seinfeld.rb +51 -0
  218. data/lib/faker/tv_shows/silicon_valley.rb +118 -0
  219. data/lib/faker/tv_shows/simpsons.rb +65 -0
  220. data/lib/faker/tv_shows/south_park.rb +38 -0
  221. data/lib/faker/tv_shows/spongebob.rb +50 -0
  222. data/lib/faker/tv_shows/star_trek.rb +63 -0
  223. data/lib/faker/tv_shows/stargate.rb +51 -0
  224. data/lib/faker/tv_shows/stranger_things.rb +38 -0
  225. data/lib/faker/tv_shows/suits.rb +37 -0
  226. data/lib/faker/tv_shows/supernatural.rb +48 -0
  227. data/lib/faker/tv_shows/the_expanse.rb +63 -0
  228. data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +64 -0
  229. data/lib/faker/tv_shows/the_it_crowd.rb +64 -0
  230. data/lib/faker/tv_shows/the_office.rb +37 -0
  231. data/lib/faker/tv_shows/the_thick_of_it.rb +51 -0
  232. data/lib/faker/tv_shows/twin_peaks.rb +51 -0
  233. data/lib/faker/tv_shows/venture_bros.rb +65 -0
  234. data/lib/faker/version.rb +4 -2
  235. data/lib/faker.rb +170 -58
  236. data/lib/helpers/base58.rb +22 -0
  237. data/lib/helpers/char.rb +61 -0
  238. data/lib/helpers/unique_generator.rb +60 -0
  239. data/lib/locales/README.md +40 -0
  240. data/lib/locales/ar.yml +106 -0
  241. data/lib/locales/bg.yml +44 -0
  242. data/lib/locales/ca-CAT.yml +24 -0
  243. data/lib/locales/ca.yml +23 -0
  244. data/lib/locales/da-DK.yml +72 -0
  245. data/lib/locales/de-AT.yml +57 -0
  246. data/lib/locales/de-CH.yml +1713 -0
  247. data/lib/locales/de.yml +131 -9
  248. data/lib/locales/ee.yml +61 -0
  249. data/lib/locales/en/README.md +13 -0
  250. data/lib/locales/en/address.yml +586 -0
  251. data/lib/locales/en/adjective.yml +179 -0
  252. data/lib/locales/en/airport.yml +381 -0
  253. data/lib/locales/en/ancient.yml +7 -0
  254. data/lib/locales/en/animal.yml +6 -0
  255. data/lib/locales/en/app.yml +8 -0
  256. data/lib/locales/en/appliance.yml +5 -0
  257. data/lib/locales/en/aqua_teen_hunger_force.yml +36 -0
  258. data/lib/locales/en/artist.yml +4 -0
  259. data/lib/locales/en/australia.yml +107 -0
  260. data/lib/locales/en/back_to_the_future.yml +120 -0
  261. data/lib/locales/en/bank.yml +302 -0
  262. data/lib/locales/en/barcode.yml +24 -0
  263. data/lib/locales/en/basketball.yml +99 -0
  264. data/lib/locales/en/beer.yml +9 -0
  265. data/lib/locales/en/bible.yml +90 -0
  266. data/lib/locales/en/big_bang_theory.yml +38 -0
  267. data/lib/locales/en/bird.yml +1281 -0
  268. data/lib/locales/en/blood.yml +13 -0
  269. data/lib/locales/en/bojack_horseman.yml +6 -0
  270. data/lib/locales/en/book.yml +491 -0
  271. data/lib/locales/en/bossa_nova.yml +6 -0
  272. data/lib/locales/en/breaking_bad.yml +28 -0
  273. data/lib/locales/en/brooklyn_nine_nine.yml +35 -0
  274. data/lib/locales/en/buffy.yml +260 -0
  275. data/lib/locales/en/business.yml +5 -0
  276. data/lib/locales/en/camera.yml +611 -0
  277. data/lib/locales/en/cannabis.yml +13 -0
  278. data/lib/locales/en/cat.yml +7 -0
  279. data/lib/locales/en/chiquito.yml +64 -0
  280. data/lib/locales/en/chuck_norris.yml +82 -0
  281. data/lib/locales/en/clash_of_clan.yml +101 -0
  282. data/lib/locales/en/code.yml +4 -0
  283. data/lib/locales/en/coffee.yml +31 -0
  284. data/lib/locales/en/coin.yml +6 -0
  285. data/lib/locales/en/color.yml +4 -0
  286. data/lib/locales/en/commerce.yml +28 -0
  287. data/lib/locales/en/community.yml +33 -0
  288. data/lib/locales/en/company.yml +22 -0
  289. data/lib/locales/en/compass.yml +34 -0
  290. data/lib/locales/en/computer.yml +55 -0
  291. data/lib/locales/en/conan.yml +171 -0
  292. data/lib/locales/en/construction.yml +425 -0
  293. data/lib/locales/en/control.yml +247 -0
  294. data/lib/locales/en/cosmere.yml +57 -0
  295. data/lib/locales/en/cowboy_bebop.yml +163 -0
  296. data/lib/locales/en/crypto_coin.yml +25 -0
  297. data/lib/locales/en/culture_series.yml +307 -0
  298. data/lib/locales/en/currency.yml +6 -0
  299. data/lib/locales/en/dc_comics.yml +52 -0
  300. data/lib/locales/en/demographic.yml +221 -0
  301. data/lib/locales/en/departed.yml +50 -0
  302. data/lib/locales/en/dessert.yml +6 -0
  303. data/lib/locales/en/device.yml +115 -0
  304. data/lib/locales/en/dnd.yml +451 -0
  305. data/lib/locales/en/dog.yml +11 -0
  306. data/lib/locales/en/doraemon.yml +286 -0
  307. data/lib/locales/en/dota.yml +693 -0
  308. data/lib/locales/en/dr_who.yml +96 -0
  309. data/lib/locales/en/dragon_ball.yml +246 -0
  310. data/lib/locales/en/driving_license.yml +181 -0
  311. data/lib/locales/en/drone.yml +95 -0
  312. data/lib/locales/en/dumb_and_dumber.yml +59 -0
  313. data/lib/locales/en/dune.yml +298 -0
  314. data/lib/locales/en/educator.yml +80 -0
  315. data/lib/locales/en/elder_scrolls.yml +585 -0
  316. data/lib/locales/en/electrical_components.yml +6 -0
  317. data/lib/locales/en/emotion.yml +480 -0
  318. data/lib/locales/en/esport.yml +8 -0
  319. data/lib/locales/en/fallout.yml +315 -0
  320. data/lib/locales/en/family_guy.yml +7 -0
  321. data/lib/locales/en/file.yml +13 -0
  322. data/lib/locales/en/final_space.yml +37 -0
  323. data/lib/locales/en/finance.yml +189 -0
  324. data/lib/locales/en/fma_brotherhood.yml +78 -0
  325. data/lib/locales/en/food.yml +1057 -0
  326. data/lib/locales/en/football.yml +8 -0
  327. data/lib/locales/en/fresh_prince_of_bel_air.yml +73 -0
  328. data/lib/locales/en/friends.yml +6 -0
  329. data/lib/locales/en/funny_name.yml +4 -0
  330. data/lib/locales/en/futurama.yml +344 -0
  331. data/lib/locales/en/game.yml +294 -0
  332. data/lib/locales/en/game_of_thrones.yml +8 -0
  333. data/lib/locales/en/gender.yml +6 -0
  334. data/lib/locales/en/ghostbusters.yml +91 -0
  335. data/lib/locales/en/grateful_dead.yml +48 -0
  336. data/lib/locales/en/greek_philosophers.yml +26 -0
  337. data/lib/locales/en/hacker.yml +8 -0
  338. data/lib/locales/en/hackers.yml +53 -0
  339. data/lib/locales/en/half_life.yml +88 -0
  340. data/lib/locales/en/harry_potter.yml +9 -0
  341. data/lib/locales/en/heroes.yml +411 -0
  342. data/lib/locales/en/heroes_of_the_storm.yml +134 -0
  343. data/lib/locales/en/hey_arnold.yml +24 -0
  344. data/lib/locales/en/hipster.yml +4 -0
  345. data/lib/locales/en/hitchhikers_guide_to_the_galaxy.yml +45 -0
  346. data/lib/locales/en/hobby.yml +171 -0
  347. data/lib/locales/en/horse.yml +6 -0
  348. data/lib/locales/en/house.yml +5 -0
  349. data/lib/locales/en/how_i_met_your_mother.yml +28 -0
  350. data/lib/locales/en/how_to_train_your_dragon.yml +174 -0
  351. data/lib/locales/en/id_number.yml +5 -0
  352. data/lib/locales/en/industry_segments.yml +7 -0
  353. data/lib/locales/en/internet.yml +155 -0
  354. data/lib/locales/en/invoice.yml +6 -0
  355. data/lib/locales/en/jack_handey.yml +54 -0
  356. data/lib/locales/en/job.yml +15 -0
  357. data/lib/locales/en/kamen_rider.yml +452 -0
  358. data/lib/locales/en/kpop.yml +83 -0
  359. data/lib/locales/en/league_of_legends.yml +289 -0
  360. data/lib/locales/en/lebowski.yml +43 -0
  361. data/lib/locales/en/lorem.yml +11 -0
  362. data/lib/locales/en/lovecraft.yml +79 -0
  363. data/lib/locales/en/markdown.yml +5 -0
  364. data/lib/locales/en/marketing.yml +4 -0
  365. data/lib/locales/en/measurement.yml +11 -0
  366. data/lib/locales/en/michael_scott.yml +45 -0
  367. data/lib/locales/en/military.yml +182 -0
  368. data/lib/locales/en/minecraft.yml +663 -0
  369. data/lib/locales/en/mountain.yml +171 -0
  370. data/lib/locales/en/mountaineering.yml +14 -0
  371. data/lib/locales/en/movie.yml +197 -0
  372. data/lib/locales/en/music.yml +464 -0
  373. data/lib/locales/en/myst.yml +104 -0
  374. data/lib/locales/en/name.yml +26 -0
  375. data/lib/locales/en/naruto.yml +230 -0
  376. data/lib/locales/en/nation.yml +11 -0
  377. data/lib/locales/en/nato_phonetic_alphabet.yml +4 -0
  378. data/lib/locales/en/new_girl.yml +40 -0
  379. data/lib/locales/en/one_piece.yml +9 -0
  380. data/lib/locales/en/opera.yml +340 -0
  381. data/lib/locales/en/overwatch.yml +2652 -0
  382. data/lib/locales/en/parks_and_rec.yml +7 -0
  383. data/lib/locales/en/pearl_jam.yml +213 -0
  384. data/lib/locales/en/phish.yml +395 -0
  385. data/lib/locales/en/phone_number.yml +7 -0
  386. data/lib/locales/en/pokemon.yml +421 -0
  387. data/lib/locales/en/prince.yml +227 -0
  388. data/lib/locales/en/princess_bride.yml +5 -0
  389. data/lib/locales/en/programming_language.yml +6 -0
  390. data/lib/locales/en/quote.yml +695 -0
  391. data/lib/locales/en/rajnikanth.yml +77 -0
  392. data/lib/locales/en/relationship.yml +10 -0
  393. data/lib/locales/en/restaurant.yml +129 -0
  394. data/lib/locales/en/rick_and_morty.yml +6 -0
  395. data/lib/locales/en/rock_band.yml +5 -0
  396. data/lib/locales/en/room.yml +68 -0
  397. data/lib/locales/en/rupaul.yml +125 -0
  398. data/lib/locales/en/rush.yml +32 -0
  399. data/lib/locales/en/science.yml +484 -0
  400. data/lib/locales/en/seinfeld.yml +6 -0
  401. data/lib/locales/en/shakespeare.yml +53 -0
  402. data/lib/locales/en/show.yml +597 -0
  403. data/lib/locales/en/silicon_valley.yml +53 -0
  404. data/lib/locales/en/simpsons.yml +694 -0
  405. data/lib/locales/en/slack_emoji.yml +20 -0
  406. data/lib/locales/en/sonic_the_hedgehog.yml +410 -0
  407. data/lib/locales/en/source.yml +51 -0
  408. data/lib/locales/en/south_park.yml +5 -0
  409. data/lib/locales/en/space.yml +17 -0
  410. data/lib/locales/en/spongebob.yml +489 -0
  411. data/lib/locales/en/sport.yml +130 -0
  412. data/lib/locales/en/star_trek.yml +7 -0
  413. data/lib/locales/en/star_wars.yml +606 -0
  414. data/lib/locales/en/stargate.yml +21 -0
  415. data/lib/locales/en/stranger_thing.yml +36 -0
  416. data/lib/locales/en/street_fighter.yml +1524 -0
  417. data/lib/locales/en/stripe.yml +42 -0
  418. data/lib/locales/en/studio_ghibli.yml +107 -0
  419. data/lib/locales/en/subscription.yml +8 -0
  420. data/lib/locales/en/suits.yml +45 -0
  421. data/lib/locales/en/super_mario.yml +58 -0
  422. data/lib/locales/en/super_smash_bros.yml +223 -0
  423. data/lib/locales/en/superhero.yml +12 -0
  424. data/lib/locales/en/supernatural.yml +141 -0
  425. data/lib/locales/en/sword_art_online.yml +334 -0
  426. data/lib/locales/en/tarkov.yml +593 -0
  427. data/lib/locales/en/tea.yml +172 -0
  428. data/lib/locales/en/team.yml +8 -0
  429. data/lib/locales/en/the_expanse.yml +7 -0
  430. data/lib/locales/en/the_it_crowd.yml +155 -0
  431. data/lib/locales/en/the_kingkiller_chronicle.yml +56 -0
  432. data/lib/locales/en/the_office.yml +86 -0
  433. data/lib/locales/en/the_thick_of_it.yml +6 -0
  434. data/lib/locales/en/tolkien.yml +2453 -0
  435. data/lib/locales/en/touhou.yml +839 -0
  436. data/lib/locales/en/tron.yml +227 -0
  437. data/lib/locales/en/twin_peaks.yml +6 -0
  438. data/lib/locales/en/umphreys_mcgee.yml +4 -0
  439. data/lib/locales/en/university.yml +10 -0
  440. data/lib/locales/en/v_for_vendetta.yml +163 -0
  441. data/lib/locales/en/vehicle.yml +2814 -0
  442. data/lib/locales/en/venture_bros.yml +7 -0
  443. data/lib/locales/en/verbs.yml +8 -0
  444. data/lib/locales/en/volleyball.yml +501 -0
  445. data/lib/locales/en/warhammer_fantasy.yml +582 -0
  446. data/lib/locales/en/witcher.yml +430 -0
  447. data/lib/locales/en/world_cup.yml +271 -0
  448. data/lib/locales/en/world_of_warcraft.yml +126 -0
  449. data/lib/locales/en/yoda.yml +4 -0
  450. data/lib/locales/en/zelda.yml +966 -0
  451. data/lib/locales/en-AU.yml +67 -0
  452. data/lib/locales/{en-bork.yml → en-BORK.yml} +1 -1
  453. data/lib/locales/en-CA.yml +39 -0
  454. data/lib/locales/{en-gb.yml → en-GB.yml} +3 -3
  455. data/lib/locales/{en-ind.yml → en-IND.yml} +10 -4
  456. data/lib/locales/en-MS.yml +48 -0
  457. data/lib/locales/en-NEP.yml +52 -0
  458. data/lib/locales/en-NG.yml +77 -0
  459. data/lib/locales/en-NZ.yml +165 -0
  460. data/lib/locales/en-PAK.yml +19 -0
  461. data/lib/locales/en-SG.yml +36 -0
  462. data/lib/locales/en-TH.yml +360 -0
  463. data/lib/locales/en-UG.yml +128 -0
  464. data/lib/locales/en-US.yml +128 -0
  465. data/lib/locales/en-ZA.yml +147 -0
  466. data/lib/locales/en-au-ocker.yml +34 -0
  467. data/lib/locales/en.yml +6 -67
  468. data/lib/locales/es-AR.yml +4600 -0
  469. data/lib/locales/es-MX.yml +104 -0
  470. data/lib/locales/es.yml +149 -0
  471. data/lib/locales/fa.yml +12 -0
  472. data/lib/locales/fi-FI.yml +36 -0
  473. data/lib/locales/fr/address.yml +20 -0
  474. data/lib/locales/fr/adjective.yml +266 -0
  475. data/lib/locales/fr/ancient.yml +141 -0
  476. data/lib/locales/fr/animal.yml +5 -0
  477. data/lib/locales/fr/appliance.yml +4 -0
  478. data/lib/locales/fr/book.yml +7 -0
  479. data/lib/locales/fr/color.yml +4 -0
  480. data/lib/locales/fr/company.yml +17 -0
  481. data/lib/locales/fr/compass.yml +23 -0
  482. data/lib/locales/fr/demographic.yml +4 -0
  483. data/lib/locales/fr/gender.yml +6 -0
  484. data/lib/locales/fr/internet.yml +5 -0
  485. data/lib/locales/fr/lorem.yml +5 -0
  486. data/lib/locales/fr/measurement.yml +7 -0
  487. data/lib/locales/fr/name.yml +21 -0
  488. data/lib/locales/fr/phone_number.yml +7 -0
  489. data/lib/locales/fr/pokemon.yml +7 -0
  490. data/lib/locales/fr-CA.yml +106 -0
  491. data/lib/locales/fr-CH.yml +77 -0
  492. data/lib/locales/fr.yml +1 -51
  493. data/lib/locales/he.yml +27 -0
  494. data/lib/locales/hy.yml +411 -0
  495. data/lib/locales/id.yml +26 -0
  496. data/lib/locales/it.yml +71 -0
  497. data/lib/locales/ja/README.md +13 -0
  498. data/lib/locales/ja/address.yml +120539 -0
  499. data/lib/locales/ja/adjective.yml +148 -0
  500. data/lib/locales/ja/ancient.yml +4 -0
  501. data/lib/locales/ja/animal.yml +5 -0
  502. data/lib/locales/ja/bank.yml +4 -0
  503. data/lib/locales/ja/book.yml +7 -0
  504. data/lib/locales/ja/cat.yml +5 -0
  505. data/lib/locales/ja/coffee.yml +4 -0
  506. data/lib/locales/ja/color.yml +4 -0
  507. data/lib/locales/ja/commerce.yml +11 -0
  508. data/lib/locales/ja/company.yml +8 -0
  509. data/lib/locales/ja/dog.yml +6 -0
  510. data/lib/locales/ja/emotion.yml +51 -0
  511. data/lib/locales/ja/food.yml +4 -0
  512. data/lib/locales/ja/gender.yml +4 -0
  513. data/lib/locales/ja/lorem.yml +9 -0
  514. data/lib/locales/ja/name.yml +13 -0
  515. data/lib/locales/ja/naruto.yml +230 -0
  516. data/lib/locales/ja/overwatch.yml +5 -0
  517. data/lib/locales/ja/phone_number.yml +7 -0
  518. data/lib/locales/ja/pokemon.yml +7 -0
  519. data/lib/locales/ja/relationship.yml +10 -0
  520. data/lib/locales/ja/restaurant.yml +11 -0
  521. data/lib/locales/ja/space.yml +5 -0
  522. data/lib/locales/ja/studio_ghibli.yml +112 -0
  523. data/lib/locales/ja/subscription.yml +8 -0
  524. data/lib/locales/ja/super_mario.yml +9 -0
  525. data/lib/locales/ja/super_smash_bros.yml +8 -0
  526. data/lib/locales/ja/university.yml +9 -0
  527. data/lib/locales/ja/zelda.yml +5 -0
  528. data/lib/locales/ko.yml +132 -0
  529. data/lib/locales/lt.yml +34 -0
  530. data/lib/locales/lv.yml +55 -0
  531. data/lib/locales/mi-NZ.yml +281 -0
  532. data/lib/locales/{no-nb.yml → nb-NO.yml} +20 -8
  533. data/lib/locales/nl.yml +45 -30
  534. data/lib/locales/no.yml +7 -0
  535. data/lib/locales/pl.yml +20 -10
  536. data/lib/locales/pt-BR.yml +725 -0
  537. data/lib/locales/{pt-br.yml → pt.yml} +25 -15
  538. data/lib/locales/ru.yml +117 -0
  539. data/lib/locales/sk.yml +80 -0
  540. data/lib/locales/sv.yml +81 -0
  541. data/lib/locales/th.yml +380 -0
  542. data/lib/locales/tr.yml +40 -0
  543. data/lib/locales/uk.yml +88 -0
  544. data/lib/locales/vi.yml +8 -3
  545. data/lib/locales/zh-CN.yml +56 -0
  546. data/lib/locales/zh-TW.yml +29 -0
  547. metadata +731 -97
  548. data/History.txt +0 -103
  549. data/lib/extensions/array.rb +0 -7
  550. data/lib/extensions/symbol.rb +0 -9
  551. data/lib/faker/address.rb +0 -49
  552. data/lib/faker/company.rb +0 -26
  553. data/lib/faker/internet.rb +0 -71
  554. data/lib/faker/lorem.rb +0 -59
  555. data/lib/faker/name.rb +0 -22
  556. data/lib/faker/phone_number.rb +0 -17
  557. data/lib/locales/de-ch.yml +0 -19
  558. data/lib/locales/en-au.yml +0 -22
  559. data/lib/locales/en-ca.yml +0 -14
  560. data/lib/locales/en-us.yml +0 -6
  561. data/test/test_faker.rb +0 -29
  562. data/test/test_faker_city.rb +0 -45
  563. data/test/test_faker_internet.rb +0 -56
  564. data/test/test_faker_lorem.rb +0 -69
  565. data/test/test_faker_name.rb +0 -20
  566. data/test/test_faker_street.rb +0 -44
  567. data/test/test_flexible.rb +0 -56
  568. data/test/test_helper.rb +0 -5
  569. data/test/test_locale.rb +0 -41
@@ -0,0 +1,199 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Bank < Base
5
+ flexible :bank
6
+
7
+ class << self
8
+ ##
9
+ # Produces a bank account number.
10
+ #
11
+ # @param digits [Integer] Number of digits that the generated account number should have.
12
+ # @return [String]
13
+ #
14
+ # @example
15
+ # Faker::Bank.account_number #=> 6738582379
16
+ # Faker::Bank.account_number(digits: 13) #=> 673858237902
17
+ #
18
+ # @faker.version 1.9.1
19
+ def account_number(digits: 10)
20
+ output = ''
21
+
22
+ output += rand.to_s[2..] while output.length < digits
23
+
24
+ output[0...digits]
25
+ end
26
+
27
+ ##
28
+ # Produces a bank iban number.
29
+ #
30
+ # @param country_code [String, nil] Specifies what country prefix is used to generate the iban code. Providing `nil` will use a random country.
31
+ # @return [String]
32
+ #
33
+ # @example
34
+ # Faker::Bank.iban #=> "GB76DZJM33188515981979"
35
+ # Faker::Bank.iban(country_code: "be") #=> "BE6375388567752043"
36
+ # Faker::Bank.iban(country_code: nil) #=> "DE45186738071857270067"
37
+ #
38
+ # @faker.version 1.7.0
39
+ def iban(country_code: 'GB')
40
+ # Each country has its own format for bank accounts
41
+ # Many of them use letters in certain parts of the account
42
+ # Using regex patterns we can create virtually any type of bank account
43
+ country_code ||= iban_country_code
44
+
45
+ begin
46
+ pattern = fetch("bank.iban_details.#{country_code.downcase}.bban_pattern")
47
+ rescue I18n::MissingTranslationData
48
+ raise ArgumentError, "Could not find iban details for #{country_code}"
49
+ end
50
+
51
+ # Use Faker::Base.regexify for creating a sample from bank account format regex
52
+ account = Base.regexify(/#{pattern}/)
53
+
54
+ # Add country code and checksum to the generated account to form valid IBAN
55
+ country_code.upcase + iban_checksum(country_code, account) + account
56
+ end
57
+
58
+ ##
59
+ # Produces the ISO 3166 code of a country that uses the IBAN system.
60
+ #
61
+ # @return [String]
62
+ #
63
+ # @example
64
+ # Faker::Bank.iban_country_code #=> "CH"
65
+ #
66
+ # @faker.version next
67
+ def iban_country_code
68
+ sample(translate('faker.bank.iban_details').keys).to_s.upcase
69
+ end
70
+
71
+ ##
72
+ # Produces a bank name.
73
+ #
74
+ # @return [String]
75
+ #
76
+ # @example
77
+ # Faker::Bank.name #=> "ABN AMRO CORPORATE FINANCE LIMITED"
78
+ #
79
+ # @faker.version 1.7.0
80
+ def name
81
+ fetch('bank.name')
82
+ end
83
+
84
+ ##
85
+ # Produces a routing number.
86
+ #
87
+ # @return [String]
88
+ #
89
+ # @example
90
+ # Faker::Bank.routing_number #=> "729343831"
91
+ #
92
+ # @faker.version 1.9.1
93
+ def routing_number
94
+ valid_routing_number
95
+ end
96
+
97
+ ##
98
+ # Produces a valid routing number.
99
+ #
100
+ # @return [String]
101
+ #
102
+ # @example
103
+ # Faker::Bank.routing_number #=> "729343831"
104
+ #
105
+ # @faker.version 1.9.1
106
+ def routing_number_with_format
107
+ compile_fraction(valid_routing_number)
108
+ end
109
+
110
+ ##
111
+ # Produces a swift / bic number.
112
+ #
113
+ # @return [String]
114
+ #
115
+ # @example
116
+ # Faker::Bank.swift_bic #=> "AAFMGB21"
117
+ #
118
+ # @faker.version 1.7.0
119
+ def swift_bic
120
+ fetch('bank.swift_bic')
121
+ end
122
+
123
+ ##
124
+ # Produces an Australian BSB (Bank-State-Branch) number
125
+ #
126
+ # @return [String]
127
+ #
128
+ # @example
129
+ # Faker::Bank.bsb_number
130
+ # #=> "036616"
131
+ #
132
+ # @faker.version 2.13.0
133
+ def bsb_number
134
+ compile_bsb_number
135
+ end
136
+
137
+ private
138
+
139
+ def checksum(num_string)
140
+ num_array = num_string.chars.map(&:to_i)
141
+ (
142
+ 7 * (num_array[0] + num_array[3] + num_array[6]) +
143
+ 3 * (num_array[1] + num_array[4] + num_array[7]) +
144
+ 9 * (num_array[2] + num_array[5])
145
+ ) % 10
146
+ end
147
+
148
+ def compile_routing_number
149
+ digit_one_two = %w[00 01 02 03 04 05 06 07 08 09 10 11 12]
150
+ ((21..32).to_a + (61..72).to_a + [80]).each { |x| digit_one_two << x.to_s }
151
+ digit_one_two.sample + rand_numstring + rand_numstring + rand_numstring + rand_numstring + rand_numstring + rand_numstring + rand_numstring
152
+ end
153
+
154
+ def compile_bsb_number
155
+ digit_one_two = %w[01 03 06 08 11 12 73 76 78 30]
156
+ state = (2..7).to_a.map(&:to_s).sample
157
+ digit_one_two.sample + state + rand_numstring + rand_numstring + rand_numstring
158
+ end
159
+
160
+ # Calculates the mandatory checksum in 3rd and 4th characters in IBAN format
161
+ # source: https://en.wikipedia.org/wiki/International_Bank_Account_Number#Generating_IBAN_check_digits
162
+ def iban_checksum(country_code, account)
163
+ # Converts letters to numbers according the iban rules, A=10..Z=35
164
+ account_to_number = "#{account}#{country_code}00".upcase.chars.map do |d|
165
+ d =~ /[A-Z]/ ? (d.ord - 55).to_s : d
166
+ end.join.to_i
167
+
168
+ # This is the correct answer to (iban_to_num + checksum) % 97 == 1
169
+ checksum = 98 - (account_to_number % 97)
170
+
171
+ # Use leftpad to make the size always to 2
172
+ checksum.to_s.rjust(2, '0')
173
+ end
174
+
175
+ def valid_routing_number
176
+ routing_number = compile_routing_number
177
+ checksum = checksum(routing_number)
178
+ return routing_number if valid_checksum?(routing_number, checksum)
179
+
180
+ routing_number[0..7] + checksum.to_s
181
+ end
182
+
183
+ def valid_checksum?(routing_number, checksum)
184
+ routing_number[8].to_i == checksum
185
+ end
186
+
187
+ def compile_fraction(routing_num)
188
+ prefix = (1..50).to_a.map(&:to_s).sample
189
+ numerator = routing_num.chars[5..8].join.to_i.to_s
190
+ denominator = routing_num.chars[0..4].join.to_i.to_s
191
+ "#{prefix}-#{numerator}/#{denominator}"
192
+ end
193
+
194
+ def rand_numstring
195
+ (0..9).to_a.map(&:to_s).sample
196
+ end
197
+ end
198
+ end
199
+ end
@@ -0,0 +1,165 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Barcode < Base
5
+ class << self
6
+ ##
7
+ # Returns a EAN 8 or 13 digit format barcode number with check digit
8
+ # @return [String]
9
+ #
10
+ # @example
11
+ # Faker::Barcode.ean => "85657526"
12
+ # Faker::Barcode.ean(8) => "30152700"
13
+ # Faker::Barcode.ean(13) => "2115190480285"
14
+ #
15
+ # @faker.version 2.14.0
16
+ def ean(length = 8)
17
+ generate_barcode("barcode.ean_#{Integer(length)}")
18
+ end
19
+
20
+ ##
21
+ # Returns a EAN 8 or 13 digit format barcode number with composite string attached with check digit
22
+ # @return [String]
23
+ #
24
+ # @example
25
+ # Faker::Barcode.ean_with_composite_sumbology => "41007624|JHOC6649"
26
+ # Faker::Barcode.ean_with_composite_sumbology(8) => "38357961|XUYJ3266"
27
+ # Faker::Barcode.ean_with_composite_sumbology(13) => "9530722443911|CKHWQHID"
28
+ #
29
+ # @faker.version 2.14.0
30
+ def ean_with_composite_symbology(length = 8)
31
+ "#{ean(length)}|#{bothify(parse('barcode.composite_symbol'))}"
32
+ end
33
+
34
+ ##
35
+ # Returns a UPC_A format barcode number with check digit
36
+ # @return [String]
37
+ #
38
+ # @example
39
+ # Faker::Barcode.upc_a => "766807541831"
40
+ #
41
+ # @faker.version 2.14.0
42
+ def upc_a
43
+ generate_barcode('barcode.upc_a')
44
+ end
45
+
46
+ ##
47
+ # Returns a UPC_E format barcode number with check digit
48
+ # @return [String]
49
+ #
50
+ # @example
51
+ # Faker::Barcode.upc_e => "03746820"
52
+ #
53
+ # @faker.version 2.14.0
54
+ def upc_e
55
+ generate_barcode('barcode.upc_e')
56
+ end
57
+
58
+ ##
59
+ # Returns a UPC_A format barcode number with composite string attached with check digit
60
+ # @return [String]
61
+ #
62
+ # @example
63
+ # Faker::Barcode.upc_a_with_composite_symbology => "790670155765|JOVG6208"
64
+ #
65
+ # @faker.version 2.14.0
66
+ def upc_a_with_composite_symbology
67
+ "#{upc_a}|#{bothify(parse('barcode.composite_symbol'))}"
68
+ end
69
+
70
+ ##
71
+ # Returns a UPC_E format barcode number with composite string attached with check digit
72
+ # @return [String]
73
+ #
74
+ # @example
75
+ # Faker::Barcode.upc_e_with_composite_symbology => "05149247|BKZX9722"
76
+ #
77
+ # @faker.version 2.14.0
78
+ def upc_e_with_composite_symbology
79
+ "#{upc_e}|#{bothify(parse('barcode.composite_symbol'))}"
80
+ end
81
+
82
+ ##
83
+ # Returns a ISBN format barcode number with check digit
84
+ # @return [String]
85
+ #
86
+ # @example
87
+ # Faker::Barcode.isbn => "9798363807732"
88
+ #
89
+ # @faker.version 2.14.0
90
+ def isbn
91
+ generate_barcode('barcode.isbn')
92
+ end
93
+
94
+ ##
95
+ # Returns a ISMN format barcode number with check digit
96
+ # @return [String]
97
+ #
98
+ # @example
99
+ # Faker::Barcode.ismn => "9790527672897"
100
+ #
101
+ # @faker.version 2.14.0
102
+ def ismn
103
+ generate_barcode('barcode.ismn')
104
+ end
105
+
106
+ ##
107
+ # Returns a ISSN format barcode number with check digit
108
+ # @return [String]
109
+ #
110
+ # @example
111
+ # Faker::Barcode.issn => "9775541703338"
112
+ #
113
+ # @faker.version 2.14.0
114
+ def issn
115
+ generate_barcode('barcode.issn')
116
+ end
117
+
118
+ private
119
+
120
+ def generate_barcode(key)
121
+ barcode = parse(key)
122
+ check_digit = generate_check_digit(*sum_even_odd(barcode))
123
+ "#{barcode}#{check_digit}"
124
+ end
125
+
126
+ ##
127
+ # Returns the sum of even and odd numbers from value passed
128
+ #
129
+ # @return [Array]
130
+ #
131
+ # @example
132
+ # Faker::Barcode.send(:sum_even_odd, 12345) => [9, 5]
133
+ # Faker::Barcode.send(:sum_even_odd, 87465) => [17, 13]
134
+ #
135
+ # @faker.version 2.14.0
136
+ def sum_even_odd(fake_num)
137
+ number = fake_num.to_i
138
+ sum_even, sum_odd = 0, 0, index = 1
139
+
140
+ while number != 0
141
+ index.even? ? sum_even += number % 10 : sum_odd += number % 10
142
+
143
+ number /= 10
144
+ index += 1
145
+ end
146
+
147
+ [sum_odd, sum_even]
148
+ end
149
+
150
+ ##
151
+ # Generates the check digits from sum passed
152
+ #
153
+ # @return [Integer]
154
+ #
155
+ # @example
156
+ # Faker::Barcode.send(:generate_check_digit, 12, 4) => 0
157
+ # Faker::Barcode.send(:generate_check_digit, 23, 5) => 6
158
+ #
159
+ # @faker.version 2.14.0
160
+ def generate_check_digit(odd_sum, even_sum)
161
+ (10 - (odd_sum * 3 + even_sum) % 10) % 10
162
+ end
163
+ end
164
+ end
165
+ end
@@ -0,0 +1,113 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Beer < Base
5
+ flexible :beer
6
+
7
+ class << self
8
+ ##
9
+ # Produces a random beer name.
10
+ #
11
+ # @return [String]
12
+ #
13
+ # @example
14
+ # Faker::Beer.name #=> "Pliny The Elder"
15
+ #
16
+ # @faker.version 1.6.2
17
+ def name
18
+ fetch('beer.name')
19
+ end
20
+
21
+ ##
22
+ # Produces a random beer style.
23
+ #
24
+ # @return [String]
25
+ #
26
+ # @example
27
+ # Faker::Beer.style #=> "Wood-aged Beer"
28
+ #
29
+ # @faker.version 1.6.2
30
+ def style
31
+ fetch('beer.style')
32
+ end
33
+
34
+ ##
35
+ # Produces a random beer hops.
36
+ #
37
+ # @return [String]
38
+ #
39
+ # @example
40
+ # Faker::Beer.hop #=> "Sterling"
41
+ #
42
+ # @faker.version 1.6.2
43
+ def hop
44
+ fetch('beer.hop')
45
+ end
46
+
47
+ ##
48
+ # Produces a random beer yeast.
49
+ #
50
+ # @return [String]
51
+ #
52
+ # @example
53
+ # Faker::Beer.yeast #=> "5335 - Lactobacillus"
54
+ #
55
+ # @faker.version 1.6.2
56
+ def yeast
57
+ fetch('beer.yeast')
58
+ end
59
+
60
+ ##
61
+ # Produces a random beer malt.
62
+ #
63
+ # @return [String]
64
+ #
65
+ # @example
66
+ # Faker::Beer.malts #=> "Munich"
67
+ #
68
+ # @faker.version 1.6.2
69
+ def malts
70
+ fetch('beer.malt')
71
+ end
72
+
73
+ ##
74
+ # Produces a random beer IBU.
75
+ #
76
+ # @return [String]
77
+ #
78
+ # @example
79
+ # Faker::Beer.ibu #=> "87 IBU"
80
+ #
81
+ # @faker.version 1.6.2
82
+ def ibu
83
+ "#{rand(10..100)} IBU"
84
+ end
85
+
86
+ ##
87
+ # Produces a random beer alcohol percentage.
88
+ #
89
+ # @return [String]
90
+ #
91
+ # @example
92
+ # Faker::Beer.alcohol #=> "5.4%"
93
+ #
94
+ # @faker.version 1.6.2
95
+ def alcohol
96
+ "#{rand(2.0..10.0).round(1)}%"
97
+ end
98
+
99
+ ##
100
+ # Produces a random beer blg level.
101
+ #
102
+ # @return [String]
103
+ #
104
+ # @example
105
+ # Faker::Beer.blg #=> "5.1Blg"
106
+ #
107
+ # @faker.version 1.6.2
108
+ def blg
109
+ "#{rand(5.0..20.0).round(1)}°Blg"
110
+ end
111
+ end
112
+ end
113
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Blood < Base
5
+ flexible :blood
6
+
7
+ class << self
8
+ ##
9
+ # Produces a random blood type.
10
+ #
11
+ # @return [String]
12
+ #
13
+ # @example
14
+ # Faker::Blood.type #=> "AB"
15
+ #
16
+ # @faker.version 2.13.0
17
+ def type
18
+ fetch('blood.type')
19
+ end
20
+
21
+ ##
22
+ # Produces a random blood RH-Factor.
23
+ #
24
+ # @return [String]
25
+ #
26
+ # @example
27
+ # Faker::Blood.rh_factor #=> "-"
28
+ #
29
+ # @faker.version 2.13.0
30
+ def rh_factor
31
+ fetch('blood.rh_factor')
32
+ end
33
+
34
+ ##
35
+ # Produces a random blood group name.
36
+ #
37
+ # @return [String]
38
+ #
39
+ # @example
40
+ # Faker::Blood.group #=> "AB-"
41
+ #
42
+ # @faker.version 2.13.0
43
+ def group
44
+ parse('blood.group')
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Boolean < Base
5
+ class << self
6
+ ##
7
+ # Produces a boolean
8
+ #
9
+ # @param true_ratio [Float] The likelihood (as a float, out of 1.0) for the method to return `true`.
10
+ # @return [Boolean]
11
+ #
12
+ # @example
13
+ # Faker::Boolean.boolean #=> true
14
+ # @example
15
+ # Faker::Boolean.boolean(true_ratio: 0.2) #=> false
16
+ #
17
+ # @faker.version 1.6.2
18
+ def boolean(true_ratio: 0.5)
19
+ (rand < true_ratio)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class BossaNova < Base
5
+ class << self
6
+ ##
7
+ # Produces the name of a bossa nova artist.
8
+ #
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::BossaNova.artist #=> "Tom Jobin"
13
+ #
14
+ # @faker.version 1.8.3
15
+ def artist
16
+ fetch('bossa_nova.artists')
17
+ end
18
+
19
+ ##
20
+ # Produces a bossa nova song.
21
+ #
22
+ # @return [String]
23
+ #
24
+ # @example
25
+ # Faker::BossaNova.song #=> "Chega de Saudade"
26
+ #
27
+ # @faker.version 1.8.3
28
+ def song
29
+ fetch('bossa_nova.songs')
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'date'
4
+
5
+ module Faker
6
+ class Business < Base
7
+ flexible :business
8
+
9
+ class << self
10
+ ##
11
+ # Produces a credit card number.
12
+ #
13
+ # @return [String]
14
+ #
15
+ # @example
16
+ # Faker::Business.credit_card_number #=> "1228-1221-1221-1431"
17
+ #
18
+ # @faker.version 1.2.0
19
+ def credit_card_number
20
+ fetch('business.credit_card_numbers')
21
+ end
22
+
23
+ ##
24
+ # Produces a credit card expiration date.
25
+ #
26
+ # @return [Date]
27
+ #
28
+ # @example
29
+ # Faker::Business.credit_card_expiry_date #=> <Date: 2015-11-11 ((2457338j,0s,0n),+0s,2299161j)>
30
+ #
31
+ # @faker.version 1.2.0
32
+ def credit_card_expiry_date
33
+ ::Date.today + (365 * rand(1..4))
34
+ end
35
+
36
+ ##
37
+ # Produces a type of credit card.
38
+ #
39
+ # @return [String]
40
+ #
41
+ # @example
42
+ # Faker::Business.credit_card_type #=> "visa"
43
+ #
44
+ # @faker.version 1.2.0
45
+ def credit_card_type
46
+ fetch('business.credit_card_types')
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ class Camera < Base
5
+ class << self
6
+ ##
7
+ # Produces a brand of a camera
8
+ #
9
+ # @return [String]
10
+ #
11
+ # @example
12
+ # Faker::Camera.brand #=> "Canon"
13
+ #
14
+ # @faker.version next
15
+ def brand
16
+ fetch('camera.brand')
17
+ end
18
+
19
+ ##
20
+ # Produces a model of camera
21
+ #
22
+ # @return [String]
23
+ #
24
+ # @example
25
+ # Faker::Camera.model #=> "450D"
26
+ #
27
+ # @faker.version next
28
+ def model
29
+ fetch('camera.model')
30
+ end
31
+
32
+ ##
33
+ # Produces a brand with model
34
+ #
35
+ # @return [String]
36
+ #
37
+ # @example
38
+ # Faker::Camera.brand_with_model #=> "Canon 450D"
39
+ #
40
+ # @faker.version next
41
+ def brand_with_model
42
+ fetch('camera.brand_with_model')
43
+ end
44
+ end
45
+ end
46
+ end