faker 5.3.1 → 5.5.2

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 (332) hide show
  1. package/{.jshintignore → .eslintignore} +0 -0
  2. package/.eslintrc +54 -0
  3. package/.travis.yml +3 -0
  4. package/Readme.md +48 -3
  5. package/dist/faker.js +71873 -39072
  6. package/dist/faker.min.js +1 -1
  7. package/lib/address.js +121 -107
  8. package/lib/animal.js +124 -0
  9. package/lib/commerce.js +16 -16
  10. package/lib/company.js +8 -8
  11. package/lib/database.js +4 -4
  12. package/lib/datatype.js +226 -0
  13. package/lib/date.js +94 -72
  14. package/lib/finance.js +44 -22
  15. package/lib/git.js +1 -1
  16. package/lib/helpers.js +8 -8
  17. package/lib/iban.js +22 -14
  18. package/lib/image.js +14 -14
  19. package/lib/image_providers/lorempixel.js +1 -1
  20. package/lib/index.js +58 -47
  21. package/lib/internet.js +148 -119
  22. package/lib/locales/af_ZA/name/female_first_name.js +112 -112
  23. package/lib/locales/af_ZA/name/first_name.js +222 -222
  24. package/lib/locales/af_ZA/name/male_first_name.js +115 -115
  25. package/lib/locales/ar/address/state.js +62 -1
  26. package/lib/locales/ar/date/index.js +4 -0
  27. package/lib/locales/ar/date/month.js +63 -0
  28. package/lib/locales/ar/date/weekday.js +22 -0
  29. package/lib/locales/ar/index.js +2 -0
  30. package/lib/locales/cz/address/index.js +0 -1
  31. package/lib/locales/cz/name/first_name.js +3 -0
  32. package/lib/locales/cz/name/index.js +2 -0
  33. package/lib/locales/cz/name/last_name.js +3 -0
  34. package/lib/locales/de_CH/address/city.js +3 -0
  35. package/lib/locales/de_CH/address/city_name.js +102 -0
  36. package/lib/locales/de_CH/address/index.js +4 -0
  37. package/lib/locales/de_CH/address/state.js +28 -0
  38. package/lib/locales/de_CH/address/state_abbr.js +28 -0
  39. package/lib/locales/de_CH/name/first_name.js +336 -336
  40. package/lib/locales/de_CH/name/last_name.js +209 -209
  41. package/lib/locales/en/address/city_name.js +1002 -0
  42. package/lib/locales/en/address/country_code_alpha_3.js +250 -250
  43. package/lib/locales/en/address/index.js +1 -0
  44. package/lib/locales/en/animal/bear.js +10 -0
  45. package/lib/locales/en/animal/bird.js +916 -0
  46. package/lib/locales/en/animal/cat.js +57 -0
  47. package/lib/locales/en/animal/cetacean.js +56 -0
  48. package/lib/locales/en/animal/cow.js +521 -0
  49. package/lib/locales/en/animal/crocodilia.js +26 -0
  50. package/lib/locales/en/animal/dog.js +499 -0
  51. package/lib/locales/en/animal/fish.js +98 -0
  52. package/lib/locales/en/animal/horse.js +347 -0
  53. package/lib/locales/en/animal/index.js +16 -0
  54. package/lib/locales/en/animal/insect.js +132 -0
  55. package/lib/locales/en/animal/lion.js +9 -0
  56. package/lib/locales/en/animal/rabbit.js +51 -0
  57. package/lib/locales/en/animal/snake.js +583 -0
  58. package/lib/locales/en/animal/type.js +15 -0
  59. package/lib/locales/en/finance/currency.js +0 -4
  60. package/lib/locales/en/index.js +1 -0
  61. package/lib/locales/en/internet/avatar_uri.js +1250 -1254
  62. package/lib/locales/en/music/genre.js +18 -18
  63. package/lib/locales/en/name/binary_gender.js +4 -0
  64. package/lib/locales/en/name/female_first_name.js +501 -501
  65. package/lib/locales/en/name/gender.js +71 -71
  66. package/lib/locales/en/name/index.js +1 -0
  67. package/lib/locales/en/name/male_first_name.js +501 -501
  68. package/lib/locales/en/system/directoryPaths.js +60 -60
  69. package/lib/locales/en/vehicle/bicycle.js +20 -0
  70. package/lib/locales/en/vehicle/index.js +1 -0
  71. package/lib/locales/en_GH/address/building_number.js +5 -0
  72. package/lib/locales/en_GH/address/city.js +3 -0
  73. package/lib/locales/en_GH/address/city_name.js +355 -0
  74. package/lib/locales/en_GH/address/default_country.js +3 -0
  75. package/lib/locales/en_GH/address/index.js +12 -0
  76. package/lib/locales/en_GH/address/postcode.js +4 -0
  77. package/lib/locales/en_GH/address/state.js +18 -0
  78. package/lib/locales/en_GH/address/street_address.js +3 -0
  79. package/lib/locales/en_GH/address/street_name.js +4 -0
  80. package/lib/locales/en_GH/address/street_prefix.js +3 -0
  81. package/lib/locales/en_GH/address/street_suffix.js +10 -0
  82. package/lib/locales/en_GH/company/index.js +4 -0
  83. package/lib/locales/en_GH/company/name.js +4 -0
  84. package/lib/locales/en_GH/company/suffix.js +4 -0
  85. package/lib/locales/en_GH/index.js +8 -0
  86. package/lib/locales/en_GH/internet/domain_suffix.js +11 -0
  87. package/lib/locales/en_GH/internet/index.js +3 -0
  88. package/lib/locales/en_GH/name/female_first_name.js +146 -0
  89. package/lib/locales/en_GH/name/first_name.js +4 -0
  90. package/lib/locales/en_GH/name/index.js +7 -0
  91. package/lib/locales/en_GH/name/last_name.js +124 -0
  92. package/lib/locales/en_GH/name/male_first_name.js +134 -0
  93. package/lib/locales/en_GH/name/name.js +6 -0
  94. package/lib/locales/en_GH/phone_number/formats.js +28 -0
  95. package/lib/locales/{nep → en_GH}/phone_number/index.js +0 -0
  96. package/lib/locales/en_NG/address/city_prefix.js +525 -525
  97. package/lib/locales/en_NG/address/state.js +37 -37
  98. package/lib/locales/en_NG/name/female_first_name.js +13 -13
  99. package/lib/locales/en_NG/name/first_name.js +33 -33
  100. package/lib/locales/en_NG/name/male_first_name.js +22 -22
  101. package/lib/locales/en_NG/phone_number/formats.js +5 -5
  102. package/lib/locales/en_US/address/postcode_by_state.js +104 -104
  103. package/lib/locales/en_ZA/address/city_prefix.js +14 -14
  104. package/lib/locales/en_ZA/address/state.js +9 -9
  105. package/lib/locales/en_ZA/cell_phone/formats.js +18 -18
  106. package/lib/locales/en_ZA/name/female_first_name.js +292 -292
  107. package/lib/locales/en_ZA/name/first_name.js +539 -539
  108. package/lib/locales/en_ZA/name/male_first_name.js +252 -252
  109. package/lib/locales/es/commerce/color.js +9 -9
  110. package/lib/locales/es/commerce/department.js +19 -19
  111. package/lib/locales/es/commerce/product_name.js +54 -54
  112. package/lib/locales/es/name/female_first_name.js +12 -12
  113. package/lib/locales/es/name/male_first_name.js +17 -17
  114. package/lib/locales/es_MX/address/street.js +39 -39
  115. package/lib/locales/es_MX/commerce/color.js +31 -31
  116. package/lib/locales/es_MX/commerce/department.js +22 -22
  117. package/lib/locales/es_MX/commerce/product_name.js +56 -56
  118. package/lib/locales/es_MX/company/bs_noun.js +44 -44
  119. package/lib/locales/es_MX/company/bs_verb.js +60 -60
  120. package/lib/locales/es_MX/lorem/words.js +268 -268
  121. package/lib/locales/es_MX/name/first_name.js +304 -304
  122. package/lib/locales/es_MX/name/last_name.js +686 -686
  123. package/lib/locales/es_MX/name/title.js +1 -1
  124. package/lib/locales/es_MX/team/creature.js +66 -66
  125. package/lib/locales/fa/name/female_first_name.js +67 -67
  126. package/lib/locales/fa/name/male_first_name.js +74 -74
  127. package/lib/locales/fa/vehicle/model.js +1 -1
  128. package/lib/locales/fi/name/female_first_name.js +50 -50
  129. package/lib/locales/fi/name/first_name.js +100 -100
  130. package/lib/locales/fi/name/last_name.js +50 -50
  131. package/lib/locales/fi/name/male_first_name.js +50 -50
  132. package/lib/locales/fr/address/city_name.js +84 -84
  133. package/lib/locales/fr/address/country.js +195 -0
  134. package/lib/locales/fr/address/index.js +1 -0
  135. package/lib/locales/fr/name/female_first_name.js +451 -451
  136. package/lib/locales/fr/name/first_name.js +3 -0
  137. package/lib/locales/fr/name/index.js +1 -0
  138. package/lib/locales/fr/name/male_first_name.js +496 -496
  139. package/lib/locales/fr_BE/adresses/building_number.js +12 -0
  140. package/lib/locales/fr_BE/adresses/city.js +4 -0
  141. package/lib/locales/fr_BE/adresses/city_prefix.js +265 -0
  142. package/lib/locales/fr_BE/adresses/city_suffix.js +6 -0
  143. package/lib/locales/fr_BE/adresses/default_country.js +3 -0
  144. package/lib/locales/fr_BE/adresses/index.js +25 -0
  145. package/lib/locales/fr_BE/adresses/postcode.js +3 -0
  146. package/lib/locales/fr_BE/adresses/state.js +12 -0
  147. package/lib/locales/fr_BE/adresses/state_abbr.js +11 -0
  148. package/lib/locales/fr_BE/adresses/street_address.js +3 -0
  149. package/lib/locales/fr_BE/adresses/street_name.js +5 -0
  150. package/lib/locales/fr_BE/adresses/street_prefix.js +21 -0
  151. package/lib/locales/fr_BE/adresses/street_suffix.js +212 -0
  152. package/lib/locales/fr_BE/cell_phone/formats.js +34 -0
  153. package/lib/locales/fr_BE/cell_phone/index.js +3 -0
  154. package/lib/locales/fr_BE/index.js +20 -0
  155. package/lib/locales/fr_BE/internet/domain_suffix.js +10 -0
  156. package/lib/locales/fr_BE/internet/free_email.js +6 -0
  157. package/lib/locales/{nep → fr_BE}/internet/index.js +0 -0
  158. package/lib/locales/fr_BE/name/first_name.js +3009 -0
  159. package/lib/locales/fr_BE/name/first_name_female.js +1532 -0
  160. package/lib/locales/fr_BE/name/first_name_male.js +1482 -0
  161. package/lib/locales/fr_BE/name/gender.js +10 -0
  162. package/lib/locales/fr_BE/name/index.js +11 -0
  163. package/lib/locales/fr_BE/name/last_name.js +624 -0
  164. package/lib/locales/fr_BE/name/name.js +8 -0
  165. package/lib/locales/fr_BE/name/prefix.js +6 -0
  166. package/lib/locales/fr_BE/name/suffix.js +8 -0
  167. package/lib/locales/fr_BE/name/title.js +22 -0
  168. package/lib/locales/fr_BE/phone_number/formats.js +93 -0
  169. package/lib/locales/fr_BE/phone_number/index.js +3 -0
  170. package/lib/locales/hr/address/city_name.js +128 -128
  171. package/lib/locales/hr/address/country.js +246 -246
  172. package/lib/locales/hr/address/street.js +375 -375
  173. package/lib/locales/hr/date/month.js +24 -24
  174. package/lib/locales/hr/date/weekday.js +7 -7
  175. package/lib/locales/hr/name/female_first_name.js +238 -238
  176. package/lib/locales/hr/name/first_name.js +409 -409
  177. package/lib/locales/hr/name/last_name.js +11617 -11617
  178. package/lib/locales/hr/name/male_first_name.js +171 -171
  179. package/lib/locales/hr/name/name.js +6 -6
  180. package/lib/locales/hr/name/prefix.js +5 -5
  181. package/lib/locales/hr/name/suffix.js +2 -2
  182. package/lib/locales/hy/address/building_number.js +8 -0
  183. package/lib/locales/hy/address/city.js +4 -0
  184. package/lib/locales/hy/address/city_prefix.js +7 -0
  185. package/lib/locales/hy/address/city_suffix.js +5 -0
  186. package/lib/locales/hy/address/country.js +231 -0
  187. package/lib/locales/hy/address/default_country.js +3 -0
  188. package/lib/locales/hy/address/direction.js +10 -0
  189. package/lib/locales/hy/address/index.js +14 -0
  190. package/lib/locales/hy/address/secondary_address.js +4 -0
  191. package/lib/locales/hy/address/state.js +21 -0
  192. package/lib/locales/hy/address/street_address.js +3 -0
  193. package/lib/locales/hy/address/street_name.js +3 -0
  194. package/lib/locales/hy/address/street_suffix.js +4 -0
  195. package/lib/locales/hy/commerce/color.js +14 -0
  196. package/lib/locales/hy/commerce/index.js +3 -0
  197. package/lib/locales/hy/date/index.js +4 -0
  198. package/lib/locales/hy/date/month.js +30 -0
  199. package/lib/locales/hy/date/weekday.js +21 -0
  200. package/lib/locales/hy/index.js +11 -0
  201. package/lib/locales/hy/internet/domain_suffix.js +9 -0
  202. package/lib/locales/hy/internet/index.js +3 -0
  203. package/lib/locales/hy/lorem/index.js +3 -0
  204. package/lib/locales/hy/lorem/words.js +191 -0
  205. package/lib/locales/hy/name/female_first_name.js +48 -0
  206. package/lib/locales/hy/name/first_name.js +93 -0
  207. package/lib/locales/hy/name/index.js +7 -0
  208. package/lib/locales/hy/name/last_name.js +94 -0
  209. package/lib/locales/hy/name/male_first_name.js +47 -0
  210. package/lib/locales/hy/name/name.js +8 -0
  211. package/lib/locales/hy/phone_number/formats.js +4 -0
  212. package/lib/locales/hy/phone_number/index.js +3 -0
  213. package/lib/locales/id_ID/name/female_first_name.js +45 -1
  214. package/lib/locales/id_ID/name/female_last_name.js +41 -1
  215. package/lib/locales/id_ID/name/male_last_name.js +47 -2
  216. package/lib/locales/it/address/city_name.js +981 -0
  217. package/lib/locales/it/address/index.js +1 -0
  218. package/lib/locales/it/name/last_name.js +2163 -628
  219. package/lib/locales/ja/address/country.js +169 -0
  220. package/lib/locales/ja/address/index.js +1 -0
  221. package/lib/locales/ko/address/postcode.js +2 -1
  222. package/lib/locales/ko/name/first_name.js +2994 -1
  223. package/lib/locales/ko/name/last_name.js +98 -1
  224. package/lib/locales/lv/commerce/product_name.js +14 -14
  225. package/lib/locales/nb_NO/name/index.js +2 -2
  226. package/lib/locales/{nep → ne}/address/city.js +0 -0
  227. package/lib/locales/{nep → ne}/address/default_country.js +0 -0
  228. package/lib/locales/{nep → ne}/address/index.js +0 -0
  229. package/lib/locales/{nep → ne}/address/postcode.js +0 -0
  230. package/lib/locales/{nep → ne}/address/state.js +0 -0
  231. package/lib/locales/{nep → ne}/company/index.js +0 -0
  232. package/lib/locales/{nep → ne}/company/suffix.js +0 -0
  233. package/lib/locales/ne/index.js +8 -0
  234. package/lib/locales/{nep → ne}/internet/domain_suffix.js +0 -0
  235. package/lib/locales/{nep → ne}/internet/free_email.js +0 -0
  236. package/lib/locales/ne/internet/index.js +4 -0
  237. package/lib/locales/{nep → ne}/name/first_name.js +0 -0
  238. package/lib/locales/{nep → ne}/name/index.js +0 -0
  239. package/lib/locales/{nep → ne}/name/last_name.js +0 -0
  240. package/lib/locales/{nep → ne}/phone_number/formats.js +0 -0
  241. package/lib/locales/ne/phone_number/index.js +3 -0
  242. package/lib/locales/nl/address/country.js +5 -7
  243. package/lib/locales/nl/address/secondary_address.js +2 -1
  244. package/lib/locales/nl/address/street_suffix.js +3 -1
  245. package/lib/locales/nl/commerce/color.js +38 -0
  246. package/lib/locales/nl/commerce/department.js +24 -0
  247. package/lib/locales/nl/commerce/index.js +5 -0
  248. package/lib/locales/nl/commerce/product_name.js +72 -0
  249. package/lib/locales/nl/company/suffix.js +5 -2
  250. package/lib/locales/nl/date/index.js +4 -0
  251. package/lib/locales/nl/date/month.js +63 -0
  252. package/lib/locales/nl/date/weekday.js +43 -0
  253. package/lib/locales/nl/hacker/adjective.js +25 -0
  254. package/lib/locales/nl/hacker/index.js +6 -0
  255. package/lib/locales/nl/hacker/noun.js +28 -0
  256. package/lib/locales/nl/hacker/phrase.js +10 -0
  257. package/lib/locales/nl/hacker/verb.js +23 -0
  258. package/lib/locales/nl/index.js +3 -0
  259. package/lib/locales/nl/internet/domain_suffix.js +2 -1
  260. package/lib/locales/nl/name/female_first_name.js +517 -0
  261. package/lib/locales/nl/name/index.js +2 -0
  262. package/lib/locales/nl/name/male_first_name.js +590 -0
  263. package/lib/locales/pl/name/female_first_name.js +176 -0
  264. package/lib/locales/pl/name/first_name.js +3 -410
  265. package/lib/locales/pl/name/male_first_name.js +236 -0
  266. package/lib/locales/pt_BR/address/city_suffix.js +4 -0
  267. package/lib/locales/pt_BR/address/country.js +41 -44
  268. package/lib/locales/pt_BR/address/state_abbr.js +4 -1
  269. package/lib/locales/pt_BR/company/suffix.js +1 -0
  270. package/lib/locales/pt_BR/name/female_first_name.js +82 -0
  271. package/lib/locales/pt_BR/name/index.js +2 -0
  272. package/lib/locales/pt_BR/name/male_first_name.js +90 -0
  273. package/lib/locales/pt_BR/name/name.js +8 -0
  274. package/lib/locales/pt_BR/name/prefix.js +2 -1
  275. package/lib/locales/pt_PT/phone_number/formats.js +1 -0
  276. package/lib/locales/ro/address/city.js +300 -300
  277. package/lib/locales/ro/address/county.js +42 -42
  278. package/lib/locales/ro/address/state.js +42 -42
  279. package/lib/locales/ro/address/state_abbr.js +42 -42
  280. package/lib/locales/ro/address/street_address.js +1 -1
  281. package/lib/locales/ro/address/street_suffix.js +3 -3
  282. package/lib/locales/ro/address/streets.js +100 -100
  283. package/lib/locales/ro/cell_phone/formats.js +59 -59
  284. package/lib/locales/ro/internet/domain_suffix.js +19 -19
  285. package/lib/locales/ro/internet/index.js +0 -1
  286. package/lib/locales/ro/name/female_first_name.js +387 -387
  287. package/lib/locales/ro/name/last_name.js +300 -300
  288. package/lib/locales/ro/name/male_first_name.js +288 -288
  289. package/lib/locales/ro/name/name.js +32 -32
  290. package/lib/locales/ro/name/prefix.js +3 -3
  291. package/lib/locales/ro/name/suffix.js +2 -2
  292. package/lib/locales/ro/phone_number/formats.js +82 -82
  293. package/lib/locales/sk/address/index.js +0 -1
  294. package/lib/locales/tr/name/female_first_name.js +416 -0
  295. package/lib/locales/tr/name/index.js +2 -0
  296. package/lib/locales/tr/name/male_first_name.js +754 -0
  297. package/lib/locales/tr/name/name.js +2 -2
  298. package/lib/locales/vi/name/female_first_name.js +1312 -0
  299. package/lib/locales/vi/name/first_name.js +3 -28
  300. package/lib/locales/vi/name/index.js +5 -3
  301. package/lib/locales/vi/name/last_name.js +1 -48
  302. package/lib/locales/vi/name/male_first_name.js +1227 -0
  303. package/lib/locales/vi/name/name.js +3 -2
  304. package/lib/locales/zu_ZA/name/female_first_name.js +50 -50
  305. package/lib/locales/zu_ZA/name/first_name.js +100 -100
  306. package/lib/locales/zu_ZA/name/last_name.js +100 -100
  307. package/lib/locales/zu_ZA/name/male_first_name.js +51 -51
  308. package/lib/locales.js +2 -1
  309. package/lib/lorem.js +25 -25
  310. package/lib/mersenne.js +31 -0
  311. package/lib/music.js +9 -9
  312. package/lib/name.js +36 -32
  313. package/lib/phone_number.js +4 -4
  314. package/lib/random.js +138 -150
  315. package/lib/system.js +114 -63
  316. package/lib/time.js +1 -1
  317. package/lib/vehicle.js +38 -4
  318. package/locale/ReadMe.md +1 -1
  319. package/locale/en.js +1 -1
  320. package/locale/en_GH.js +5 -0
  321. package/locale/hy.js +5 -0
  322. package/locale/ne.js +5 -0
  323. package/package.json +4 -3
  324. package/vendor/mersenne.js +194 -222
  325. package/vendor/user-agent.js +155 -155
  326. package/.jshintrc +0 -87
  327. package/lib/locales/cz/address/time_zone.js +0 -145
  328. package/lib/locales/el/internet/avatar_uri.js +0 -1256
  329. package/lib/locales/nep/index.js +0 -8
  330. package/lib/locales/ro/internet/avatar_uri.js +0 -1265
  331. package/lib/locales/sk/address/time_zone.js +0 -145
  332. package/locale/nep.js +0 -5
package/lib/lorem.js CHANGED
@@ -31,12 +31,12 @@ var Lorem = function (faker) {
31
31
  * @param {number} num number of words, defaults to 3
32
32
  */
33
33
  self.words = function (num) {
34
- if (typeof num == 'undefined') { num = 3; }
35
- var words = [];
36
- for (var i = 0; i < num; i++) {
37
- words.push(faker.lorem.word());
38
- }
39
- return words.join(' ');
34
+ if (typeof num == 'undefined') { num = 3; }
35
+ var words = [];
36
+ for (var i = 0; i < num; i++) {
37
+ words.push(faker.lorem.word());
38
+ }
39
+ return words.join(' ');
40
40
  };
41
41
 
42
42
  /**
@@ -47,14 +47,14 @@ var Lorem = function (faker) {
47
47
  * @param {number} range
48
48
  */
49
49
  self.sentence = function (wordCount, range) {
50
- if (typeof wordCount == 'undefined') { wordCount = faker.random.number({ min: 3, max: 10 }); }
51
- // if (typeof range == 'undefined') { range = 7; }
50
+ if (typeof wordCount == 'undefined') { wordCount = faker.datatype.number({ min: 3, max: 10 }); }
51
+ // if (typeof range == 'undefined') { range = 7; }
52
52
 
53
- // strange issue with the node_min_test failing for captialize, please fix and add faker.lorem.back
54
- //return faker.lorem.words(wordCount + Helpers.randomNumber(range)).join(' ').capitalize();
53
+ // strange issue with the node_min_test failing for captialize, please fix and add faker.lorem.back
54
+ //return faker.lorem.words(wordCount + Helpers.randomNumber(range)).join(' ').capitalize();
55
55
 
56
- var sentence = faker.lorem.words(wordCount);
57
- return sentence.charAt(0).toUpperCase() + sentence.slice(1) + '.';
56
+ var sentence = faker.lorem.words(wordCount);
57
+ return sentence.charAt(0).toUpperCase() + sentence.slice(1) + '.';
58
58
  };
59
59
 
60
60
  /**
@@ -64,8 +64,8 @@ var Lorem = function (faker) {
64
64
  * @param {number} wordCount number of words, defaults to 3
65
65
  */
66
66
  self.slug = function (wordCount) {
67
- var words = faker.lorem.words(wordCount);
68
- return Helpers.slugify(words);
67
+ var words = faker.lorem.words(wordCount);
68
+ return Helpers.slugify(words);
69
69
  };
70
70
 
71
71
  /**
@@ -76,13 +76,13 @@ var Lorem = function (faker) {
76
76
  * @param {string} separator defaults to `' '`
77
77
  */
78
78
  self.sentences = function (sentenceCount, separator) {
79
- if (typeof sentenceCount === 'undefined') { sentenceCount = faker.random.number({ min: 2, max: 6 });}
80
- if (typeof separator == 'undefined') { separator = " "; }
81
- var sentences = [];
82
- for (sentenceCount; sentenceCount > 0; sentenceCount--) {
83
- sentences.push(faker.lorem.sentence());
84
- }
85
- return sentences.join(separator);
79
+ if (typeof sentenceCount === 'undefined') { sentenceCount = faker.datatype.number({ min: 2, max: 6 });}
80
+ if (typeof separator == 'undefined') { separator = " "; }
81
+ var sentences = [];
82
+ for (sentenceCount; sentenceCount > 0; sentenceCount--) {
83
+ sentences.push(faker.lorem.sentence());
84
+ }
85
+ return sentences.join(separator);
86
86
  };
87
87
 
88
88
  /**
@@ -92,8 +92,8 @@ var Lorem = function (faker) {
92
92
  * @param {number} sentenceCount defaults to 3
93
93
  */
94
94
  self.paragraph = function (sentenceCount) {
95
- if (typeof sentenceCount == 'undefined') { sentenceCount = 3; }
96
- return faker.lorem.sentences(sentenceCount + faker.random.number(3));
95
+ if (typeof sentenceCount == 'undefined') { sentenceCount = 3; }
96
+ return faker.lorem.sentences(sentenceCount + faker.datatype.number(3));
97
97
  };
98
98
 
99
99
  /**
@@ -110,7 +110,7 @@ var Lorem = function (faker) {
110
110
  if (typeof paragraphCount == 'undefined') { paragraphCount = 3; }
111
111
  var paragraphs = [];
112
112
  for (paragraphCount; paragraphCount > 0; paragraphCount--) {
113
- paragraphs.push(faker.lorem.paragraph());
113
+ paragraphs.push(faker.lorem.paragraph());
114
114
  }
115
115
  return paragraphs.join(separator);
116
116
  }
@@ -134,7 +134,7 @@ var Lorem = function (faker) {
134
134
  * @param {number} lineCount defaults to a random number between 1 and 5
135
135
  */
136
136
  self.lines = function lines (lineCount) {
137
- if (typeof lineCount === 'undefined') { lineCount = faker.random.number({ min: 1, max: 5 });}
137
+ if (typeof lineCount === 'undefined') { lineCount = faker.datatype.number({ min: 1, max: 5 });}
138
138
  return faker.lorem.sentences(lineCount, '\n')
139
139
  };
140
140
 
@@ -0,0 +1,31 @@
1
+ var Gen = require('../vendor/mersenne').MersenneTwister19937;
2
+
3
+ function Mersenne() {
4
+ var gen = new Gen();
5
+ gen.init_genrand((new Date).getTime() % 1000000000);
6
+
7
+ this.rand = function(max, min) {
8
+ if (max === undefined)
9
+ {
10
+ min = 0;
11
+ max = 32768;
12
+ }
13
+ return Math.floor(gen.genrand_real2() * (max - min) + min);
14
+ }
15
+ this.seed = function(S) {
16
+ if (typeof(S) != 'number')
17
+ {
18
+ throw new Error("seed(S) must take numeric argument; is " + typeof(S));
19
+ }
20
+ gen.init_genrand(S);
21
+ }
22
+ this.seed_array = function(A) {
23
+ if (typeof(A) != 'object')
24
+ {
25
+ throw new Error("seed_array(A) must take array of numbers; is " + typeof(A));
26
+ }
27
+ gen.init_by_array(A, A.length);
28
+ }
29
+ }
30
+
31
+ module.exports = Mersenne;
package/lib/music.js CHANGED
@@ -3,20 +3,20 @@
3
3
  * @namespace faker.music
4
4
  */
5
5
  var Music = function (faker) {
6
- var self = this;
7
- /**
6
+ var self = this;
7
+ /**
8
8
  * genre
9
9
  *
10
10
  * @method faker.music.genre
11
11
  */
12
- self.genre = function () {
13
- return faker.random.arrayElement(faker.definitions.music.genre);
14
- };
12
+ self.genre = function () {
13
+ return faker.random.arrayElement(faker.definitions.music.genre);
14
+ };
15
15
 
16
- self.genre.schema = {
17
- "description": "Generates a genre.",
18
- "sampleResults": ["Rock", "Metal", "Pop"]
19
- };
16
+ self.genre.schema = {
17
+ "description": "Generates a genre.",
18
+ "sampleResults": ["Rock", "Metal", "Pop"]
19
+ };
20
20
  };
21
21
 
22
22
  module["exports"] = Music;
package/lib/name.js CHANGED
@@ -27,7 +27,7 @@ function Name (faker) {
27
27
 
28
28
  if (typeof gender !== 'number') {
29
29
  if(typeof faker.definitions.name.first_name === "undefined") {
30
- gender = faker.random.number(1);
30
+ gender = faker.datatype.number(1);
31
31
  }
32
32
  else {
33
33
  //Fall back to non-gendered names if they exist and gender wasn't specified
@@ -55,7 +55,7 @@ function Name (faker) {
55
55
  // some locale datasets ( like ru ) have last_name split by gender. i have no idea how last names can have genders, but also i do not speak russian
56
56
  // see above comment of firstName method
57
57
  if (typeof gender !== 'number') {
58
- gender = faker.random.number(1);
58
+ gender = faker.datatype.number(1);
59
59
  }
60
60
  if (gender === 0) {
61
61
  return faker.random.arrayElement(faker.locales[faker.locale].name.male_last_name);
@@ -66,7 +66,7 @@ function Name (faker) {
66
66
  return faker.random.arrayElement(faker.definitions.name.last_name);
67
67
  };
68
68
 
69
- /**
69
+ /**
70
70
  * middleName
71
71
  *
72
72
  * @method middleName
@@ -76,7 +76,7 @@ function Name (faker) {
76
76
  this.middleName = function (gender) {
77
77
  if (typeof faker.definitions.name.male_middle_name !== "undefined" && typeof faker.definitions.name.female_middle_name !== "undefined") {
78
78
  if (typeof gender !== 'number') {
79
- gender = faker.random.number(1);
79
+ gender = faker.datatype.number(1);
80
80
  }
81
81
  if (gender === 0) {
82
82
  return faker.random.arrayElement(faker.locales[faker.locale].name.male_middle_name);
@@ -97,29 +97,29 @@ function Name (faker) {
97
97
  * @memberof faker.name
98
98
  */
99
99
  this.findName = function (firstName, lastName, gender) {
100
- var r = faker.random.number(8);
101
- var prefix, suffix;
102
- // in particular locales first and last names split by gender,
103
- // thus we keep consistency by passing 0 as male and 1 as female
104
- if (typeof gender !== 'number') {
105
- gender = faker.random.number(1);
106
- }
107
- firstName = firstName || faker.name.firstName(gender);
108
- lastName = lastName || faker.name.lastName(gender);
109
- switch (r) {
100
+ var r = faker.datatype.number(8);
101
+ var prefix, suffix;
102
+ // in particular locales first and last names split by gender,
103
+ // thus we keep consistency by passing 0 as male and 1 as female
104
+ if (typeof gender !== 'number') {
105
+ gender = faker.datatype.number(1);
106
+ }
107
+ firstName = firstName || faker.name.firstName(gender);
108
+ lastName = lastName || faker.name.lastName(gender);
109
+ switch (r) {
110
110
  case 0:
111
- prefix = faker.name.prefix(gender);
112
- if (prefix) {
113
- return prefix + " " + firstName + " " + lastName;
114
- }
111
+ prefix = faker.name.prefix(gender);
112
+ if (prefix) {
113
+ return prefix + " " + firstName + " " + lastName;
114
+ }
115
115
  case 1:
116
- suffix = faker.name.suffix(gender);
117
- if (suffix) {
118
- return firstName + " " + lastName + " " + suffix;
119
- }
120
- }
116
+ suffix = faker.name.suffix(gender);
117
+ if (suffix) {
118
+ return firstName + " " + lastName + " " + suffix;
119
+ }
120
+ }
121
121
 
122
- return firstName + " " + lastName;
122
+ return firstName + " " + lastName;
123
123
  };
124
124
 
125
125
  /**
@@ -140,8 +140,12 @@ function Name (faker) {
140
140
  * @method gender
141
141
  * @memberof faker.name
142
142
  */
143
- this.gender = function () {
144
- return faker.random.arrayElement(faker.definitions.name.gender);
143
+ this.gender = function (binary) {
144
+ if (binary) {
145
+ return faker.random.arrayElement(faker.definitions.name.binary_gender);
146
+ } else {
147
+ return faker.random.arrayElement(faker.definitions.name.gender);
148
+ }
145
149
  }
146
150
 
147
151
  /**
@@ -154,7 +158,7 @@ function Name (faker) {
154
158
  this.prefix = function (gender) {
155
159
  if (typeof faker.definitions.name.male_prefix !== "undefined" && typeof faker.definitions.name.female_prefix !== "undefined") {
156
160
  if (typeof gender !== 'number') {
157
- gender = faker.random.number(1);
161
+ gender = faker.datatype.number(1);
158
162
  }
159
163
  if (gender === 0) {
160
164
  return faker.random.arrayElement(faker.locales[faker.locale].name.male_prefix);
@@ -172,7 +176,7 @@ function Name (faker) {
172
176
  * @memberof faker.name
173
177
  */
174
178
  this.suffix = function () {
175
- return faker.random.arrayElement(faker.definitions.name.suffix);
179
+ return faker.random.arrayElement(faker.definitions.name.suffix);
176
180
  };
177
181
 
178
182
  /**
@@ -182,11 +186,11 @@ function Name (faker) {
182
186
  * @memberof faker.name
183
187
  */
184
188
  this.title = function() {
185
- var descriptor = faker.random.arrayElement(faker.definitions.name.title.descriptor),
186
- level = faker.random.arrayElement(faker.definitions.name.title.level),
187
- job = faker.random.arrayElement(faker.definitions.name.title.job);
189
+ var descriptor = faker.random.arrayElement(faker.definitions.name.title.descriptor),
190
+ level = faker.random.arrayElement(faker.definitions.name.title.level),
191
+ job = faker.random.arrayElement(faker.definitions.name.title.job);
188
192
 
189
- return descriptor + " " + level + " " + job;
193
+ return descriptor + " " + level + " " + job;
190
194
  };
191
195
 
192
196
  /**
@@ -13,8 +13,8 @@ var Phone = function (faker) {
13
13
  * @memberOf faker.phone
14
14
  */
15
15
  self.phoneNumber = function (format) {
16
- format = format || faker.phone.phoneFormats();
17
- return faker.helpers.replaceSymbolWithNumber(format);
16
+ format = format || faker.phone.phoneFormats();
17
+ return faker.helpers.replaceSymbolWithNumber(format);
18
18
  };
19
19
 
20
20
  // FIXME: this is strange passing in an array index.
@@ -26,8 +26,8 @@ var Phone = function (faker) {
26
26
  * @memberOf faker.phone
27
27
  */
28
28
  self.phoneNumberFormat = function (phoneFormatsArrayIndex) {
29
- phoneFormatsArrayIndex = phoneFormatsArrayIndex || 0;
30
- return faker.helpers.replaceSymbolWithNumber(faker.definitions.phone_number.formats[phoneFormatsArrayIndex]);
29
+ phoneFormatsArrayIndex = phoneFormatsArrayIndex || 0;
30
+ return faker.helpers.replaceSymbolWithNumber(faker.definitions.phone_number.formats[phoneFormatsArrayIndex]);
31
31
  };
32
32
 
33
33
  /**