aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMarak <[email protected]>2014-10-21 13:38:30 +0200
committerMarak <[email protected]>2014-10-21 13:38:30 +0200
commit1388457499e02eb5e2571f6c68a4d6f86df99ed0 (patch)
tree7264587d9ef7d42ec02aba46fa1aed7c9919124c /lib
parent0295361e6812a4d2fb67145ace216ec3fd72e183 (diff)
downloadfaker-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.js25
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) {