diff options
| author | Marak <[email protected]> | 2014-10-21 13:38:30 +0200 |
|---|---|---|
| committer | Marak <[email protected]> | 2014-10-21 13:38:30 +0200 |
| commit | 1388457499e02eb5e2571f6c68a4d6f86df99ed0 (patch) | |
| tree | 7264587d9ef7d42ec02aba46fa1aed7c9919124c /lib | |
| parent | 0295361e6812a4d2fb67145ace216ec3fd72e183 (diff) | |
| download | faker-1388457499e02eb5e2571f6c68a4d6f86df99ed0.tar.xz faker-1388457499e02eb5e2571f6c68a4d6f86df99ed0.zip | |
[fix] ru locale now works with name.firstName and name.lastName methods #132
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/name.js | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/lib/name.js b/lib/name.js index a81f8ce1..e61e0c41 100644 --- a/lib/name.js +++ b/lib/name.js @@ -1,12 +1,33 @@ var faker = require('../index'); var _name = { + firstName: function () { - return faker.random.array_element(faker.definitions.name.first_name) + if (typeof faker.locales[faker.locale].name.male_first_name !== "undefined" && typeof faker.locales[faker.locale].name.female_first_name !== "undefined") { + // some locale datasets ( like ru ) have first_name split by gender. since the name.first_name field does not exist in these datasets, + // we must randomly pick a name from either gender array so faker.name.firstName will return the correct locale data ( and not fallback ) + var rand = faker.random.number(1); + if (rand === 0) { + return faker.random.array_element(faker.locales[faker.locale].name.male_first_name) + } else { + return faker.random.array_element(faker.locales[faker.locale].name.female_first_name) + } + } + return faker.random.array_element(faker.definitions.name.first_name) }, lastName: function () { - return faker.random.array_element(faker.definitions.name.last_name) + if (typeof faker.locales[faker.locale].name.male_last_name !== "undefined" && typeof faker.locales[faker.locale].name.female_last_name !== "undefined") { + // 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 + // see above comment of firstName method + var rand = faker.random.number(1); + if (rand === 0) { + return faker.random.array_element(faker.locales[faker.locale].name.male_last_name); + } else { + return faker.random.array_element(faker.locales[faker.locale].name.female_last_name); + } + } + return faker.random.array_element(faker.definitions.name.last_name); }, findName: function (firstName, lastName) { |
