Compare commits

..

2 Commits

Author SHA1 Message Date
Ricky Yim b5418139bf removed files 2014-04-27 10:19:59 +10:00
Ricky Yim abefd736ee adding settings.xml 2014-04-27 10:19:25 +10:00
369 changed files with 16 additions and 59313 deletions
+1 -2
View File
@@ -4,5 +4,4 @@ target
.settings
.idea/
*.iml
.java-version
/dependency-reduced-pom.xml
.java-version
+6 -6
View File
@@ -1,16 +1,16 @@
language: java
dist: trusty
jdk:
- oraclejdk7
- oraclejdk8
- openjdk7
- openjdk10
- oraclejdk11
script: "mvn verify failsafe:integration-test failsafe:verify"
- openjdk6
branches:
except:
- travis
- travis
notifications:
email: false
after_success:
- mvn clean cobertura:cobertura coveralls:cobertura
env:
global:
secure: BN4ubmSkpNY/nzaZO3zGiVK+9xhX/O5pWqFk7llUGaAmDw1dNiTrVWMdzaGxmAJa+v1US5vdwLx8ZQMlO6crp3T1VGOwEM2J5vFDPtyMsKM1hC6yKYnJhlfskNznJBhWJZKaLd6FgbxaW08C0BedocD9uVnsPKHiOHn2FXUm8Hs=
-13
View File
@@ -1,13 +0,0 @@
Copyright 2014 DiUS Computing
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-181
View File
@@ -1,181 +0,0 @@
Java Faker
==========
[![Maven Status](https://maven-badges.herokuapp.com/maven-central/com.github.javafaker/javafaker/badge.svg?style=flat)](http://mvnrepository.com/artifact/com.github.javafaker/javafaker)
[![Build Status](https://travis-ci.org/DiUS/java-faker.svg?branch=master)](https://travis-ci.org/DiUS/java-faker)
[![Coverage Status](https://coveralls.io/repos/DiUS/java-faker/badge.svg)](https://coveralls.io/r/DiUS/java-faker)
[![License](http://img.shields.io/:license-apache-brightgreen.svg)](http://www.apache.org/licenses/LICENSE-2.0.html)
This library is a port of Ruby's [faker](https://github.com/stympy/faker) gem (as well as Perl's Data::Faker library) that generates fake data.
It's useful when you're developing a new project and need some pretty data for showcase.
Usage
-----
In pom.xml, add the following xml stanza between `<dependencies> ... </dependencies>`
```xml
<dependency>
<groupId>com.github.javafaker</groupId>
<artifactId>javafaker</artifactId>
<version>0.17.2</version>
</dependency>
```
For gradle users, add the following to your build.gradle file.
```groovy
dependencies {
implementation 'com.github.javafaker:javafaker:0.17.2'
}
```
In your Java code
```java
Faker faker = new Faker();
String name = faker.name().fullName(); // Miss Samanta Schmidt
String firstName = faker.name().firstName(); // Emory
String lastName = faker.name().lastName(); // Barton
String streetAddress = faker.address().streetAddress(); // 60018 Sawayn Brooks Suite 449
```
Javadoc
-----
http://dius.github.io/java-faker/apidocs/index.html
Fakers
-----
* Ancient
* Address
* App
* Artist
* Avatar
* Beer
* Book
* Bool
* Business
* ChuckNorris
* Cat
* Code
* Color
* Commerce
* Company
* Crypto
* DateAndTime
* Demographic
* Dog
* DragonBall
* Educator
* Esports
* File
* Finance
* Food
* Friends
* FunnyName
* GameOfThrones
* Hacker
* HarryPotter
* Hipster
* HitchhikersGuideToTheGalaxy
* Hobbit
* HowIMetYourMother
* IdNumber
* Internet
* Job
* LeagueOfLegends
* Lebowski
* LordOfTheRings
* Lorem
* Matz
* Music
* Name
* Number
* Options
* Overwatch
* PhoneNumber
* Pokemon
* RickAndMorty
* Robin
* RockBand
* Shakespeare
* SlackEmoji
* Space
* StarTrek
* Stock
* Superhero
* Team
* TwinPeaks
* University
* Weather
* Witcher
* Yoda
* Zelda
Usage with Locales
-----
```java
Faker faker = new Faker(new Locale("YOUR_LOCALE"));
```
Supported Locales
-----
* bg
* ca
* ca-CAT
* da-DK
* de
* de-AT
* de-CH
* en
* en-AU
* en-au-ocker
* en-BORK
* en-CA
* en-GB
* en-IND
* en-MS
* en-NEP
* en-NG
* en-NZ
* en-PAK
* en-SG
* en-UG
* en-US
* en-ZA
* es
* es-MX
* fa
* fi-FI
* fr
* he
* in-ID
* it
* ja
* ko
* nb-NO
* nl
* pl
* pt
* pt-BR
* ru
* sk
* sv
* sv-SE
* tr
* uk
* vi
* zh-CN
* zh-TW
TODO
----
- Port more classes over as there are more entries in the yml file that we don't have classes for
LICENSE
-------
Copyright (c) 2018 DiUS Computing Pty Ltd. See the LICENSE file for license rights and limitations.
-151
View File
@@ -1,151 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.github.javafaker</groupId>
<artifactId>javafaker</artifactId>
<packaging>jar</packaging>
<version>0.17.3-SNAPSHOT</version>
<name>Java Faker</name>
<description>
This library is a port of Ruby's stympy/faker gem (as well as Perl's Data::Faker library) that generates fake data.
It's useful when you're developing a new project and need some pretty data for showcase.
</description>
<url>http://github.com/DiUS/java-faker</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<connection>scm:git:git://github.com/DiUS/java-faker.git</connection>
<developerConnection>scm:git:git@github.com:DiUS/java-faker.git</developerConnection>
<url>git://github.com/DiUS/java-faker.git</url>
</scm>
<developers>
<developer>
<id>renshao</id>
<name>Ren Shao</name>
<email>renshao@gmail.com</email>
</developer>
<developer>
<id>codingricky</id>
<name>Ricky Yim</name>
</developer>
</developers>
<parent>
<groupId>org.sonatype.oss</groupId>
<artifactId>oss-parent</artifactId>
<version>7</version>
</parent>
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.5</version>
</dependency>
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>1.23</version>
<classifier>android</classifier>
</dependency>
<dependency>
<groupId>com.github.mifmif</groupId>
<artifactId>generex</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.25</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-library</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.9.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>2.23.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
<version>1.6</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.eluder.coveralls</groupId>
<artifactId>coveralls-maven-plugin</artifactId>
<version>4.3.0</version>
<configuration>
<repoToken>${env.COVERALLS_TOKEN}</repoToken>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.7</version>
<configuration>
<format>xml</format>
<maxmem>256m</maxmem>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>failsafe-maven-plugin</artifactId>
<version>2.4.3-alpha-1</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
+9
View File
@@ -0,0 +1,9 @@
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>sonatype-nexus-snapshots</id>
<username>${env.CI_DEPLOY_USERNAME}</username>
<password>${env.CI_DEPLOY_PASSWORD}</password>
</server>
</servers>
</settings>
@@ -1,113 +0,0 @@
package com.github.javafaker;
public class Address {
private final Faker faker;
protected Address(Faker faker) {
this.faker = faker;
}
public String streetName() {
return faker.fakeValuesService().resolve("address.street_name", this, faker);
}
public String streetAddressNumber() {
return String.valueOf(faker.random().nextInt(1000));
}
public String streetAddress() {
return faker.fakeValuesService().resolve("address.street_address", this, faker);
}
public String streetAddress(boolean includeSecondary) {
String streetAddress = faker.fakeValuesService().resolve("address.street_address", this, faker);
if (includeSecondary) {
streetAddress = streetAddress + " " + secondaryAddress();
}
return streetAddress;
}
public String secondaryAddress() {
return faker.numerify(faker.fakeValuesService().resolve("address.secondary_address", this,faker));
}
public String zipCode() {
return faker.bothify(faker.fakeValuesService().resolve("address.postcode", this,faker));
}
public String zipCodeByState(String stateAbbr) {
return faker.fakeValuesService().resolve("address.postcode_by_state." + stateAbbr, this, faker);
}
public String countyByZipCode(String postCode) {
return faker.fakeValuesService().resolve("address.county_by_postcode." + postCode, this, faker);
}
public String streetSuffix() {
return faker.fakeValuesService().resolve("address.street_suffix", this, faker);
}
public String streetPrefix() {
return faker.fakeValuesService().resolve("address.street_prefix", this, faker);
}
public String citySuffix() {
return faker.fakeValuesService().resolve("address.city_suffix", this, faker);
}
public String cityPrefix() {
return faker.fakeValuesService().resolve("address.city_prefix", this, faker);
}
public String city() {
return faker.fakeValuesService().resolve("address.city", this, faker);
}
public String cityName() {
return faker.fakeValuesService().resolve("address.city_name", this, faker);
}
public String state() {
return faker.fakeValuesService().resolve("address.state", this, faker);
}
public String stateAbbr() {
return faker.fakeValuesService().resolve("address.state_abbr", this, faker);
}
public String firstName() {
return faker.name().firstName();
}
public String lastName() {
return faker.name().lastName();
}
public String latitude() {
return String.format("%.8g", (faker.random().nextDouble() * 180) - 90);
}
public String longitude() {
return String.format("%.8g", (faker.random().nextDouble() * 360) - 180);
}
public String timeZone() {
return faker.fakeValuesService().resolve("address.time_zone", this, faker);
}
public String country() {
return faker.fakeValuesService().resolve("address.country", this, faker);
}
public String countryCode() {
return faker.fakeValuesService().resolve("address.country_code", this, faker);
}
public String buildingNumber() {
return faker.numerify(faker.fakeValuesService().resolve("address.building_number", this, faker));
}
public String fullAddress() {
return faker.fakeValuesService().resolve("address.full_address", this, faker);
}
}
@@ -1,26 +0,0 @@
package com.github.javafaker;
public class Ancient {
private final Faker faker;
protected Ancient(Faker faker) {
this.faker = faker;
}
public String god() {
return faker.resolve("ancient.god");
}
public String primordial() {
return faker.resolve("ancient.primordial");
}
public String titan() {
return faker.resolve("ancient.titan");
}
public String hero() {
return faker.resolve("ancient.hero");
}
}
@@ -1,21 +0,0 @@
package com.github.javafaker;
public class App {
private final Faker faker;
protected App(Faker faker) {
this.faker = faker;
}
public String name() {
return faker.fakeValuesService().resolve("app.name", this, faker);
}
public String version() {
return faker.numerify(faker.fakeValuesService().resolve("app.version", this, faker));
}
public String author() {
return faker.fakeValuesService().resolve("app.author", this, faker);
}
}
@@ -1,14 +0,0 @@
package com.github.javafaker;
public class Artist {
private final Faker faker;
protected Artist(Faker faker) {
this.faker = faker;
}
public String name() {
return faker.fakeValuesService().fetchString("artist.names");
}
}
@@ -1,15 +0,0 @@
package com.github.javafaker;
public class Avatar {
private final Faker faker;
private final String baseUrl;
protected Avatar(Faker faker) {
this.faker = faker;
this.baseUrl = "https://s3.amazonaws.com/uifaces/faces/twitter/";
}
public String image() {
return baseUrl + faker.fakeValuesService().resolve("internet.avatar", this, faker);
}
}
@@ -1,29 +0,0 @@
package com.github.javafaker;
public class Beer {
private final Faker faker;
protected Beer(Faker faker) {
this.faker = faker;
}
public String name() {
return faker.fakeValuesService().resolve("beer.name", this, faker);
}
public String style() {
return faker.fakeValuesService().resolve("beer.style", this, faker);
}
public String hop() {
return faker.fakeValuesService().resolve("beer.hop", this, faker);
}
public String yeast() {
return faker.fakeValuesService().resolve("beer.yeast", this, faker);
}
public String malt() {
return faker.fakeValuesService().resolve("beer.malt", this, faker);
}
}
@@ -1,25 +0,0 @@
package com.github.javafaker;
public class Book {
private final Faker faker;
protected Book(Faker faker) {
this.faker = faker;
}
public String author() {
return faker.fakeValuesService().resolve("book.author", this, faker);
}
public String title() {
return faker.fakeValuesService().resolve("book.title", this, faker);
}
public String publisher() {
return faker.fakeValuesService().resolve("book.publisher", this, faker);
}
public String genre() {
return faker.fakeValuesService().resolve("book.genre", this, faker);
}
}
@@ -1,13 +0,0 @@
package com.github.javafaker;
public class Bool {
private final Faker faker;
protected Bool(Faker faker) {
this.faker = faker;
}
public boolean bool() {
return faker.random().nextBoolean();
}
}
@@ -1,22 +0,0 @@
package com.github.javafaker;
public class Business {
private final Faker faker;
protected Business(Faker faker) {
this.faker = faker;
}
public String creditCardNumber() {
return faker.fakeValuesService().resolve("business.credit_card_numbers", this, faker);
}
public String creditCardType() {
return faker.fakeValuesService().resolve("business.credit_card_types", this, faker);
}
public String creditCardExpiry() {
return faker.fakeValuesService().resolve("business.credit_card_expiry_dates", this, faker);
}
}
@@ -1,22 +0,0 @@
package com.github.javafaker;
public class Cat {
private final Faker faker;
protected Cat(Faker faker) {
this.faker = faker;
}
public String name() {
return faker.fakeValuesService().resolve("creature.cat.name", this, faker);
}
public String breed() {
return faker.fakeValuesService().resolve("creature.cat.breed", this, faker);
}
public String registry() {
return faker.fakeValuesService().resolve("creature.cat.registry", this, faker);
}
}
@@ -1,13 +0,0 @@
package com.github.javafaker;
public class ChuckNorris {
private final Faker faker;
protected ChuckNorris(Faker faker) {
this.faker = faker;
}
public String fact() {
return faker.fakeValuesService().resolve("chuck_norris.fact", this, faker);
}
}
@@ -1,230 +0,0 @@
package com.github.javafaker;
import org.apache.commons.lang3.ArrayUtils;
import static org.apache.commons.lang3.math.NumberUtils.toInt;
/**
* ISBN Rules : https://en.wikipedia.org/wiki/International_Standard_Book_Number
*/
public class Code {
private final Faker faker;
protected Code(Faker faker) {
this.faker = faker;
}
/**
* This can be overridden by specifying
* <code>
* code:
* isbn_gs1: "some expression"
* </code>
* in the appropriate yml file.
* @return a GS1 code for an ISBN13, currently is only 978 and 979
*/
public String isbnGs1() {
return faker.regexify("978|979");
}
/**
* This can be overridden by specifying
* <code>
* code:
* isbn_group: "some expression"
* </code>
* in the appropriate yml file.
* @return an ISBN group number
*/
public String isbnGroup() {
return faker.regexify("[0-1]");
}
/**
* This can be overridden by specifying
* <code>
* code:
* isbn_registrant: "some expression"
* </code>
* in the appropriate yml file.
* @return an ISBN registrant 'element' with separator
*/
public String isbnRegistrant() {
int ct = faker.random().nextInt(6) + 1;
switch (ct) {
case 6:
return faker.number().numberBetween(0,1) + faker.number().digit() + "-" + faker.number().digits(6);
case 5:
return faker.number().numberBetween(200,699) + "-" + faker.number().digits(5);
case 4:
return faker.number().numberBetween(7000,8499) + "-" + faker.number().digits(4);
case 3:
return faker.number().numberBetween(85000,89999) + "-" + faker.number().digits(3);
case 2:
return faker.number().numberBetween(900000,949999) + "-" + faker.number().digits(2);
case 1:
return faker.number().numberBetween(9500000,9999999) + "-" + faker.number().digits(1);
default:
throw new IllegalStateException("Invalid random " + ct);
}
}
/**
* @return a valid ISBN10 number with no separators (ex. 9604250590)
*/
public String isbn10() {
return isbn10(false);
}
/**
* @param separator true if you want separators returned, false otherwise
* @return a valid ISBN10 number with or without separators (ex. 9604250590, 960-425-059-0)
*/
public String isbn10(boolean separator) {
// The registration group identifier is a 1- to 5-digit number
final StringBuilder isbn10 = new StringBuilder()
.append(faker.expression("#{code.isbn_group}"))
.append('-')
.append(faker.expression("#{code.isbn_registrant}"))
.append('-');
final int checkDigit = isbn10CheckDigit(isbn10);
isbn10.append(checkDigit != 10 ? checkDigit : "X");
return separator ? isbn10.toString() : stripIsbnSeparator(isbn10);
}
/**
* @return a valid ISBN13 number with no separators (ex. 9789604250590)
*/
public String isbn13() {
return isbn13(false);
}
/**
* @param separator true if you want separators returned, false otherwise
* @return a valid ISBN13 number with or without separators (ex. 9789604250590, 978-960-425-059-0)
*/
public String isbn13(boolean separator) {
// The registration group identifier is a 1- to 5-digit number
final StringBuilder isbn13 = new StringBuilder()
.append(faker.expression("#{code.isbn_gs1}"))
.append('-')
.append(faker.expression("#{code.isbn_group}"))
.append('-')
.append(faker.expression("#{code.isbn_registrant}"))
.append('-');
final int checkDigit = isbn13CheckDigit(isbn13);
isbn13.append(checkDigit);
return separator ? isbn13.toString() : stripIsbnSeparator(isbn13);
}
private final int isbn10CheckDigit(CharSequence t) {
String value = stripIsbnSeparator(t);
int sum = 0;
for (int i = 0; i < value.length(); i++) {
sum += ((i + 1) * toInt(value.substring(i, i + 1)));
}
return sum % 11;
}
private final int isbn13CheckDigit(CharSequence t) {
String value = stripIsbnSeparator(t);
int sum = 0;
int multiplier = 0;
for (int i = 0; i < value.length(); i++) {
multiplier = i % 2 == 0 ? 1 : 3;
sum += multiplier * toInt(value.subSequence(i, i + 1).toString());
}
return (10 - sum % 10) % 10;
}
private final String stripIsbnSeparator(CharSequence t) {
return t.toString().replaceAll("-","");
}
public String asin() {
return faker.resolve("code.asin");
}
public String imei() {
char[] str = new char[15];
int len = str.length;
// Fill in the first two values of the string based with the specified prefix.
String arr = faker.options().option(REPORTING_BODY_IDENTIFIERS);
str[0] = arr.charAt(0);
str[1] = arr.charAt(1);
// Fill all the remaining numbers except for the last one with random values.
for (int i=2; i < len - 1; i++) {
str[i] = Character.forDigit(faker.number().numberBetween(0, 9), 10);
}
// Calculate the Luhn checksum of the values thus far
int lenOffset = (len + 1) % 2;
int t = 0;
int sum = 0;
for (int i = 0; i < len - 1; i++) {
if ((i + lenOffset) % 2 != 0) {
t = Character.getNumericValue(str[i]) * 2;
if (t > 9) {
t -= 9;
}
sum += t;
} else {
sum += Character.getNumericValue(str[i]);
}
}
// Choose the last digit so that it causes the entire string to pass the checksum.
str[len - 1] = Character.forDigit(((10 - (sum % 10)) % 10), 10);
return new String(str);
}
private static final String [] REPORTING_BODY_IDENTIFIERS
= {"01", "10", "30", "33", "35", "44", "45", "49", "50", "51", "52", "53", "54", "86", "91", "98", "99"};
public String ean8() {
return gtin8();
}
public String gtin8() {
char[] values = faker.regexify("\\d{7}").toCharArray();
int sum = 0;
for (int i = 0; i < values.length; i++) {
sum += Character.getNumericValue(values[i]) * GTIN_8_CHECK_DIGITS[i];
}
int checkDigit = 10 - sum % 10;
if (checkDigit == 10) {
return new String(ArrayUtils.add(values, Character.forDigit(0, 10)));
} else {
return new String(ArrayUtils.add(values, Character.forDigit(checkDigit, 10)));
}
}
public String ean13() {
return gtin13();
}
public String gtin13() {
char[] values = faker.regexify("\\d{12}").toCharArray();
int sum = 0;
for (int i = 0; i < values.length; i++) {
sum += Character.getNumericValue(values[i]) * GTIN_13_CHECK_DIGITS[i];
}
int checkDigit = 10 - sum % 10;
if (checkDigit == 10) {
return new String(ArrayUtils.add(values, Character.forDigit(0, 10)));
} else {
return new String(ArrayUtils.add(values, Character.forDigit(checkDigit, 10)));
}
}
private static final int[] GTIN_8_CHECK_DIGITS = { 3, 1, 3, 1, 3, 1, 3 };
private static final int[] GTIN_13_CHECK_DIGITS = { 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3 };
}
@@ -1,13 +0,0 @@
package com.github.javafaker;
public class Color {
private final Faker faker;
protected Color(Faker faker) {
this.faker = faker;
}
public String name() {
return faker.fakeValuesService().resolve("color.name", this, faker);
}
}
@@ -1,66 +0,0 @@
package com.github.javafaker;
import org.apache.commons.lang3.StringUtils;
import java.text.DecimalFormat;
import java.util.SortedSet;
import java.util.TreeSet;
public class Commerce {
private final Faker faker;
protected Commerce(Faker faker) {
this.faker = faker;
}
public String color() {
return faker.fakeValuesService().resolve("color.name", this, faker);
}
public String department() {
int numberOfDepartments = Math.max(faker.random().nextInt(4), 1);
SortedSet<String> departments = new TreeSet<String>();
while (departments.size() < numberOfDepartments) {
departments.add(faker.fakeValuesService().resolve("commerce.department", this, faker));
}
if (departments.size() > 1) {
String lastDepartment = departments.last();
return StringUtils.join(departments.headSet(lastDepartment), ", ") + " & " + lastDepartment;
} else {
return departments.first();
}
}
public String productName() {
return StringUtils.join(new String[] {
faker.fakeValuesService().resolve("commerce.product_name.adjective", this,faker),
faker.fakeValuesService().resolve("commerce.product_name.material", this, faker),
faker.fakeValuesService().resolve("commerce.product_name.product", this, faker) }, " ");
}
public String material() {
return faker.fakeValuesService().resolve("commerce.product_name.material", this, faker);
}
/**
* Generate a random price between 0.00 and 100.00
*/
public String price() {
return price(0, 100);
}
public String price(double min, double max) {
double price = min + (faker.random().nextDouble() * (max - min));
return new DecimalFormat("#0.00").format(price);
}
public String promotionCode() {
return promotionCode(6);
}
public String promotionCode(int digits) {
return StringUtils.join(faker.resolve("commerce.promotion_code.adjective"),
faker.resolve("commerce.promotion_code.noun"),
faker.number().digits(digits));
}
}
@@ -1,96 +0,0 @@
package com.github.javafaker;
import com.github.javafaker.service.FakerIDN;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.List;
import static org.apache.commons.lang3.StringUtils.join;
public class Company {
private final Faker faker;
protected Company(Faker faker) {
this.faker = faker;
}
public String name() {
return faker.fakeValuesService().resolve("company.name", this, faker);
}
public String suffix() {
return faker.fakeValuesService().resolve("company.suffix", this, faker);
}
public String industry() {
return faker.fakeValuesService().resolve("company.industry", this, faker);
}
public String profession() {
return faker.fakeValuesService().resolve("company.profession", this, faker);
}
public String buzzword() {
@SuppressWarnings("unchecked")
List<List<String>> buzzwordLists = (List<List<String>>) faker.fakeValuesService().fetchObject("company.buzzwords");
List<String> buzzwords = new ArrayList<String>();
for (List<String> buzzwordList : buzzwordLists) {
buzzwords.addAll(buzzwordList);
}
return buzzwords.get(faker.random().nextInt(buzzwords.size()));
}
/**
* Generate a buzzword-laden catch phrase.
*/
public String catchPhrase() {
@SuppressWarnings("unchecked")
List<List<String>> catchPhraseLists = (List<List<String>>) faker.fakeValuesService().fetchObject("company.buzzwords");
return joinSampleOfEachList(catchPhraseLists, " ");
}
/**
* When a straight answer won't do, BS to the rescue!
*/
public String bs() {
@SuppressWarnings("unchecked")
List<List<String>> buzzwordLists = (List<List<String>>) faker.fakeValuesService().fetchObject("company.bs");
return joinSampleOfEachList(buzzwordLists, " ");
}
/**
* Generate a random company logo url in PNG format.
*/
public String logo() {
int number = faker.random().nextInt(13) + 1;
return "https://pigment.github.io/fake-logos/logos/medium/color/" + number + ".png";
}
public String url() {
return join(new Object[]{
"www",
".",
FakerIDN.toASCII(domainName()),
".",
domainSuffix()
});
}
private String domainName(){
return StringUtils.deleteWhitespace(name().toLowerCase().replaceAll(",", "").replaceAll("'", ""));
}
private String domainSuffix() {
return faker.fakeValuesService().resolve("internet.domain_suffix", this, faker);
}
private String joinSampleOfEachList(List<List<String>> listOfLists, String separator) {
List<String> words = new ArrayList<String>();
for (List<String> list : listOfLists) {
words.add(list.get(faker.random().nextInt(list.size())));
}
return join(words, separator);
}
}
@@ -1,36 +0,0 @@
package com.github.javafaker;
public class Country {
private final Faker faker;
private final String flagUrl;
protected Country(Faker faker) {
this.faker = faker;
this.flagUrl = "http://flags.fmcdn.net/data/flags/w580/";
}
public String flag() {
return flagUrl + faker.fakeValuesService().resolve("country.code2", this, faker) + ".png";
}
public String countryCode2() {
return faker.fakeValuesService().resolve("country.code2", this, faker);
}
public String countryCode3() {
return faker.fakeValuesService().resolve("country.code3", this, faker);
}
public String capital() {
return faker.fakeValuesService().resolve("country.capital", this, faker);
}
public String currency() {
return faker.fakeValuesService().resolve("country.currency", this, faker);
}
public String currencyCode() {
return faker.fakeValuesService().resolve("country.currency_code", this, faker);
}
}
@@ -1,15 +0,0 @@
package com.github.javafaker;
public enum CreditCardType {
VISA,
MASTERCARD,
DISCOVER,
AMERICAN_EXPRESS,
DINERS_CLUB,
JCB,
SWITCH,
SOLO,
DANKORT,
FORBRUGSFORENINGEN,
LASER
}
@@ -1,41 +0,0 @@
package com.github.javafaker;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class Crypto {
private final Faker faker;
protected Crypto(Faker faker) {
this.faker = faker;
}
public String md5() {
return generateString("MD5");
}
public String sha1() {
return generateString("SHA-1");
}
public String sha256() {
return generateString("SHA-256");
}
public String sha512() {
return generateString("SHA-512");
}
private String generateString(String algorithm) {
try {
MessageDigest messageDigest = MessageDigest.getInstance(algorithm);
String characters = faker.lorem().characters();
messageDigest.update(characters.getBytes(), 0, characters.length());
return new BigInteger(1, messageDigest.digest()).toString(16);
} catch (NoSuchAlgorithmException noSuchAlgorithmException) {
throw new RuntimeException(noSuchAlgorithmException);
}
}
}
@@ -1,18 +0,0 @@
package com.github.javafaker;
public class Currency {
private final Faker faker;
public Currency(Faker faker) {
this.faker = faker;
}
public String name() {
return faker.fakeValuesService().resolve("currency.name", this, faker);
}
public String code() {
return faker.fakeValuesService().resolve("currency.code", this, faker);
}
}
@@ -1,179 +0,0 @@
/**
*
*/
package com.github.javafaker;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.concurrent.TimeUnit;
/**
* A generator of random dates.
*
* @author pmiklos
*
*/
public class DateAndTime {
private static final int DEFAULT_MIN_AGE = 18;
private static final int DEFAULT_MAX_AGE = 65;
private final Faker faker;
protected DateAndTime(Faker faker) {
this.faker = faker;
}
/**
* Generates a future date from now. Note that there is a 1 second slack to avoid generating a past date.
*
* @param atMost
* at most this amount of time ahead from now exclusive.
* @param unit
* the time unit.
* @return a future date from now.
*/
public Date future(int atMost, TimeUnit unit) {
Date now = new Date();
Date aBitLaterThanNow = new Date(now.getTime() + 1000);
return future(atMost, unit, aBitLaterThanNow);
}
/**
* Generates a future date from now, with a minimum time.
*
* @param atMost
* at most this amount of time ahead from now exclusive.
* @param minimum
* the minimum amount of time in the future from now.
* @param unit
* the time unit.
* @return a future date from now.
*/
public Date future(int atMost, int minimum, TimeUnit unit) {
Date now = new Date();
Date minimumDate = new Date(now.getTime() + unit.toMillis(minimum));
return future(atMost - minimum, unit, minimumDate);
}
/**
* Generates a future date relative to the {@code referenceDate}.
*
* @param atMost
* at most this amount of time ahead to the {@code referenceDate} exclusive.
* @param unit
* the time unit.
* @param referenceDate
* the future date relative to this date.
* @return a future date relative to {@code referenceDate}.
*/
public Date future(int atMost, TimeUnit unit, Date referenceDate) {
long upperBound = unit.toMillis(atMost);
long futureMillis = referenceDate.getTime();
futureMillis += 1 + faker.random().nextLong(upperBound - 1);
return new Date(futureMillis);
}
/**
* Generates a past date from now. Note that there is a 1 second slack added.
*
* @param atMost
* at most this amount of time earlier from now exclusive.
* @param unit
* the time unit.
* @return a past date from now.
*/
public Date past(int atMost, TimeUnit unit) {
Date now = new Date();
Date aBitEarlierThanNow = new Date(now.getTime() - 1000);
return past(atMost, unit, aBitEarlierThanNow);
}
/**
* Generates a past date from now, with a minimum time.
*
* @param atMost
* at most this amount of time earlier from now exclusive.
* @param minimum
* the minimum amount of time in the past from now.
* @param unit
* the time unit.
* @return a past date from now.
*/
public Date past(int atMost, int minimum, TimeUnit unit) {
Date now = new Date();
Date minimumDate = new Date(now.getTime() - unit.toMillis(minimum));
return past(atMost - minimum, unit, minimumDate);
}
/**
* Generates a past date relative to the {@code referenceDate}.
*
* @param atMost
* at most this amount of time past to the {@code referenceDate} exclusive.
* @param unit
* the time unit.
* @param referenceDate
* the past date relative to this date.
* @return a past date relative to {@code referenceDate}.
*/
public Date past(int atMost, TimeUnit unit, Date referenceDate) {
long upperBound = unit.toMillis(atMost);
long futureMillis = referenceDate.getTime();
futureMillis -= 1 + faker.random().nextLong(upperBound - 1);
return new Date(futureMillis);
}
/**
* Generates a random date between two dates.
*
* @param from
* the lower bound inclusive
* @param to
* the upper bound exclusive
* @return a random date between {@code from} and {@code to}.
* @throws IllegalArgumentException
* if the {@code to} date represents an earlier date than {@code from} date.
*/
public Date between(Date from, Date to) throws IllegalArgumentException {
if (to.before(from)) {
throw new IllegalArgumentException("Invalid date range, the upper bound date is before the lower bound.");
}
long offsetMillis = faker.random().nextLong(to.getTime() - from.getTime());
return new Date(from.getTime() + offsetMillis);
}
/**
* Generates a random birthday between 65 and 18 years ago.
*
* @return a random birthday between 65 and 18 years ago.
*/
public Date birthday() {
return birthday(DEFAULT_MIN_AGE, DEFAULT_MAX_AGE);
}
/**
* Generates a random birthday between two ages.
*
* @param minAge
* the minimal age
* @param maxAge
* the maximal age
* @return a random birthday between {@code minAge} and {@code maxAge} years ago.
* @throws IllegalArgumentException
* if the {@code maxAge} is lower than {@code minAge}.
*/
public Date birthday(int minAge, int maxAge) {
int currentYear = Calendar.getInstance().get(Calendar.YEAR);
Calendar from = new GregorianCalendar(currentYear - maxAge, 0, 1);
Calendar to = new GregorianCalendar(currentYear - minAge, 11, 31);
return between(from.getTime(), to.getTime());
}
}
@@ -1,30 +0,0 @@
package com.github.javafaker;
public class Demographic {
private final Faker faker;
protected Demographic(Faker faker) {
this.faker = faker;
}
public String race() {
return faker.fakeValuesService().fetchString("demographic.race");
}
public String educationalAttainment() {
return faker.fakeValuesService().fetchString("demographic.educational_attainment");
}
public String demonym() {
return faker.fakeValuesService().fetchString("demographic.demonym");
}
public String sex() {
return faker.fakeValuesService().fetchString("demographic.sex");
}
public String maritalStatus() {
return faker.fakeValuesService().fetchString("demographic.marital_status");
}
}
@@ -1,42 +0,0 @@
package com.github.javafaker;
public class Dog {
private final Faker faker;
protected Dog(Faker faker) {
this.faker = faker;
}
public String name() {
return faker.fakeValuesService().resolve("creature.dog.name", this, faker);
}
public String breed() {
return faker.fakeValuesService().resolve("creature.dog.breed", this, faker);
}
public String sound() {
return faker.fakeValuesService().resolve("creature.dog.sound", this, faker);
}
public String memePhrase() {
return faker.fakeValuesService().resolve("creature.dog.meme_phrase", this, faker);
}
public String age() {
return faker.fakeValuesService().resolve("creature.dog.age", this, faker);
}
public String coatLength() {
return faker.fakeValuesService().resolve("creature.dog.coat_length", this, faker);
}
public String gender() {
return faker.fakeValuesService().resolve("creature.dog.gender", this, faker);
}
public String size() {
return faker.fakeValuesService().resolve("creature.dog.size", this, faker);
}
}
@@ -1,13 +0,0 @@
package com.github.javafaker;
public class DragonBall {
private final Faker faker;
protected DragonBall(Faker faker) {
this.faker = faker;
}
public String character() {
return faker.fakeValuesService().resolve("dragon_ball.characters", this, faker);
}
}
@@ -1,33 +0,0 @@
package com.github.javafaker;
public class Educator {
private final Faker faker;
protected Educator(Faker faker) {
this.faker = faker;
}
// TODO - move these all out to en.yml by default.
public String university() {
return faker.fakeValuesService().resolve("educator.name", this, faker)
+ " "
+ faker.fakeValuesService().resolve("educator.tertiary.type", this, faker);
}
public String course() {
return faker.fakeValuesService().resolve("educator.tertiary.degree.type", this, faker)
+ " "
+ faker.fakeValuesService().resolve("educator.tertiary.degree.subject", this, faker);
}
public String secondarySchool() {
return faker.fakeValuesService().resolve("educator.name", this, faker)
+ " "
+ faker.fakeValuesService().resolve("educator.secondary", this, faker);
}
public String campus() {
return faker.fakeValuesService().resolve("educator.name", this, faker) + " Campus";
}
}
@@ -1,29 +0,0 @@
package com.github.javafaker;
public class Esports {
private final Faker faker;
protected Esports(final Faker faker) {
this.faker = faker;
}
public String player() {
return faker.resolve("esport.players");
}
public String team() {
return faker.resolve("esport.teams");
}
public String event() {
return faker.resolve("esport.events");
}
public String league() {
return faker.resolve("esport.leagues");
}
public String game() {
return faker.resolve("esport.games");
}
}
@@ -1,583 +0,0 @@
package com.github.javafaker;
import com.github.javafaker.service.FakeValuesService;
import com.github.javafaker.service.RandomService;
import java.util.Locale;
import java.util.Random;
/**
* Provides utility methods for generating fake strings, such as names, phone
* numbers, addresses. generate random strings with given patterns
*
* @author ren
*/
public class Faker {
private final RandomService randomService;
private final FakeValuesService fakeValuesService;
private final Ancient ancient;
private final App app;
private final Artist artist;
private final Avatar avatar;
private final Lorem lorem;
private final Music music;
private final Name name;
private final Number number;
private final Internet internet;
private final PhoneNumber phoneNumber;
private final Pokemon pokemon;
private final Address address;
private final Business business;
private final Book book;
private final ChuckNorris chuckNorris;
private final Color color;
private final Commerce commerce;
private final Country country;
private final Currency currency;
private final Company company;
private final Crypto crypto;
private final IdNumber idNumber;
private final Hacker hacker;
private final Options options;
private final Code code;
private final Finance finance;
private final Food food;
private final GameOfThrones gameOfThrones;
private final DateAndTime dateAndTime;
private final Demographic demographic;
private final Dog dog;
private final Educator educator;
private final Shakespeare shakespeare;
private final SlackEmoji slackEmoji;
private final Space space;
private final Superhero superhero;
private final Bool bool;
private final Team team;
private final Beer beer;
private final University university;
private final Cat cat;
private final File file;
private final Stock stock;
private final LordOfTheRings lordOfTheRings;
private final Zelda zelda;
private final HarryPotter harryPotter;
private final RockBand rockBand;
private final Esports esports;
private final Friends friends;
private final Hipster hipster;
private final Job job;
private final TwinPeaks twinPeaks;
private final RickAndMorty rickAndMorty;
private final Yoda yoda;
private final Matz matz;
private final Witcher witcher;
private final DragonBall dragonBall;
private final FunnyName funnyName;
private final HitchhikersGuideToTheGalaxy hitchhikersGuideToTheGalaxy;
private final Hobbit hobbit;
private final HowIMetYourMother howIMetYourMother;
private final LeagueOfLegends leagueOfLegends;
private final Overwatch overwatch;
private final Robin robin;
private final StarTrek starTrek;
private final Weather weather;
private final Lebowski lebowski;
private final Medical medical;
public Faker() {
this(Locale.ENGLISH);
}
public Faker(Locale locale) {
this(locale, null);
}
public Faker(Random random) {
this(Locale.ENGLISH, random);
}
public Faker(Locale locale, Random random) {
this.randomService = new RandomService(random);
this.fakeValuesService = new FakeValuesService(locale, randomService);
this.ancient = new Ancient(this);
this.app = new App(this);
this.artist = new Artist(this);
this.avatar = new Avatar(this);
this.lorem = new Lorem(this);
this.music = new Music(this);
this.name = new Name(this);
this.number = new Number(this);
this.internet = new Internet(this);
this.phoneNumber = new PhoneNumber(this);
this.pokemon = new Pokemon(this);
this.address = new Address(this);
this.book = new Book(this);
this.business = new Business(this);
this.chuckNorris = new ChuckNorris(this);
this.color = new Color(this);
this.idNumber = new IdNumber(this);
this.hacker = new Hacker(this);
this.company = new Company(this);
this.crypto = new Crypto(this);
this.commerce = new Commerce(this);
this.currency = new Currency(this);
this.options = new Options(this);
this.code = new Code(this);
this.file = new File(this);
this.finance = new Finance(this);
this.food = new Food(this);
this.gameOfThrones = new GameOfThrones(this);
this.dateAndTime = new DateAndTime(this);
this.demographic = new Demographic(this);
this.dog = new Dog(this);
this.educator = new Educator(this);
this.shakespeare = new Shakespeare(this);
this.slackEmoji = new SlackEmoji(this);
this.space = new Space(this);
this.superhero = new Superhero(this);
this.team = new Team(this);
this.bool = new Bool(this);
this.beer = new Beer(this);
this.university = new University(this);
this.cat = new Cat(this);
this.stock = new Stock(this);
this.lordOfTheRings = new LordOfTheRings(this);
this.zelda = new Zelda(this);
this.harryPotter = new HarryPotter(this);
this.rockBand = new RockBand(this);
this.esports = new Esports(this);
this.friends = new Friends(this);
this.hipster = new Hipster(this);
this.job = new Job(this);
this.twinPeaks = new TwinPeaks(this);
this.rickAndMorty = new RickAndMorty(this);
this.yoda = new Yoda(this);
this.matz = new Matz(this);
this.witcher = new Witcher(this);
this.dragonBall = new DragonBall(this);
this.funnyName = new FunnyName(this);
this.hitchhikersGuideToTheGalaxy = new HitchhikersGuideToTheGalaxy(this);
this.hobbit = new Hobbit(this);
this.howIMetYourMother = new HowIMetYourMother(this);
this.leagueOfLegends = new LeagueOfLegends(this);
this.overwatch = new Overwatch(this);
this.robin = new Robin(this);
this.starTrek = new StarTrek(this);
this.weather = new Weather(this);
this.lebowski = new Lebowski(this);
this.medical = new Medical(this);
this.country = new Country(this);
}
/**
* Constructs Faker instance with default argument.
*
* @return {@link Faker#Faker()}
*/
public static Faker instance() {
return new Faker();
}
/**
* Constructs Faker instance with provided {@link Locale}.
*
* @param locale - {@link Locale}
* @return {@link Faker#Faker(Locale)}
*/
public static Faker instance(Locale locale) {
return new Faker(locale);
}
/**
* Constructs Faker instance with provided {@link Random}.
*
* @param random - {@link Random}
* @return {@link Faker#Faker(Random)}
*/
public static Faker instance(Random random) {
return new Faker(random);
}
/**
* Constructs Faker instance with provided {@link Locale} and {@link Random}.
*
* @param locale - {@link Locale}
* @param random - {@link Random}
* @return {@link Faker#Faker(Locale, Random)}
*/
public static Faker instance(Locale locale, Random random) {
return new Faker(locale, random);
}
/**
* Returns a string with the '#' characters in the parameter replaced with random digits between 0-9 inclusive.
* <p>
* For example, the string "ABC##EFG" could be replaced with a string like "ABC99EFG".
*
* @param numberString
* @return
*/
public String numerify(String numberString) {
return fakeValuesService.numerify(numberString);
}
/**
* Returns a string with the '?' characters in the parameter replaced with random alphabetic
* characters.
* <p>
* For example, the string "12??34" could be replaced with a string like "12AB34".
*
* @param letterString
* @return
*/
public String letterify(String letterString) {
return fakeValuesService.letterify(letterString);
}
/**
* Returns a string with the '?' characters in the parameter replaced with random alphabetic
* characters.
* <p>
* For example, the string "12??34" could be replaced with a string like "12AB34".
*
* @param letterString
* @param isUpper
* @return
*/
public String letterify(String letterString, boolean isUpper) {
return fakeValuesService.letterify(letterString, isUpper);
}
/**
* Applies both a {@link #numerify(String)} and a {@link #letterify(String)}
* over the incoming string.
*
* @param string
* @return
*/
public String bothify(String string) {
return fakeValuesService.bothify(string);
}
/**
* Applies both a {@link #numerify(String)} and a {@link #letterify(String)}
* over the incoming string.
*
* @param string
* @param isUpper
* @return
*/
public String bothify(String string, boolean isUpper) {
return fakeValuesService.bothify(string, isUpper);
}
/**
* Generates a String that matches the given regular expression.
*/
public String regexify(String regex) {
return fakeValuesService.regexify(regex);
}
public RandomService random() {
return this.randomService;
}
public Currency currency() {
return currency;
}
FakeValuesService fakeValuesService() {
return this.fakeValuesService;
}
public Ancient ancient() {
return ancient;
}
public App app() {
return app;
}
public Artist artist() {
return artist;
}
public Avatar avatar() {
return avatar;
}
public Music music() {
return music;
}
public Name name() {
return name;
}
public Number number() {
return number;
}
public Internet internet() {
return internet;
}
public PhoneNumber phoneNumber() {
return phoneNumber;
}
public Pokemon pokemon() {
return pokemon;
}
public Lorem lorem() {
return lorem;
}
public Address address() {
return address;
}
public Book book() {
return book;
}
public Business business() {
return business;
}
public ChuckNorris chuckNorris() {
return chuckNorris;
}
public Color color() {
return color;
}
public Commerce commerce() {
return commerce;
}
public Company company() {
return company;
}
public Crypto crypto() {
return crypto;
}
public Hacker hacker() {
return hacker;
}
public IdNumber idNumber() {
return idNumber;
}
public Options options() {
return options;
}
public Code code() {
return code;
}
public File file() {
return file;
}
public Finance finance() {
return finance;
}
public Food food() {
return food;
}
public GameOfThrones gameOfThrones() {
return gameOfThrones;
}
public DateAndTime date() {
return dateAndTime;
}
public Demographic demographic() {
return demographic;
}
public Dog dog() {
return dog;
}
public Educator educator() {
return educator;
}
public SlackEmoji slackEmoji() {
return slackEmoji;
}
public Shakespeare shakespeare() {
return shakespeare;
}
public Space space() {
return space;
}
public Superhero superhero() {
return superhero;
}
public Bool bool() {
return bool;
}
public Team team() {
return team;
}
public Beer beer() {
return beer;
}
public University university() {
return university;
}
public Cat cat() {
return cat;
}
public Stock stock() {
return stock;
}
public LordOfTheRings lordOfTheRings() {
return lordOfTheRings;
}
public Zelda zelda() {
return zelda;
}
public HarryPotter harryPotter() {
return harryPotter;
}
public RockBand rockBand() {
return rockBand;
}
public Esports esports() {
return esports;
}
public Friends friends() {
return friends;
}
public Hipster hipster() {
return hipster;
}
public Job job() {
return job;
}
public TwinPeaks twinPeaks() {
return twinPeaks;
}
public RickAndMorty rickAndMorty() {
return rickAndMorty;
}
public Yoda yoda() {
return yoda;
}
public Matz matz() {
return matz;
}
public Witcher witcher() {
return witcher;
}
public DragonBall dragonBall() {
return dragonBall;
}
public FunnyName funnyName() {
return funnyName;
}
public HitchhikersGuideToTheGalaxy hitchhikersGuideToTheGalaxy() {
return hitchhikersGuideToTheGalaxy;
}
public Hobbit hobbit() {
return hobbit;
}
public HowIMetYourMother howIMetYourMother() {
return howIMetYourMother;
}
public LeagueOfLegends leagueOfLegends() {
return leagueOfLegends;
}
public Overwatch overwatch() {
return overwatch;
}
public Robin robin() {
return robin;
}
public StarTrek starTrek() {
return starTrek;
}
public Weather weather() {
return weather;
}
public Lebowski lebowski() {
return lebowski;
}
public Medical medical(){return medical;}
public Country country(){ return country;}
public String resolve(String key) {
return this.fakeValuesService.resolve(key, this, this);
}
/**
* Allows the evaluation of native YML expressions to allow you to build your own.
* <p>
* The following are valid expressions:
* <ul>
* <li>#{regexify '(a|b){2,3}'}</li>
* <li>#{regexify '\\.\\*\\?\\+'}</li>
* <li>#{bothify '????','false'}</li>
* <li>#{Name.first_name} #{Name.first_name} #{Name.last_name}</li>
* <li>#{number.number_between '1','10'}</li>
* </ul>
*
* @param expression (see examples above)
* @return the evaluated string expression
* @throws RuntimeException if unable to evaluate the expression
*/
public String expression(String expression) {
return this.fakeValuesService.expression(expression, this);
}
}
@@ -1,29 +0,0 @@
package com.github.javafaker;
public class File {
private final Faker faker;
protected File(Faker faker) {
this.faker = faker;
}
public String extension() {
return faker.resolve("file.extension");
}
public String mimeType() {
return faker.resolve("file.mime_type");
}
public String fileName() {
return fileName(null, null, null, null);
}
public String fileName(String dirOrNull, String nameOrNull, String extensionOrNull, String separatorOrNull) {
final String sep = separatorOrNull == null ? System.getProperty("file.separator") : separatorOrNull;
final String dir = dirOrNull == null ? faker.internet().slug() : dirOrNull;
final String name = nameOrNull == null ? faker.lorem().word().toLowerCase() : nameOrNull;
final String ext = extensionOrNull == null ? extension() : extensionOrNull;
return new StringBuilder(dir).append(sep).append(name).append(".").append(ext).toString();
}
}
@@ -1,173 +0,0 @@
package com.github.javafaker;
import org.apache.commons.lang3.StringUtils;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Finance {
private final Faker faker;
protected Finance(Faker faker) {
this.faker = faker;
}
private static final Map<String, String> countryCodeToBasicBankAccountNumberPattern =
createCountryCodeToBasicBankAccountNumberPatternMap();
public String creditCard(CreditCardType creditCardType) {
final String key = String.format("finance.credit_card.%s", creditCardType.toString().toLowerCase());
String value = faker.fakeValuesService().resolve(key, this, faker);
final String template = faker.numerify(value);
String[] split = template.replaceAll("[^0-9]", "").split("");
List<Integer> reversedAsInt = new ArrayList<Integer>();
for (int i = 0; i < split.length; i++) {
final String current = split[split.length - 1 - i];
if (!current.isEmpty()) {
reversedAsInt.add(Integer.valueOf(current));
}
}
int luhnSum = 0;
int multiplier = 1;
for (Integer digit : reversedAsInt) {
multiplier = (multiplier == 2 ? 1 : 2);
luhnSum += sum(String.valueOf(digit * multiplier).split(""));
}
int luhnDigit = (10 - (luhnSum % 10)) % 10;
return template.replace('\\', ' ').replace('/', ' ').trim().replace('L', String.valueOf(luhnDigit).charAt(0));
}
public String creditCard() {
CreditCardType type = randomCreditCardType();
return creditCard(type);
}
/**
* Generates a random Business Identifier Code
*/
public String bic() {
return faker.regexify("([A-Z]){4}([A-Z]){2}([0-9A-Z]){2}([0-9A-Z]{3})?");
}
public String iban() {
List<String> countryCodes = new ArrayList<String>(countryCodeToBasicBankAccountNumberPattern.keySet());
String randomCountryCode = countryCodes.get(faker.random().nextInt(countryCodes.size()));
return iban(randomCountryCode);
}
public String iban(String countryCode) {
String basicBankAccountNumber = faker.regexify(countryCodeToBasicBankAccountNumberPattern.get(countryCode));
String checkSum = calculateIbanChecksum(countryCode, basicBankAccountNumber);
return countryCode + checkSum + basicBankAccountNumber;
}
private CreditCardType randomCreditCardType() {
return CreditCardType.values()[this.faker.random().nextInt(CreditCardType.values().length)];
}
private static int sum(String[] string) {
int sum = 0;
for (String s : string) {
if (!s.isEmpty()) {
sum += Integer.valueOf(s);
}
}
return sum;
}
private static String calculateIbanChecksum(String countryCode, String basicBankAccountNumber) {
String basis = basicBankAccountNumber + countryCode + "00";
StringBuilder sb = new StringBuilder();
char[] characters = basis.toLowerCase().toCharArray();
for (char c : characters) {
if (Character.isLetter(c)) {
sb.append(String.valueOf((c - 'a') + 10));
} else {
sb.append(c);
}
}
int mod97 = new BigInteger(sb.toString()).mod(BigInteger.valueOf(97L)).intValue();
return StringUtils.leftPad(String.valueOf(98 - mod97), 2, '0');
}
private static Map<String, String> createCountryCodeToBasicBankAccountNumberPatternMap() {
// source: https://www.swift.com/standards/data-standards/iban
Map<String, String> ibanFormats = new HashMap<String, String>();
ibanFormats.put("AL", "\\d{8}[0-9A-Za-z]{16}");
ibanFormats.put("AD", "\\d{4}\\d{4}[0-9A-Za-z]{12}");
ibanFormats.put("AT", "\\d{5}\\d{11}");
ibanFormats.put("AZ", "[A-Z]{4}[0-9A-Za-z]{20}");
ibanFormats.put("BH", "[A-Z]{4}[0-9A-Za-z]{14}");
ibanFormats.put("BE", "\\d{3}\\d{7}\\d{2}");
ibanFormats.put("BA", "\\d{3}\\d{3}\\d{8}\\d{2}");
ibanFormats.put("BR", "\\d{8}\\d{5}\\d{10}[A-Z]{1}[0-9A-Za-z]{1}");
ibanFormats.put("BG", "[A-Z]{4}\\d{4}\\d{2}[0-9A-Za-z]{8}");
ibanFormats.put("CR", "\\d{3}\\d{14}");
ibanFormats.put("HR", "\\d{7}\\d{10}");
ibanFormats.put("CY", "\\d{3}\\d{5}[0-9A-Za-z]{16}");
ibanFormats.put("DK", "\\d{4}\\d{9}\\d{1}");
ibanFormats.put("DO", "[0-9A-Za-z]{4}\\d{20}");
ibanFormats.put("EE", "\\d{2}\\d{2}\\d{11}\\d{1}");
ibanFormats.put("FI", "\\d{6}\\d{7}\\d{1}");
ibanFormats.put("FR", "\\d{5}\\d{5}[0-9A-Za-z]{11}\\d{2}");
ibanFormats.put("GE", "[A-Z]{2}\\d{16}");
ibanFormats.put("DE", "\\d{8}\\d{10}");
ibanFormats.put("GI", "[A-Z]{4}[0-9A-Za-z]{15}");
ibanFormats.put("GR", "\\d{3}\\d{4}[0-9A-Za-z]{16}");
ibanFormats.put("GT", "[0-9A-Za-z]{4}[0-9A-Za-z]{20}");
ibanFormats.put("HU", "\\d{3}\\d{4}\\d{1}\\d{15}\\d{1}");
ibanFormats.put("IS", "\\d{4}\\d{2}\\d{6}\\d{10}");
ibanFormats.put("IE", "[A-Z]{4}\\d{6}\\d{8}");
ibanFormats.put("IL", "\\d{3}\\d{3}\\d{13}");
ibanFormats.put("IT", "[A-Z]{1}\\d{5}\\d{5}[0-9A-Za-z]{12}");
ibanFormats.put("JO", "[A-Z]{4}\\d{4}[0-9A-Za-z]{18}");
ibanFormats.put("KZ", "\\d{3}[0-9A-Za-z]{13}");
ibanFormats.put("XK", "\\d{4}\\d{10}\\d{2}");
ibanFormats.put("KW", "[A-Z]{4}[0-9A-Za-z]{22}");
ibanFormats.put("LV", "[A-Z]{4}[0-9A-Za-z]{13}");
ibanFormats.put("LB", "\\d{4}[0-9A-Za-z]{20}");
ibanFormats.put("LI", "\\d{5}[0-9A-Za-z]{12}");
ibanFormats.put("LT", "\\d{5}\\d{11}");
ibanFormats.put("LU", "\\d{3}[0-9A-Za-z]{13}");
ibanFormats.put("MK", "\\d{3}[0-9A-Za-z]{10}\\d{2}");
ibanFormats.put("MT", "[A-Z]{4}\\d{5}[0-9A-Za-z]{18}");
ibanFormats.put("MR", "\\d{5}\\d{5}\\d{11}\\d{2}");
ibanFormats.put("MU", "[A-Z]{4}\\d{2}\\d{2}\\d{12}\\d{3}[A-Z]{3}");
ibanFormats.put("MD", "[0-9A-Za-z]{2}[0-9A-Za-z]{18}");
ibanFormats.put("MC", "\\d{5}\\d{5}[0-9A-Za-z]{11}\\d{2}");
ibanFormats.put("ME", "\\d{3}\\d{13}\\d{2}");
ibanFormats.put("NL", "[A-Z]{4}\\d{10}");
ibanFormats.put("NO", "\\d{4}\\d{6}\\d{1}");
ibanFormats.put("PK", "[A-Z]{4}[0-9A-Za-z]{16}");
ibanFormats.put("PS", "[A-Z]{4}[0-9A-Za-z]{21}");
ibanFormats.put("PL", "\\d{8}\\d{16}");
ibanFormats.put("PT", "\\d{4}\\d{4}\\d{11}\\d{2}");
ibanFormats.put("QA", "[A-Z]{4}[0-9A-Za-z]{21}");
ibanFormats.put("RO", "[A-Z]{4}[0-9A-Za-z]{16}");
ibanFormats.put("LC", "[A-Z]{4}[0-9A-Za-z]{24}");
ibanFormats.put("SM", "[A-Z]{1}\\d{5}\\d{5}[0-9A-Za-z]{12}");
ibanFormats.put("ST", "\\d{8}\\d{11}\\d{2}");
ibanFormats.put("SA", "\\d{2}[0-9A-Za-z]{18}");
ibanFormats.put("RS", "\\d{3}\\d{13}\\d{2}");
ibanFormats.put("SK", "\\d{4}\\d{6}\\d{10}");
ibanFormats.put("SI", "\\d{5}\\d{8}\\d{2}");
ibanFormats.put("ES", "\\d{4}\\d{4}\\d{1}\\d{1}\\d{10}");
ibanFormats.put("SE", "\\d{3}\\d{16}\\d{1}");
ibanFormats.put("CH", "\\d{5}[0-9A-Za-z]{12}");
ibanFormats.put("TL", "\\d{3}\\d{14}\\d{2}");
ibanFormats.put("TN", "\\d{2}\\d{3}\\d{13}\\d{2}");
ibanFormats.put("TR", "\\d{5}\\d{1}[0-9A-Za-z]{16}");
ibanFormats.put("UA", "\\d{6}[0-9A-Za-z]{19}");
ibanFormats.put("AE", "\\d{3}\\d{16}");
ibanFormats.put("GB", "[A-Z]{4}\\d{6}\\d{8}");
ibanFormats.put("VG", "[A-Z]{4}\\d{16}");
return ibanFormats;
}
}
@@ -1,23 +0,0 @@
package com.github.javafaker;
public class Food {
private final Faker faker;
protected Food(Faker faker) {
this.faker = faker;
}
public String ingredient() {
return faker.fakeValuesService().resolve("food.ingredients", this, faker);
}
public String spice() {
return faker.fakeValuesService().resolve("food.spices", this, faker);
}
public String measurement() {
return faker.fakeValuesService().resolve("food.measurement_sizes", this, faker) +
" " + faker.fakeValuesService().resolve("food.measurements", this, faker);
}
}
@@ -1,21 +0,0 @@
package com.github.javafaker;
public class Friends {
private final Faker faker;
protected Friends(Faker faker) {
this.faker = faker;
}
public String character() {
return faker.resolve("friends.characters");
}
public String location() {
return faker.resolve("friends.locations");
}
public String quote() {
return faker.resolve("friends.quotes");
}
}
@@ -1,13 +0,0 @@
package com.github.javafaker;
public class FunnyName {
private final Faker faker;
protected FunnyName(Faker faker) {
this.faker = faker;
}
public String name() {
return faker.fakeValuesService().resolve("funny_name.name", this, faker);
}
}
@@ -1,30 +0,0 @@
package com.github.javafaker;
public class GameOfThrones {
private final Faker faker;
protected GameOfThrones(Faker faker) {
this.faker = faker;
}
public String character() {
return faker.resolve("game_of_thrones.characters");
}
public String house() {
return faker.resolve("game_of_thrones.houses");
}
public String city() {
return faker.resolve("game_of_thrones.cities");
}
public String dragon() {
return faker.resolve("game_of_thrones.dragons");
}
public String quote() {
return faker.resolve("game_of_thrones.quotes");
}
}
@@ -1,29 +0,0 @@
package com.github.javafaker;
public class Hacker {
private final Faker faker;
protected Hacker(Faker faker) {
this.faker = faker;
}
public String abbreviation() {
return faker.fakeValuesService().resolve("hacker.abbreviation", this, faker);
}
public String adjective() {
return faker.fakeValuesService().resolve("hacker.adjective", this, faker);
}
public String noun() {
return faker.fakeValuesService().resolve("hacker.noun", this, faker);
}
public String verb() {
return faker.fakeValuesService().resolve("hacker.verb", this, faker);
}
public String ingverb() {
return faker.fakeValuesService().resolve("hacker.ingverb", this, faker);
}
}
@@ -1,25 +0,0 @@
package com.github.javafaker;
public class HarryPotter {
private final Faker faker;
protected HarryPotter(final Faker faker) {
this.faker = faker;
}
public String character() {
return faker.resolve("harry_potter.characters");
}
public String location() {
return faker.resolve("harry_potter.locations");
}
public String quote() {
return faker.resolve("harry_potter.quotes");
}
public String book() {
return faker.resolve("harry_potter.books");
}
}
@@ -1,13 +0,0 @@
package com.github.javafaker;
public class Hipster {
private final Faker faker;
protected Hipster(final Faker faker) {
this.faker = faker;
}
public String word() {
return faker.resolve("hipster.words");
}
}
@@ -1,37 +0,0 @@
package com.github.javafaker;
public class HitchhikersGuideToTheGalaxy {
private final Faker faker;
protected HitchhikersGuideToTheGalaxy(Faker faker) {
this.faker = faker;
}
public String character() {
return faker.fakeValuesService().resolve("hitchhikers_guide_to_the_galaxy.characters", this, faker);
}
public String location() {
return faker.fakeValuesService().resolve("hitchhikers_guide_to_the_galaxy.locations", this, faker);
}
public String marvinQuote() {
return faker.fakeValuesService().resolve("hitchhikers_guide_to_the_galaxy.marvin_quote", this, faker);
}
public String planet() {
return faker.fakeValuesService().resolve("hitchhikers_guide_to_the_galaxy.planets", this, faker);
}
public String quote() {
return faker.fakeValuesService().resolve("hitchhikers_guide_to_the_galaxy.quotes", this, faker);
}
public String specie() {
return faker.fakeValuesService().resolve("hitchhikers_guide_to_the_galaxy.species", this, faker);
}
public String starship() {
return faker.fakeValuesService().resolve("hitchhikers_guide_to_the_galaxy.starships", this, faker);
}
}
@@ -1,25 +0,0 @@
package com.github.javafaker;
public class Hobbit {
private final Faker faker;
protected Hobbit(Faker faker) {
this.faker = faker;
}
public String character() {
return faker.fakeValuesService().resolve("hobbit.character", this, faker);
}
public String thorinsCompany() {
return faker.fakeValuesService().resolve("hobbit.thorins_company", this, faker);
}
public String quote() {
return faker.fakeValuesService().resolve("hobbit.quote", this, faker);
}
public String location() {
return faker.fakeValuesService().resolve("hobbit.location", this, faker);
}
}
@@ -1,25 +0,0 @@
package com.github.javafaker;
public class HowIMetYourMother {
private final Faker faker;
protected HowIMetYourMother(Faker faker) {
this.faker = faker;
}
public String character() {
return faker.fakeValuesService().resolve("how_i_met_your_mother.character", this, faker);
}
public String catchPhrase() {
return faker.fakeValuesService().resolve("how_i_met_your_mother.catch_phrase", this, faker);
}
public String highFive() {
return faker.fakeValuesService().resolve("how_i_met_your_mother.high_five", this, faker);
}
public String quote() {
return faker.fakeValuesService().resolve("how_i_met_your_mother.quote", this, faker);
}
}
@@ -1,41 +0,0 @@
package com.github.javafaker;
import com.github.javafaker.idnumbers.EnIdNumber;
import com.github.javafaker.idnumbers.SvSEIdNumber;
public class IdNumber {
private final Faker faker;
protected IdNumber(Faker faker) {
this.faker = faker;
}
public String valid() {
return faker.fakeValuesService().resolve("id_number.valid", this, faker);
}
public String invalid() {
return faker.numerify(faker.fakeValuesService().resolve("id_number.invalid", this, faker));
}
public String ssnValid() {
EnIdNumber enIdNumber = new EnIdNumber();
return enIdNumber.getValidSsn(faker);
}
/**
* Specified as #{IDNumber.valid_sv_se_ssn} in sv-SE.yml
*/
public String validSvSeSsn() {
SvSEIdNumber svSEIdNumber = new SvSEIdNumber();
return svSEIdNumber.getValidSsn(faker);
}
/**
* Specified as #{IDNumber.invalid_sv_se_ssn} in sv-SE.yml
*/
public String invalidSvSeSsn() {
SvSEIdNumber svSEIdNumber = new SvSEIdNumber();
return svSEIdNumber.getInvalidSsn(faker);
}
}
@@ -1,343 +0,0 @@
package com.github.javafaker;
import com.github.javafaker.service.FakerIDN;
import com.github.javafaker.service.RandomService;
import org.apache.commons.lang3.StringUtils;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import static org.apache.commons.lang3.StringUtils.join;
import static org.apache.commons.lang3.StringUtils.stripAccents;
public class Internet {
private final Faker faker;
protected Internet(Faker faker) {
this.faker = faker;
}
public String emailAddress() {
return emailAddress(faker.name().username());
}
public String emailAddress(String localPart) {
return emailAddress(localPart, FakerIDN.toASCII(faker.fakeValuesService().resolve("internet.free_email", this, faker)));
}
public String safeEmailAddress() {
return safeEmailAddress(faker.name().username());
}
public String safeEmailAddress(String localPart) {
return emailAddress(localPart, FakerIDN.toASCII(faker.fakeValuesService().resolve("internet.safe_email", this, faker)));
}
private String emailAddress(String localPart, String domain) {
return join(stripAccents(localPart), "@", domain);
}
public String domainName() {
return domainWord() + "." + domainSuffix();
}
public String domainWord() {
return FakerIDN.toASCII(faker.name().lastName().toLowerCase().replaceAll("'", ""));
}
public String domainSuffix() {
return faker.fakeValuesService().resolve("internet.domain_suffix", this, faker);
}
public String url() {
return join(new Object[]{
"www",
".",
FakerIDN.toASCII(
faker.name().firstName().toLowerCase().replaceAll("'", "") +
"-" +
domainWord()
),
".",
domainSuffix()
});
}
/**
* Generates a random avatar url based on a collection of profile pictures of real people. All this avatar have been
* authorized by its awesome users to be used on live websites (not just mockups). For more information, please
* visit: http://uifaces.com/authorized
*
* @return an url to a random avatar image.
* @see <a href="http://uifaces.com/authorized">Authorized UI Faces</a>
*/
public String avatar() {
return "https://s3.amazonaws.com/uifaces/faces/twitter/" + faker.fakeValuesService().resolve("internet.avatar", this, faker);
}
/**
* Generates a random image url based on the lorempixel service. All the images provided by this service are released
* under the creative commons license (CC BY-SA). For more information, please visit: http://lorempixel.com/
*
* @return an url to a random image.
* @see <a href="http://lorempixel.com/">lorempixel - Placeholder Images for every case</a>
*/
public String image() {
String[] dimension = StringUtils.split(faker.fakeValuesService().resolve("internet.image_dimension", this, faker), 'x');
if (dimension.length == 0) return "";
return image(
Integer.valueOf(StringUtils.trim(dimension[0])), Integer.valueOf(StringUtils.trim(dimension[1])),
faker.bool().bool(), null);
}
/**
* Same as image() but allows client code to choose a few image characteristics
*
* @param width the image width
* @param height the image height
* @param gray true for gray image and false for color image
* @param text optional custom text on the selected picture
* @return an url to a random image with the given characteristics.
*/
public String image(Integer width, Integer height, Boolean gray, String text) {
return String.format("http://lorempixel.com/%s%s/%s/%s/%s",
gray ? "g/" : StringUtils.EMPTY, width, height, faker.fakeValuesService().resolve("internet.image_category", this, faker),
StringUtils.isEmpty(text) ? StringUtils.EMPTY : text);
}
public String password() {
return password(8, 16);
}
public String password(int minimumLength, int maximumLength) {
return password(minimumLength, maximumLength, false);
}
public String password(int minimumLength, int maximumLength, boolean includeUppercase) {
return password(minimumLength, maximumLength, includeUppercase, false);
}
public String password(int minimumLength, int maximumLength, boolean includeUppercase, boolean includeSpecial) {
if (includeSpecial) {
char[] password = faker.lorem().characters(minimumLength, maximumLength, includeUppercase).toCharArray();
char[] special = new char[]{'!', '@', '#', '$', '%', '^', '&', '*'};
for (int i = 0; i < faker.random().nextInt(minimumLength); i++) {
password[faker.random().nextInt(password.length)] = special[faker.random().nextInt(special.length)];
}
return new String(password);
} else {
return faker.lorem().characters(minimumLength, maximumLength, includeUppercase);
}
}
/**
* <p>Returns a MAC address in the following format: 6-bytes in MM:MM:MM:SS:SS:SS format.</p>
* @return a correctly formatted MAC address
* @param prefix a prefix to put on the front of the address
*/
public String macAddress(String prefix) {
final String tmp = (prefix == null) ? "" : prefix;
final int prefixLength = tmp.trim().length() == 0
? 0
: tmp.split(":").length;
final StringBuilder out = new StringBuilder(tmp);
for (int i=0;i < 6 - prefixLength;i++) {
if (out.length() > 0) {
out.append(':');
}
out.append(Integer.toHexString(faker.random().nextInt(16)));
out.append(Integer.toHexString(faker.random().nextInt(16)));
}
return out.toString();
}
/**
* @see Internet#macAddress(String)
*/
public String macAddress() {
return macAddress("");
}
/**
* returns an IPv4 address in dot separated octets.
* @return a correctly formatted IPv4 address.
*/
public String ipV4Address() {
return String.format("%d.%d.%d.%d",
faker.random().nextInt(254) + 2,
faker.random().nextInt(254) + 2,
faker.random().nextInt(254) + 2,
faker.random().nextInt(254) + 2);
}
/**
* @return a valid private IPV4 address in dot notation
*/
public String privateIpV4Address() {
final Integer[] PRIVATE_FIRST_OCTET = {10,127,169,192,172};
final Integer[] PRIVATE_SECOND_OCTET_172 = {16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31};
final RandomService r = faker.random();
int first = random(PRIVATE_FIRST_OCTET),
second = r.nextInt(256),
third = r.nextInt(256),
fourth = r.nextInt(256);
switch (first) {
case 172:
second = random(PRIVATE_SECOND_OCTET_172);
break;
case 192:
second = 168;
break;
case 169:
second = 254;
break;
}
return String.format("%d.%d.%d.%d", first, second, third, fourth);
}
/**
* @return a valid public IPV4 address in dot notation
*/
public String publicIpV4Address() {
final RandomService r = faker.random();
final int[] PRIVATE_FIRST_OCTET = {10,127,169,192,172};
int first = r.nextInt(256),
second = r.nextInt(256),
third = r.nextInt(256),
fourth = r.nextInt(256);
while (Arrays.binarySearch(PRIVATE_FIRST_OCTET, first) > 0) {
first = r.nextInt(256);
}
return String.format("%d.%d.%d.%d", first, second, third, fourth);
}
/**
* @return a valid IPV4 CIDR
*/
public String ipV4Cidr() {
return new StringBuilder(ipV4Address())
.append('/')
.append(faker.random().nextInt(31) + 1)
.toString();
}
/**
* <p>Returns an IPv6 address in hh:hh:hh:hh:hh:hh:hh:hh format.</p>
* @return a correctly formatted IPv6 address.
*/
public String ipV6Address() {
final StringBuilder tmp = new StringBuilder();
for (int i=0;i < 8;i++) {
if (i > 0) {
tmp.append(":");
}
tmp.append(Integer.toHexString(faker.random().nextInt(16)));
tmp.append(Integer.toHexString(faker.random().nextInt(16)));
tmp.append(Integer.toHexString(faker.random().nextInt(16)));
tmp.append(Integer.toHexString(faker.random().nextInt(16)));
}
return tmp.toString();
}
/**
* @return a valid IPV6 CIDR
*/
public String ipV6Cidr() {
return new StringBuilder(ipV6Address())
.append('/')
.append(faker.random().nextInt(127) + 1)
.toString();
}
/**
* @return a slug using '_' as the word separator and two {@link Lorem} words as the values
*/
public String slug() {
return slug(faker.lorem().words(2), "_");
}
/**
* @param wordsOrNull if null, then 2 {@link Lorem} words
* @param glueOrNull if null, "_"
* @return a slug string combining wordsOrNull with glueOrNull (ex. x_y)
*/
public String slug(List<String> wordsOrNull, String glueOrNull) {
final String glue = glueOrNull == null
? "_"
: glueOrNull;
final List<String> words = wordsOrNull == null
? faker.lorem().words(2)
: wordsOrNull;
final StringBuilder slug = new StringBuilder();
for (int i = 0; i < words.size(); i++) {
if (i > 0) {
slug.append(glue);
}
slug.append(words.get(i));
}
return slug.toString();
}
/**
* Returns a UUID (type 4) as String.
* @return A UUID as String.
*/
public String uuid() {
return UUID.randomUUID().toString();
}
private <T> T random(T[] src) {
return src[faker.random().nextInt(src.length)];
}
public String userAgent(UserAgent userAgent) {
UserAgent agent = userAgent;
if(agent == null) {
agent = UserAgent.any();
}
String userAgentKey = "internet.user_agent." + agent.toString();
return faker.fakeValuesService().resolve(userAgentKey, this, faker);
}
public String userAgentAny() {
return userAgent(null);
}
public enum UserAgent {
AOL("aol"),
CHROME("chrome"),
FIREFOX("firefox"),
INTERNET_EXPLORER("internet_explorer"),
NETSCAPE("netscape"),
OPERA("opera"),
SAFARI("safari");
//Browser's name in corresponding yaml (internet.yml) file.
private String browserName;
UserAgent(String browserName) {
this.browserName = browserName;
}
private static UserAgent any() {
UserAgent[] agents = UserAgent.values();
int randomIndex = (int)(Math.random() * agents.length);
return agents[randomIndex];
}
@Override
public String toString() {
return browserName;
}
}
}
@@ -1,30 +0,0 @@
package com.github.javafaker;
public class Job {
private final Faker faker;
public Job(final Faker faker) {
this.faker = faker;
}
public String field() {
return faker.fakeValuesService().resolve("job.field", this, faker);
}
public String seniority() {
return faker.fakeValuesService().resolve("job.seniority", this, faker);
}
public String position() {
return faker.fakeValuesService().resolve("job.position", this, faker);
}
public String keySkills() {
return faker.fakeValuesService().resolve("job.key_skills", this, faker);
}
public String title() {
return faker.fakeValuesService().resolve("job.title", this, faker);
}
}
@@ -1,33 +0,0 @@
package com.github.javafaker;
public class LeagueOfLegends {
private final Faker faker;
protected LeagueOfLegends(Faker faker) {
this.faker = faker;
}
public String champion() {
return faker.fakeValuesService().resolve("games.league_of_legends.champion", this, faker);
}
public String location() {
return faker.fakeValuesService().resolve("games.league_of_legends.location", this, faker);
}
public String quote() {
return faker.fakeValuesService().resolve("games.league_of_legends.quote", this, faker);
}
public String summonerSpell() {
return faker.fakeValuesService().resolve("games.league_of_legends.summoner_spell", this, faker);
}
public String masteries() {
return faker.fakeValuesService().resolve("games.league_of_legends.masteries", this, faker);
}
public String rank() {
return faker.fakeValuesService().resolve("games.league_of_legends.rank", this, faker);
}
}
@@ -1,21 +0,0 @@
package com.github.javafaker;
public class Lebowski {
private final Faker faker;
public Lebowski(final Faker faker) {
this.faker = faker;
}
public String actor() {
return faker.fakeValuesService().resolve("lebowski.actors", this, faker);
}
public String character() {
return faker.fakeValuesService().resolve("lebowski.characters", this, faker);
}
public String quote() {
return faker.fakeValuesService().resolve("lebowski.quotes", this, faker);
}
}
@@ -1,17 +0,0 @@
package com.github.javafaker;
public class LordOfTheRings {
private final Faker faker;
protected LordOfTheRings(final Faker faker) {
this.faker = faker;
}
public String character() {
return faker.resolve("lord_of_the_rings.characters");
}
public String location() {
return faker.resolve("lord_of_the_rings.locations");
}
}
@@ -1,159 +0,0 @@
package com.github.javafaker;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.List;
import static org.apache.commons.lang3.StringUtils.capitalize;
import static org.apache.commons.lang3.StringUtils.join;
public class Lorem {
private final Faker faker;
protected Lorem(Faker faker) {
this.faker = faker;
}
public char character() {
return character(false);
}
public char character(boolean includeUppercase) {
return characters(1).charAt(0);
}
public String characters() {
return characters(255, false);
}
public String characters(boolean includeUppercase) {
return characters(255, false);
}
public String characters(int minimumLength, int maximumLength) {
return characters(faker.random().nextInt(maximumLength - minimumLength) + minimumLength, false);
}
public String characters(int minimumLength, int maximumLength, boolean includeUppercase) {
return characters(faker.random().nextInt(maximumLength - minimumLength) + minimumLength, includeUppercase);
}
public String characters(int fixedNumberOfCharacters) {
return characters(fixedNumberOfCharacters, false);
}
public String characters(int fixedNumberOfCharacters, boolean includeUppercase) {
if (fixedNumberOfCharacters < 1) {
return "";
}
char[] buffer = new char[fixedNumberOfCharacters];
for (int i = 0; i < buffer.length; i++) {
char randomCharacter = characters[faker.random().nextInt(characters.length)];
if (includeUppercase && faker.bool().bool()) {
randomCharacter = Character.toUpperCase(randomCharacter);
}
buffer[i] = randomCharacter;
}
return new String(buffer);
}
public List<String> words(int num) {
List<String> returnList = new ArrayList<String>();
for (int i = 0; i < num; i++) {
returnList.add(word());
}
return returnList;
}
public List<String> words() {
return words(3);
}
public String word() {
return faker.fakeValuesService().resolve("lorem.words", this, faker);
}
/**
* Create a sentence with a random number of words within the range 4..10.
* @return a random sentence
*/
public String sentence() {
return sentence(3);
}
/**
* Create a sentence with a random number of words within the range (wordCount+1)..(wordCount+6).
* @param wordCount
* @return a random sentence
*/
public String sentence(int wordCount) {
return sentence(wordCount, 6);
}
/**
* Create a sentence with a random number of words within the range (wordCount+1)..(wordCount+randomWordsToAdd).</p>
*
* Set {@code randomWordsToAdd} to 0 to generate sentences with a fixed number of words.
* @param wordCount
* @param randomWordsToAdd
* @return a random sentence
*/
public String sentence(int wordCount, int randomWordsToAdd) {
int numberOfWordsToAdd = randomWordsToAdd == 0 ? 0 : faker.random().nextInt(randomWordsToAdd);
return capitalize(join(words(wordCount + numberOfWordsToAdd), " ") + ".");
}
public List<String> sentences(int sentenceCount) {
List<String> sentences = new ArrayList<String>(sentenceCount);
for (int i = 0; i < sentenceCount; i++) {
sentences.add(sentence());
}
return sentences;
}
public String paragraph(int sentenceCount) {
return join(sentences(sentenceCount + faker.random().nextInt(3)), " ");
}
public String paragraph() {
return paragraph(3);
}
public List<String> paragraphs(int paragraphCount) {
List<String> paragraphs = new ArrayList<String>(paragraphCount);
for (int i = 0; i < paragraphCount; i++) {
paragraphs.add(paragraph());
}
return paragraphs;
}
/**
* Create a string with a fixed size. Can be useful for testing
* validator based on length string for example
*
* @param numberOfLetters size of the expected String
* @return a string with a fixed size
*/
public String fixedString(int numberOfLetters) {
StringBuilder builder = new StringBuilder();
while (builder.length() < numberOfLetters) {
builder.append(sentence());
}
return StringUtils.substring(builder.toString(), 0, numberOfLetters);
}
static {
StringBuilder builder = new StringBuilder(36);
for (char number = '0'; number <= '9'; number++) {
builder.append(number);
}
for (char character = 'a'; character <= 'z'; character++) {
builder.append(character);
}
characters = builder.toString().toCharArray();
}
private static final char[] characters;
}
@@ -1,13 +0,0 @@
package com.github.javafaker;
public class Matz {
private final Faker faker;
protected Matz(final Faker faker) {
this.faker = faker;
}
public String quote() {
return faker.resolve("matz.quotes");
}
}
@@ -1,26 +0,0 @@
package com.github.javafaker;
public class Medical {
private final Faker faker;
protected Medical(Faker faker) {
this.faker = faker;
}
public String medicineName() {
return faker.fakeValuesService().resolve("medical.medicine_name", this, faker);
}
public String diseaseName() {
return faker.fakeValuesService().resolve("medical.disease_name", this, faker);
}
public String hospitalName() {
return faker.fakeValuesService().resolve("medical.hospital_name", this, faker);
}
public String symptoms() {
return faker.fakeValuesService().resolve("medical.symptoms", this, faker);
}
}
@@ -1,30 +0,0 @@
package com.github.javafaker;
public class Music {
private static final String[] KEYS = new String[] { "C", "D", "E", "F", "G", "A", "B" };
private static final String[] KEY_VARIANTS = new String[] { "b", "#", "" };
private static final String[] CHORD_TYPES = new String[] { "", "maj", "6", "maj7", "m", "m7", "-7", "7", "dom7", "dim", "dim7", "m7b5"};
private final Faker faker;
protected Music(Faker faker) {
this.faker = faker;
}
public String instrument() {
return faker.resolve("music.instruments");
}
public String key() {
return faker.options().option(KEYS) + faker.options().option(KEY_VARIANTS);
}
public String chord() {
return key() + faker.options().option(CHORD_TYPES);
}
public String genre() {
return faker.resolve("music.genres");
}
}
@@ -1,132 +0,0 @@
package com.github.javafaker;
import org.apache.commons.lang3.StringUtils;
public class Name {
private final Faker faker;
/**
* Internal constructor, not to be used by clients. Instances of {@link Name} should be accessed via
* {@link Faker#name()}.
*/
protected Name(Faker faker) {
this.faker = faker;
}
/**
* <p>
* A multipart name composed of an optional prefix, a firstname and a lastname
* or other possible variances based on locale. Examples:
* <ul>
* <li>James Jones Jr.</li>
* <li>Julie Johnson</li>
* </ul>
* </p>
* @return a random name with given and family names and an optional suffix.
*/
public String name() {
return faker.fakeValuesService().resolve("name.name", this, faker);
}
/**
* <p>
* A multipart name composed of an optional prefix, a given and family name,
* another 'firstname' for the middle name and an optional suffix such as Jr.
* Examples:
* <ul>
* <li>Mrs. Ella Geraldine Fitzgerald</li>
* <li>Jason Tom Sawyer Jr.</li>
* <li>Helen Jessica Troy</li>
* </ul>
* </p>
* @return a random name with a middle name component with optional prefix and suffix
*/
public String nameWithMiddle() {
return faker.fakeValuesService().resolve("name.name_with_middle", this, faker);
}
/**
* <p>Returns the same value as {@link #name()}</p>
* @see Name#name()
*/
public String fullName() {
return name();
}
/**
* <p>Returns a random 'given' name such as Aaliyah, Aaron, Abagail or Abbey</p>
* @return a 'given' name such as Aaliyah, Aaron, Abagail or Abbey
*/
public String firstName() {
return faker.fakeValuesService().resolve("name.first_name", this, faker);
}
/**
* <p>Returns a random last name such as Smith, Jones or Baldwin</p>
* @return a random last name such as Smith, Jones or Baldwin
*/
public String lastName() {
return faker.fakeValuesService().resolve("name.last_name", this, faker);
}
/**
* <p>Returns a name prefix such as Mr., Mrs., Ms., Miss, or Dr.</p>
* @return a name prefix such as Mr., Mrs., Ms., Miss, or Dr.
*/
public String prefix() {
return faker.fakeValuesService().resolve("name.prefix", this, faker);
}
/**
* <p>Returns a name suffix such as Jr., Sr., I, II, III, IV, V, MD, DDS, PhD or DVM</p>
* @return a name suffix such as Jr., Sr., I, II, III, IV, V, MD, DDS, PhD or DVM
*/
public String suffix() {
return faker.fakeValuesService().resolve("name.suffix", this, faker);
}
/**
* <p>
* A three part title composed of a descriptor level and job. Some examples are :
* <ul>
* <li>(template) {descriptor} {level} {job}</li>
* <li>Lead Solutions Specialist</li>
* <li>National Marketing Manager</li>
* <li>Central Response Liaison</li>
* </ul>
* </p>
* @return a random three part job title
*/
public String title() {
return StringUtils.join(new String[] {
faker.fakeValuesService().resolve("name.title.descriptor", this, faker),
faker.fakeValuesService().resolve("name.title.level", this, faker),
faker.fakeValuesService().resolve("name.title.job", this, faker) }, " ");
}
/**
* <p>
* A lowercase username composed of the first_name and last_name joined with a '.'. Some examples are:
* <ul>
* <li>(template) {@link #firstName()}.{@link #lastName()}</li>
* <li>jim.jones</li>
* <li>jason.leigh</li>
* <li>tracy.jordan</li>
* </ul>
* </p>
* @return a random two part user name.
* @see Name#firstName()
* @see Name#lastName()
*/
public String username() {
String username = StringUtils.join(new String[]{
firstName().replaceAll("'", "").toLowerCase(),
".",
lastName().replaceAll("'", "").toLowerCase()}
);
return StringUtils.deleteWhitespace(username);
}
}
@@ -1,117 +0,0 @@
package com.github.javafaker;
import java.math.BigDecimal;
public class Number {
private final Faker faker;
protected Number(Faker faker) {
this.faker = faker;
}
/**
* Returns a random number from 0-9 (both inclusive)
*/
public int randomDigit() {
return decimalBetween(0,10).intValue();
}
/**
* Returns a random number from 1-9 (both inclusive)
*/
public int randomDigitNotZero() {
return decimalBetween(1,10).intValue();
}
/**
* @see Number#numberBetween(long, long)
*/
public int numberBetween(int min, int max) {
return decimalBetween(min,max).setScale(0, BigDecimal.ROUND_HALF_DOWN).intValue();
}
/**
* Return a number between <em>min</em> and <em>max</em>. If
* min == max, then min is returned. So numberBetween(2,2) will yield 2 even though
* it doesn't make sense.
*
* @param min inclusive
* @param max exclusive (unless min == max)
*/
public long numberBetween(long min, long max) {
return decimalBetween(min,max).longValue();
}
/**
* @param numberOfDigits the number of digits the generated value should have
* @param strict whether or not the generated value should have exactly <code>numberOfDigits</code>
*/
public long randomNumber(int numberOfDigits, boolean strict) {
long max = (long) Math.pow(10, numberOfDigits);
if (strict) {
long min = (long) Math.pow(10, numberOfDigits - 1);
return faker.random().nextLong(max - min) + min;
}
return faker.random().nextLong(max);
}
/**
* Returns a random number
*/
public long randomNumber() {
int numberOfDigits = decimalBetween(1,10).intValue();
return randomNumber(numberOfDigits, false);
}
public double randomDouble(int maxNumberOfDecimals, int min, int max) {
return randomDouble(maxNumberOfDecimals,(long) min, (long) max);
}
/**
* Returns a random double
*
* @param maxNumberOfDecimals maximum number of places
* @param min minimum value
* @param max maximum value
*/
public double randomDouble(int maxNumberOfDecimals, long min, long max) {
return decimalBetween(min,max)
.setScale(maxNumberOfDecimals, BigDecimal.ROUND_HALF_DOWN)
.doubleValue();
}
/**
* @param min inclusive
* @param max exclusive
* @return
*/
private BigDecimal decimalBetween(long min, long max) {
if (min == max) {
return new BigDecimal(min);
}
final long trueMin = Math.min(min, max);
final long trueMax = Math.max(min, max);
final double range = (double) trueMax - (double) trueMin;
final double chunkCount = Math.sqrt(Math.abs(range));
final double chunkSize = chunkCount;
final long randomChunk = faker.random().nextLong((long) chunkCount);
final double chunkStart = trueMin + randomChunk * chunkSize;
final double adj = chunkSize * faker.random().nextDouble();
return new BigDecimal(chunkStart + adj);
}
public String digits(int count) {
final StringBuilder tmp = new StringBuilder();
for (int i = 0; i < count; i++) {
tmp.append(randomDigit());
}
return tmp.toString();
}
public String digit() {
return digits(1);
}
}
@@ -1,55 +0,0 @@
package com.github.javafaker;
import java.util.List;
public class Options {
private final Faker faker;
protected Options(Faker faker) {
this.faker = faker;
}
/**
* Returns a random element from an varargs.
*
* @param options The varargs to take a random element from.
* @param <E> The type of the elements in the varargs.
* @return A randomly selected element from the varargs.
*/
public <E> E option(E... options) {
return options[faker.random().nextInt(options.length)];
}
/**
* Returns a random element from Enum.
*
* @param enumeration The Enum to take a random element from.
* @return A randomly selected element from the enum.
*/
public <E extends Enum<E>> E option(Class<E> enumeration) {
E[] enumConstants = enumeration.getEnumConstants();
return enumConstants[faker.random().nextInt(enumConstants.length)];
}
/**
* Returns a random element from an array.
*
* @param array The array to take a random element from.
* @param <E> The type of the elements in the array.
* @return A randomly selected element from the array.
*/
public <E> E nextElement(E[] array) {
return array[faker.random().nextInt(array.length)];
}
/**
* Returns a random element from a list.
*
* @param list The list to take a random element from.
* @param <E> The type of the elements in the list.
* @return A randomly selected element from the list.
*/
public <E> E nextElement(List<E> list) {
return list.get(faker.random().nextInt(list.size()));
}
}
@@ -1,21 +0,0 @@
package com.github.javafaker;
public class Overwatch {
private final Faker faker;
protected Overwatch(Faker faker) {
this.faker = faker;
}
public String hero() {
return faker.fakeValuesService().resolve("games.overwatch.heroes", this, faker);
}
public String location() {
return faker.fakeValuesService().resolve("games.overwatch.locations", this, faker);
}
public String quote() {
return faker.fakeValuesService().resolve("games.overwatch.quotes", this, faker);
}
}
@@ -1,17 +0,0 @@
package com.github.javafaker;
public class PhoneNumber {
private final Faker faker;
protected PhoneNumber(Faker faker) {
this.faker = faker;
}
public String cellPhone() {
return faker.numerify(faker.fakeValuesService().resolve("cell_phone.formats", this, faker));
}
public String phoneNumber() {
return faker.numerify(faker.fakeValuesService().resolve("phone_number.formats", this, faker));
}
}
@@ -1,18 +0,0 @@
package com.github.javafaker;
public class Pokemon {
private final Faker faker;
protected Pokemon(Faker faker) {
this.faker = faker;
}
public String name() {
return faker.resolve("games.pokemon.names");
}
public String location() {
return faker.resolve("games.pokemon.locations");
}
}
@@ -1,21 +0,0 @@
package com.github.javafaker;
public class RickAndMorty {
private final Faker faker;
protected RickAndMorty(final Faker faker) {
this.faker = faker;
}
public String character() {
return faker.resolve("rick_and_morty.characters");
}
public String location() {
return faker.resolve("rick_and_morty.locations");
}
public String quote() {
return faker.resolve("rick_and_morty.quotes");
}
}
@@ -1,13 +0,0 @@
package com.github.javafaker;
public class Robin {
private final Faker faker;
protected Robin(Faker faker) {
this.faker = faker;
}
public String quote() {
return faker.fakeValuesService().resolve("robin.quotes", this, faker);
}
}
@@ -1,14 +0,0 @@
package com.github.javafaker;
public class RockBand {
private final Faker faker;
protected RockBand(Faker faker) {
this.faker = faker;
}
public String name() {
return faker.resolve("rock_band.name");
}
}
@@ -1,85 +0,0 @@
package com.github.javafaker;
public class Shakespeare {
private static final String [] hamletQuotes = {
"To be, or not to be: that is the question.",
"Neither a borrower nor a lender be; For loan oft loses both itself and friend, and borrowing dulls the edge of husbandry.",
"This above all: to thine own self be true.",
"Though this be madness, yet there is method in 't.",
"That it should come to this!.",
"There is nothing either good or bad, but thinking makes it so.",
"What a piece of work is man! how noble in reason! how infinite in faculty! in form and moving how express and admirable! in action how like an angel! in apprehension how like a god! the beauty of the world, the paragon of animals! .",
"The lady doth protest too much, methinks.",
"In my mind's eye.",
"A little more than kin, and less than kind.",
"The play 's the thing wherein I'll catch the conscience of the king.",
"And it must follow, as the night the day, thou canst not then be false to any man.",
"Brevity is the soul of wit.",
"Doubt that the sun doth move, doubt truth to be a liar, but never doubt I love.",
"Rich gifts wax poor when givers prove unkind.",
"Do you think I am easier to be played on than a pipe?",
"I will speak daggers to her, but use none.",
"When sorrows come, they come not single spies, but in battalions." };
private static final String [] asYouLikeItQuotes = {
"All the world 's a stage, and all the men and women merely players. They have their exits and their entrances; And one man in his time plays many parts.",
"Can one desire too much of a good thing?.",
"I like this place and willingly could waste my time in it.",
"How bitter a thing it is to look into happiness through another man's eyes!",
"Blow, blow, thou winter wind! Thou art not so unkind as man's ingratitude.",
"True is it that we have seen better days.",
"For ever and a day.",
"The fool doth think he is wise, but the wise man knows himself to be a fool." };
private static final String [] kingRichardIIIQuotes = {
"Now is the winter of our discontent.",
"A horse! a horse! my kingdom for a horse!.",
"Conscience is but a word that cowards use, devised at first to keep the strong in awe.",
"So wise so young, they say, do never live long.",
"Off with his head!",
"An honest tale speeds best, being plainly told.",
"The king's name is a tower of strength.",
"The world is grown so bad, that wrens make prey where eagles dare not perch." };
private static final String [] romeoAndJulietQuotes = {
"O Romeo, Romeo! wherefore art thou Romeo?.",
"It is the east, and Juliet is the sun.",
"Good Night, Good night! Parting is such sweet sorrow, that I shall say good night till it be morrow.",
"What's in a name? That which we call a rose by any other name would smell as sweet.",
"Wisely and slow; they stumble that run fast.",
"Tempt not a desperate man.",
"For you and I are past our dancing days.",
"O! she doth teach the torches to burn bright.",
"It seems she hangs upon the cheek of night like a rich jewel in an Ethiope's ear.",
"See, how she leans her cheek upon her hand! O that I were a glove upon that hand, that I might touch that cheek!.",
"Not stepping o'er the bounds of modesty." };
private final Faker faker;
protected Shakespeare(Faker faker) {
this.faker = faker;
}
public String hamletQuote() {
return randomElement(hamletQuotes);
}
public String asYouLikeItQuote() {
return randomElement(asYouLikeItQuotes);
}
public String kingRichardIIIQuote() {
return randomElement(kingRichardIIIQuotes);
}
public String romeoAndJulietQuote() {
return randomElement(romeoAndJulietQuotes);
}
private String randomElement(String[] values) {
return values[faker.random().nextInt(values.length)];
}
}
@@ -1,46 +0,0 @@
package com.github.javafaker;
public class SlackEmoji {
private final Faker faker;
protected SlackEmoji(Faker faker) {
this.faker = faker;
}
public String people() {
return faker.resolve("slack_emoji.people");
}
public String nature() {
return faker.resolve("slack_emoji.nature");
}
public String foodAndDrink() {
return faker.resolve("slack_emoji.food_and_drink");
}
public String celebration() {
return faker.resolve("slack_emoji.celebration");
}
public String activity() {
return faker.resolve("slack_emoji.activity");
}
public String travelAndPlaces() {
return faker.resolve("slack_emoji.travel_and_places");
}
public String objectsAndSymbols() {
return faker.resolve("slack_emoji.objects_and_symbols");
}
public String custom() {
return faker.resolve("slack_emoji.custom");
}
public String emoji() {
return faker.fakeValuesService().resolve("slack_emoji.emoji", this, faker);
}
}
@@ -1,62 +0,0 @@
package com.github.javafaker;
public class Space {
private final Faker faker;
protected Space(Faker faker) {
this.faker = faker;
}
public String planet() {
return faker.resolve("space.planet");
}
public String moon() {
return faker.resolve("space.moon");
}
public String galaxy() {
return faker.resolve("space.galaxy");
}
public String nebula() {
return faker.resolve("space.nebula");
}
public String starCluster() {
return faker.resolve("space.star_cluster");
}
public String constellation() {
return faker.resolve("space.constellation");
}
public String star() {
return faker.resolve("space.star");
}
public String agency() {
return faker.resolve("space.agency");
}
public String agencyAbbreviation() {
return faker.resolve("space.agency_abv");
}
public String nasaSpaceCraft() {
return faker.resolve("space.nasa_space_craft");
}
public String company() {
return faker.resolve("space.company");
}
public String distanceMeasurement() {
return faker.number().numberBetween(10, 100) + ' ' + faker.resolve("space.distance_measurement");
}
public String meteorite() {
return faker.resolve("space.meteorite");
}
}
@@ -1,25 +0,0 @@
package com.github.javafaker;
public class StarTrek {
private final Faker faker;
protected StarTrek(Faker faker) {
this.faker = faker;
}
public String character() {
return faker.fakeValuesService().resolve("star_trek.character", this, faker);
}
public String location() {
return faker.fakeValuesService().resolve("star_trek.location", this, faker);
}
public String specie() {
return faker.fakeValuesService().resolve("star_trek.specie", this, faker);
}
public String villain() {
return faker.fakeValuesService().resolve("star_trek.villain", this, faker);
}
}
@@ -1,19 +0,0 @@
package com.github.javafaker;
public class Stock {
private final Faker faker;
protected Stock(Faker faker) {
this.faker = faker;
}
public String nsdqSymbol() {
return faker.fakeValuesService().resolve("stock.symbol_nsdq", this, faker);
}
public String nyseSymbol() {
return faker.fakeValuesService().resolve("stock.symbol_nyse", this, faker);
}
}
@@ -1,29 +0,0 @@
package com.github.javafaker;
public class Superhero {
private final Faker faker;
protected Superhero(Faker faker) {
this.faker = faker;
}
public String name() {
return faker.fakeValuesService().resolve("superhero.name", this, faker);
}
public String prefix() {
return faker.fakeValuesService().resolve("superhero.prefix", this, faker);
}
public String suffix() {
return faker.fakeValuesService().resolve("superhero.suffix", this, faker);
}
public String power() {
return faker.fakeValuesService().resolve("superhero.power", this, faker);
}
public String descriptor() {
return faker.fakeValuesService().resolve("superhero.descriptor", this, faker);
}
}
@@ -1,25 +0,0 @@
package com.github.javafaker;
public class Team {
private final Faker faker;
protected Team(Faker faker) {
this.faker = faker;
}
public String name() {
return faker.fakeValuesService().resolve("team.name", this, faker);
}
public String creature() {
return faker.fakeValuesService().resolve("team.creature", this, faker);
}
public String state() {
return faker.fakeValuesService().resolve("address.state", this, faker);
}
public String sport() {
return faker.fakeValuesService().resolve("team.sport", this, faker);
}
}
@@ -1,21 +0,0 @@
package com.github.javafaker;
public class TwinPeaks {
private final Faker faker;
protected TwinPeaks(final Faker faker) {
this.faker = faker;
}
public String character() {
return faker.resolve("twin_peaks.characters");
}
public String location() {
return faker.resolve("twin_peaks.locations");
}
public String quote() {
return faker.resolve("twin_peaks.quotes");
}
}
@@ -1,21 +0,0 @@
package com.github.javafaker;
public class University {
private final Faker faker;
protected University(Faker faker) {
this.faker = faker;
}
public String name() {
return faker.fakeValuesService().resolve("university.name", this, faker);
}
public String prefix() {
return faker.fakeValuesService().resolve("university.prefix", this, faker);
}
public String suffix() {
return faker.fakeValuesService().resolve("university.suffix", this, faker);
}
}
@@ -1,65 +0,0 @@
package com.github.javafaker;
/**
* A generator for Weather data.
*/
public class Weather {
private static final int DEFAULT_MIN_TEMP_C = -30;
private static final int DEFAULT_MAX_TEMP_C = 38;
private static final int DEFAULT_MIN_TEMP_F = -22;
private static final int DEFAULT_MAX_TEMP_F = 100;
private final Faker faker;
protected Weather(Faker faker) {
this.faker = faker;
}
/**
* Generates a short weather description.
*/
public String description() {
return faker.resolve("weather.description");
}
/**
* Generates a random temperature celsius between -30 and 38 degrees.
* @return String that represents temperature in format 5°C
*/
public String temperatureCelsius() {
return temperature(DEFAULT_MIN_TEMP_C, DEFAULT_MAX_TEMP_C, "weather.temperature.celsius");
}
/**
* Generates a random temperature fahrenheit between -22 and 100 degrees.
* @return String that represents temperature in format 5°F
*/
public String temperatureFahrenheit() {
return temperature(DEFAULT_MIN_TEMP_F, DEFAULT_MAX_TEMP_F, "weather.temperature.fahrenheit");
}
/**
* Generates a random temperature celsius between two temperatures.
* @param minTemperature the minimal temperature
* @param maxTemperature the maximal temperature
* @return String that represents temperature in format 5°C
*/
public String temperatureCelsius(int minTemperature, int maxTemperature) {
return temperature(minTemperature, maxTemperature, "weather.temperature.celsius");
}
/**
* Generates a random temperature fahrenheit between two temperatures.
* @param minTemperature the minimal temperature
* @param maxTemperature the maximal temperature
* @return String that represents temperature in format 5°F
*/
public String temperatureFahrenheit(int minTemperature, int maxTemperature) {
return temperature(minTemperature, maxTemperature, "weather.temperature.fahrenheit");
}
private String temperature(int minTemperature, int maxTemperature, String degreeKey) {
return faker.random().nextInt(minTemperature, maxTemperature) + faker.resolve(degreeKey);
}
}
@@ -1,33 +0,0 @@
package com.github.javafaker;
public class Witcher {
private final Faker faker;
protected Witcher(Faker faker) {
this.faker = faker;
}
public String character() {
return faker.fakeValuesService().resolve("games.witcher.characters", this, faker);
}
public String witcher() {
return faker.fakeValuesService().resolve("games.witcher.witchers", this, faker);
}
public String school() {
return faker.fakeValuesService().resolve("games.witcher.schools", this, faker);
}
public String location() {
return faker.fakeValuesService().resolve("games.witcher.locations", this, faker);
}
public String quote() {
return faker.fakeValuesService().resolve("games.witcher.quotes", this, faker);
}
public String monster() {
return faker.fakeValuesService().resolve("games.witcher.monsters", this, faker);
}
}
@@ -1,13 +0,0 @@
package com.github.javafaker;
public class Yoda {
private final Faker faker;
protected Yoda(final Faker faker) {
this.faker = faker;
}
public String quote() {
return faker.resolve("yoda.quotes");
}
}
@@ -1,17 +0,0 @@
package com.github.javafaker;
public class Zelda {
private final Faker faker;
protected Zelda(final Faker faker) {
this.faker = faker;
}
public String game() {
return faker.resolve("games.zelda.games");
}
public String character() {
return faker.resolve("games.zelda.characters");
}
}
@@ -1,28 +0,0 @@
package com.github.javafaker.idnumbers;
import com.github.javafaker.Faker;
public class EnIdNumber {
private static final String[] invalidSSNPatterns = {
"0{3}-\\\\d{2}-\\\\d{4}",
"\\d{3}-0{2}-\\d{4}",
"\\d{3}-\\d{2}-0{4}",
"666-\\d{2}-\\d{4}",
"9\\d{2}-\\d{2}-\\d{4}"};
public String getValidSsn(Faker f) {
String ssn = f.regexify("[0-8]\\d{2}-\\d{2}-\\d{4}");
boolean isValid = true;
for (int i = 0; i < invalidSSNPatterns.length; i++) {
if (ssn.matches(invalidSSNPatterns[i])) {
isValid = false;
break;
}
}
if (!isValid) {
ssn = getValidSsn(f);
}
return ssn;
}
}
@@ -1,108 +0,0 @@
package com.github.javafaker.idnumbers;
import com.github.javafaker.Faker;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Implementation based on the definition at
* https://www.skatteverket.se/privat/folkbokforing/personnummer.4.3810a01c150939e893f18c29.html
* and the description at
* https://en.wikipedia.org/wiki/Personal_identity_number_(Sweden)
*/
public class SvSEIdNumber {
private static final String[] validPatterns = {"######-####", "######+####"};
public String getValidSsn(Faker f) {
String candidate = "";
while (!validSwedishSsn(candidate)) {
String pattern = getPattern(f);
candidate = f.numerify(pattern);
}
return candidate;
}
public String getInvalidSsn(Faker f) {
String candidate = "121212-1212"; // Seed with a valid number
while (validSwedishSsn(candidate)) {
String pattern = getPattern(f);
candidate = f.numerify(pattern);
}
return candidate;
}
private String getPattern(Faker faker) {
return validPatterns[faker.random().nextInt(2)];
}
boolean validSwedishSsn(String ssn) {
if (ssn.length() != 11) {
return false;
}
try {
if (parseDate(ssn)) {
return false;
}
} catch (ParseException e) {
return false;
}
int calculatedChecksum = calculateChecksum(ssn);
int checksum = Integer.parseInt(ssn.substring(10, 11));
return checksum == calculatedChecksum;
}
private boolean parseDate(String ssn) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd");
String dateString = ssn.substring(0, 6);
Date date = sdf.parse(dateString);
// want to check that the parsed date is equal to the supplied data, most of the attempts will fail
String reversed = sdf.format(date);
return !reversed.equals(dateString);
}
private int calculateChecksum(String number) {
String dateString = number.substring(0, 6);
String birthNumber = number.substring(7, 10);
String calculatedNumber = calculateDigits(dateString + birthNumber);
int sum = calculateDigitSum(calculatedNumber);
int lastDigit = (sum % 10);
int difference = 10 - lastDigit;
return (difference % 10);
}
private String calculateDigits(String numbers) {
String calculatedNumbers = "";
for (int i = 0; i < 9; i++) {
int res;
int n = Integer.parseInt(numbers.substring(i, i + 1));
if (i % 2 == 0) {
res = n * 2;
} else {
res = n;
}
calculatedNumbers += res;
}
return calculatedNumbers;
}
private int calculateDigitSum(String numbers) {
int sum = 0;
for (int i = 0; i < numbers.length(); i++) {
int n = Integer.parseInt(numbers.substring(i, i + 1));
sum += n;
}
return sum;
}
}
@@ -1,92 +0,0 @@
package com.github.javafaker.service;
import org.yaml.snakeyaml.Yaml;
import java.io.InputStream;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
import java.util.Map;
public class FakeValues implements FakeValuesInterface {
private final Locale locale;
private final String filename;
private final String path;
private Map values;
FakeValues(Locale locale) {
this(locale, getFilename(locale), getFilename(locale));
}
private static String getFilename(Locale locale) {
final StringBuilder filename = new StringBuilder(language(locale));
if (!"".equals(locale.getCountry())) {
filename.append("-").append(locale.getCountry());
}
return filename.toString();
}
/**
* If you new up a locale with "he", it gets converted to "iw" which is old.
* This addresses that unfortunate condition.
*/
private static String language(Locale l) {
if (l.getLanguage().equals("iw")) {
return "he";
}
return l.getLanguage();
}
FakeValues(Locale locale, String filename, String path) {
this.locale = locale;
this.filename = filename;
this.path = path;
}
@Override
public Map get(String key) {
if (values == null) {
values = loadValues();
}
return values == null ? null : (Map) values.get(key);
}
private Map loadValues() {
String pathWithLocaleAndFilename = "/" + locale.getLanguage() + "/" + this.filename;
String pathWithFilename = "/" + filename + ".yml";
String pathWithLocale = "/" + locale.getLanguage() + ".yml";
List<String> paths = Arrays.asList(pathWithLocaleAndFilename, pathWithFilename, pathWithLocale);
InputStream stream = null;
for (String path : paths) {
stream = findStream(path);
if (stream != null) {
break;
}
}
if (stream == null) {
return null;
}
final Map valuesMap = new Yaml().loadAs(stream, Map.class);
Map localeBased = (Map) valuesMap.get(locale.getLanguage());
if (localeBased == null) {
localeBased = (Map) valuesMap.get(filename);
}
return (Map) localeBased.get("faker");
}
private InputStream findStream(String filename) {
InputStream streamOnClass = getClass().getResourceAsStream(filename);
if (streamOnClass != null) {
return streamOnClass;
}
return getClass().getClassLoader().getResourceAsStream(filename);
}
boolean supportsPath(String path) {
return this.path.equals(path);
}
}
@@ -1,31 +0,0 @@
package com.github.javafaker.service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class FakeValuesGrouping implements FakeValuesInterface {
private List<FakeValues> fakeValuesList = new ArrayList<FakeValues>();
public void add(FakeValues fakeValues) {
fakeValuesList.add(fakeValues);
}
@Override
@SuppressWarnings({"unchecked", "rawtypes"})
public Map get(String key) {
Map result = null;
for (FakeValues fakeValues : fakeValuesList) {
if (fakeValues.supportsPath(key)) {
if (result != null) {
final Map newResult = fakeValues.get(key);
result.putAll(newResult);
} else {
result = fakeValues.get(key);
}
}
}
return result;
}
}
@@ -1,7 +0,0 @@
package com.github.javafaker.service;
import java.util.Map;
public interface FakeValuesInterface {
Map get(String key);
}
@@ -1,595 +0,0 @@
package com.github.javafaker.service;
import com.github.javafaker.Address;
import com.github.javafaker.Faker;
import com.github.javafaker.Name;
import com.github.javafaker.service.files.EnFile;
import com.mifmif.common.regex.Generex;
import org.apache.commons.lang3.ClassUtils;
import org.apache.commons.lang3.StringUtils;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class FakeValuesService {
private static final Pattern EXPRESSION_PATTERN = Pattern.compile("#\\{([a-z0-9A-Z_.]+)\\s?(?:'([^']+)')?(?:,'([^']+)')*\\}");
private final Logger log = Logger.getLogger("faker");
private final List<FakeValuesInterface> fakeValuesList;
private final RandomService randomService;
/**
* <p>
* Resolves YAML file using the most specific path first based on language and country code.
* 'en_US' would resolve in the following order:
* <ol>
* <li>/en-US.yml</li>
* <li>/en.yml</li>
* </ol>
* The search is case-insensitive, so the following will all resolve correctly. Also, either a hyphen or
* an underscore can be used when constructing a {@link Locale} instance. This is legacy behavior and not
* condoned, but it will work.
* <ul>
* <li>EN_US</li>
* <li>En-Us</li>
* <li>eN_uS</li>
* </ul>
* </p>
*
* @param locale
* @param randomService
*/
@SuppressWarnings({"unchecked", "rawtypes"})
public FakeValuesService(Locale locale, RandomService randomService) {
if (locale == null) {
throw new IllegalArgumentException("locale is required");
}
this.randomService = randomService;
locale = normalizeLocale(locale);
final List<Locale> locales = localeChain(locale);
final List<FakeValuesInterface> all = new ArrayList(locales.size());
for (final Locale l : locales) {
boolean isEnglish = l.equals(Locale.ENGLISH);
if (isEnglish) {
FakeValuesGrouping fakeValuesGrouping = new FakeValuesGrouping();
for (EnFile file : EnFile.getFiles()) {
fakeValuesGrouping.add(new FakeValues(l, file.getFile(), file.getPath()));
}
all.add(fakeValuesGrouping);
} else {
all.add(new FakeValues(locale));
}
}
this.fakeValuesList = Collections.unmodifiableList(all);
}
/**
* Convert the specified locale into a chain of locales used for message resolution. For example:
* <p>
* {@link Locale#FRANCE} (fr_FR) -> [ fr_FR, anotherTest, en ]
*
* @return a list of {@link Locale} instances
*/
protected List<Locale> localeChain(Locale from) {
if (Locale.ENGLISH.equals(from)) {
return Collections.singletonList(Locale.ENGLISH);
}
final Locale normalized = normalizeLocale(from);
final List<Locale> chain = new ArrayList<Locale>(3);
chain.add(normalized);
if (!"".equals(normalized.getCountry()) && !Locale.ENGLISH.getLanguage().equals(normalized.getLanguage())) {
chain.add(new Locale(normalized.getLanguage()));
}
chain.add(Locale.ENGLISH); // default
return chain;
}
/**
* @return a proper {@link Locale} instance with language and country code set regardless of how
* it was instantiated. new Locale("pt-br") will be normalized to a locale constructed
* with new Locale("pt","BR").
*/
private Locale normalizeLocale(Locale locale) {
final String[] parts = locale.toString().split("[-\\_]");
if (parts.length == 1) {
return new Locale(parts[0]);
} else {
return new Locale(parts[0], parts[1]);
}
}
/**
* Fetch a random value from an array item specified by the key
*
* @param key
* @return
*/
public Object fetch(String key) {
List<Object> valuesArray = (List) fetchObject(key);
return valuesArray == null ? null : valuesArray.get(randomService.nextInt(valuesArray.size()));
}
/**
* Same as {@link #fetch(String)} except this casts the result into a String.
*
* @param key
* @return
*/
public String fetchString(String key) {
return (String) fetch(key);
}
/**
* Safely fetches a key.
* <p>
* If the value is null, it will return an empty string.
* <p>
* If it is a list, it will assume it is a list of strings and select a random value from it.
* <p>
* If the retrieved value is an slash encoded regular expression such as {@code /[a-b]/} then
* the regex will be converted to a regexify expression and returned (ex. {@code #regexify '[a-b]'})
* <p>
* Otherwise it will just return the value as a string.
*
* @param key the key to fetch from the YML structure.
* @param defaultIfNull the value to return if the fetched value is null
* @return see above
*/
@SuppressWarnings("unchecked")
public String safeFetch(String key, String defaultIfNull) {
Object o = fetchObject(key);
if (o == null) return defaultIfNull;
if (o instanceof List) {
List<String> values = (List<String>) o;
if (values.size() == 0) {
return defaultIfNull;
}
return values.get(randomService.nextInt(values.size()));
} else if (isSlashDelimitedRegex(o.toString())) {
return String.format("#{regexify '%s'}", trimRegexSlashes(o.toString()));
} else {
return (String) o;
}
}
/**
* Return the object selected by the key from yaml file.
*
* @param key key contains path to an object. Path segment is separated by
* dot. E.g. name.first_name
* @return
*/
@SuppressWarnings("unchecked")
public Object fetchObject(String key) {
String[] path = key.split("\\.");
Object result = null;
for (FakeValuesInterface fakeValuesInterface : fakeValuesList) {
Object currentValue = fakeValuesInterface;
for (int p = 0; currentValue != null && p < path.length; p++) {
String currentPath = path[p];
if (currentValue instanceof Map) {
currentValue = ((Map) currentValue).get(currentPath);
} else {
currentValue = ((FakeValuesInterface) currentValue).get(currentPath);
}
}
result = currentValue;
if (result != null) {
break;
}
}
return result;
}
/**
* Returns a string with the '#' characters in the parameter replaced with random digits between 0-9 inclusive.
* <p/>
* For example, the string "ABC##EFG" could be replaced with a string like "ABC99EFG".
*
* @param numberString
* @return
*/
public String numerify(String numberString) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < numberString.length(); i++) {
if (numberString.charAt(i) == '#') {
sb.append(randomService.nextInt(10));
} else {
sb.append(numberString.charAt(i));
}
}
return sb.toString();
}
/**
* Applies both a {@link #numerify(String)} and a {@link #letterify(String)}
* over the incoming string.
*
* @param string
* @return
*/
public String bothify(String string) {
return letterify(numerify(string));
}
/**
* Applies both a {@link #numerify(String)} and a {@link #letterify(String, boolean)}
* over the incoming string.
*
* @param string
* @param isUpper
* @return
*/
public String bothify(String string, boolean isUpper) {
return letterify(numerify(string), isUpper);
}
/**
* Generates a String that matches the given regular expression.
*/
public String regexify(String regex) {
Generex generex = new Generex(regex);
generex.setSeed(randomService.nextLong());
return generex.random();
}
/**
* Returns a string with the '?' characters in the parameter replaced with random alphabetic
* characters.
* <p/>
* For example, the string "12??34" could be replaced with a string like "12AB34".
*
* @param letterString
* @return
*/
public String letterify(String letterString) {
return this.letterify(letterString, false);
}
/**
* Returns a string with the '?' characters in the parameter replaced with random alphabetic
* characters.
* <p/>
* For example, the string "12??34" could be replaced with a string like "12AB34".
*
* @param letterString
* @param isUpper specifies whether or not letters should be upper case
* @return
*/
public String letterify(String letterString, boolean isUpper) {
return letterHelper((isUpper) ? 65 : 97, letterString); // from ascii table
}
private String letterHelper(int baseChar, String letterString) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < letterString.length(); i++) {
if (letterString.charAt(i) == '?') {
sb.append((char) (baseChar + randomService.nextInt(26))); // a-z
} else {
sb.append(letterString.charAt(i));
}
}
return sb.toString();
}
/**
* Resolves a key to a method on an object.
* <p>
* #{hello} with result in a method call to current.hello();
* <p>
* #{Person.hello_someone} will result in a method call to person.helloSomeone();
*/
public String resolve(String key, Object current, Faker root) {
final String expression = safeFetch(key, null);
if (expression == null) {
throw new RuntimeException(key + " resulted in null expression");
}
return resolveExpression(expression, current, root);
}
/**
* resolves an expression using the current faker.
*
* @param expression
* @param faker
* @return
*/
public String expression(String expression, Faker faker) {
return resolveExpression(expression, null, faker);
}
/**
* <p>processes a expression in the style #{X.y} using the current objects as the 'current' location
* within the yml file (or the {@link Faker} object hierarchy as it were).
* </p>
* <p>
* #{Address.streetName} would get resolved to {@link Faker#address()}'s {@link Address#streetName()}
* </p>
* <p>
* #{address.street} would get resolved to the YAML > locale: faker: address: street:
* </p>
* <p>
* Combinations are supported as well: "#{x} #{y}"
* </p>
* <p>
* Recursive templates are supported. if "#{x}" resolves to "#{Address.streetName}" then "#{x}" resolves to
* {@link Faker#address()}'s {@link Address#streetName()}.
* </p>
*/
protected String resolveExpression(String expression, Object current, Faker root) {
final Matcher matcher = EXPRESSION_PATTERN.matcher(expression);
String result = expression;
while (matcher.find()) {
final String escapedDirective = matcher.group(0);
final String directive = matcher.group(1);
List<String> args = new ArrayList<String>();
for (int i = 2; i < matcher.groupCount() + 1 && matcher.group(i) != null; i++) {
args.add(matcher.group(i));
}
// resolve the expression and reprocess it to handle recursive templates
String resolved = resolveExpression(directive, args, current, root);
if (resolved == null) {
throw new RuntimeException("Unable to resolve " + escapedDirective + " directive.");
}
resolved = resolveExpression(resolved, current, root);
result = StringUtils.replaceOnce(result, escapedDirective, resolved);
}
return result;
}
/**
* <h1>Search Order</h1>
* <ul>
* <li>Search for methods on the current object</li>
* <li>local keys in Yaml File</li>
* <li>Search for methods on faker child objects</li>
* <li>Search for keys in yaml file by transforming object reference to yaml reference</li>
* </ul>
*
* @return null if unable to resolve
*/
private String resolveExpression(String directive, List<String> args, Object current, Faker root) {
// name.name (resolve locally)
// Name.first_name (resolve to faker.name().firstName())
final String simpleDirective = (isDotDirective(directive) || current == null)
? directive
: classNameToYamlName(current) + "." + directive;
String resolved = null;
// resolve method references on CURRENT object like #{number_between '1','10'} on Number or
// #{ssn_valid} on IdNumber
if (!isDotDirective(directive)) {
resolved = resolveFromMethodOn(current, directive, args);
}
// simple fetch of a value from the yaml file. the directive may have been mutated
// such that if the current yml object is car: and directive is #{wheel} then
// car.wheel will be looked up in the YAML file.
if (resolved == null) {
resolved = safeFetch(simpleDirective, null);
}
// resolve method references on faker object like #{regexify '[a-z]'}
if (resolved == null && !isDotDirective(directive)) {
resolved = resolveFromMethodOn(root, directive, args);
}
// Resolve Faker Object method references like #{ClassName.method_name}
if (resolved == null && isDotDirective(directive)) {
resolved = resolveFakerObjectAndMethod(root, directive, args);
}
// last ditch effort. Due to Ruby's dynamic nature, something like 'Address.street_title' will resolve
// because 'street_title' is a dynamic method on the Address object. We can't do this in Java so we go
// thru the normal resolution above, but if we will can't resolve it, we once again do a 'safeFetch' as we
// did first but FIRST we change the Object reference Class.method_name with a yml style internal refernce ->
// class.method_name (lowercase)
if (resolved == null && isDotDirective(directive)) {
resolved = safeFetch(javaNameToYamlName(simpleDirective), null);
}
return resolved;
}
/**
* @param expression input expression
* @return true if s is non null and is a slash delimited regex (ex. {@code /[ab]/})
*/
private boolean isSlashDelimitedRegex(String expression) {
return expression != null && expression.startsWith("/") && expression.endsWith("/");
}
/**
* Given a {@code slashDelimitedRegex} such as {@code /[ab]/}, removes the slashes and returns only {@code [ab]}
*
* @param slashDelimitedRegex a non null slash delimited regex (ex. {@code /[ab]/})
* @return the regex without the slashes (ex. {@code [ab]})
*/
private String trimRegexSlashes(String slashDelimitedRegex) {
return slashDelimitedRegex.substring(1, slashDelimitedRegex.length() - 1);
}
private boolean isDotDirective(String directive) {
return directive.contains(".");
}
/**
* @return a yaml style name from the classname of the supplied object (PhoneNumber => phone_number)
*/
private String classNameToYamlName(Object current) {
return javaNameToYamlName(current.getClass().getSimpleName());
}
/**
* @return a yaml style name like 'phone_number' from a java style name like 'PhoneNumber'
*/
private String javaNameToYamlName(String expression) {
return expression.replaceAll("([A-Z])", "_$1")
.substring(1)
.toLowerCase();
}
/**
* Given a directive like 'firstName', attempts to resolve it to a method. For example if obj is an instance of
* {@link Name} then this method would return {@link Name#firstName()}. Returns null if the directive is nested
* (i.e. has a '.') or the method doesn't exist on the <em>obj</em> object.
*/
private String resolveFromMethodOn(Object obj, String directive, List<String> args) {
if (obj == null) {
return null;
}
try {
final MethodAndCoercedArgs accessor = accessor(obj, directive, args);
return (accessor == null)
? null
: string(accessor.invoke(obj));
} catch (Exception e) {
log.log(Level.FINE, "Can't call " + directive + " on " + obj, e);
return null;
}
}
/**
* Accepts a {@link Faker} instance and a name.firstName style 'key' which is resolved to the return value of:
* {@link Faker#name()}'s {@link Name#firstName()} method.
*
* @throws RuntimeException if there's a problem invoking the method or it doesn't exist.
*/
private String resolveFakerObjectAndMethod(Faker faker, String key, List<String> args) {
final String[] classAndMethod = key.split("\\.", 2);
try {
String fakerMethodName = classAndMethod[0].replaceAll("_", "");
MethodAndCoercedArgs fakerAccessor = accessor(faker, fakerMethodName, Collections.<String>emptyList());
if (fakerAccessor == null) {
log.fine("Can't find top level faker object named " + fakerMethodName + ".");
return null;
}
Object objectWithMethodToInvoke = fakerAccessor.invoke(faker);
String nestedMethodName = classAndMethod[1].replaceAll("_", "");
final MethodAndCoercedArgs accessor = accessor(objectWithMethodToInvoke, classAndMethod[1].replaceAll("_", ""), args);
if (accessor == null) {
throw new Exception("Can't find method on "
+ objectWithMethodToInvoke.getClass().getSimpleName()
+ " called " + nestedMethodName + ".");
}
return string(accessor.invoke(objectWithMethodToInvoke));
} catch (Exception e) {
log.fine(e.getMessage());
return null;
}
}
/**
* Find an accessor by name ignoring case.
*/
private MethodAndCoercedArgs accessor(Object onObject, String name, List<String> args) {
log.log(Level.FINE, "Find accessor named " + name + " on " + onObject.getClass().getSimpleName() + " with args " + args);
for (Method m : onObject.getClass().getMethods()) {
if (m.getName().equalsIgnoreCase(name)
&& m.getParameterTypes().length == args.size()) {
final List<Object> coercedArguments = coerceArguments(m, args);
if (coercedArguments != null) {
return new MethodAndCoercedArgs(m, coercedArguments);
}
}
}
if (name.contains("_")) {
return accessor(onObject, name.replaceAll("_", ""), args);
}
return null;
}
/**
* Coerce arguments in <em>args</em> into the appropriate types (if possible) for the parameter arguments
* to <em>accessor</em>.
*
* @return array of coerced values if successful, null otherwise
* @throws Exception if unable to coerce
*/
private List<Object> coerceArguments(Method accessor, List<String> args) {
final List<Object> coerced = new ArrayList<Object>();
for (int i = 0; i < accessor.getParameterTypes().length; i++) {
Class<?> toType = ClassUtils.primitiveToWrapper(accessor.getParameterTypes()[i]);
try {
final Constructor<?> ctor = toType.getConstructor(String.class);
final Object coercedArgument = ctor.newInstance(args.get(i));
coerced.add(coercedArgument);
} catch (Exception e) {
log.fine("Unable to coerce " + args.get(i) + " to " + toType.getSimpleName() + " via " + toType.getSimpleName() + "(String) constructor.");
return null;
}
}
return coerced;
}
private String string(Object obj) {
return (obj == null) ? null : obj.toString();
}
/**
* simple wrapper class around an accessor and a list of coerced arguments.
* this is useful as we get to find the method and coerce the arguments in one
* shot, returning both when successful. This saves us from doing it more than once (coercing args).
*/
private class MethodAndCoercedArgs {
private final Method method;
private final List<Object> coerced;
private MethodAndCoercedArgs(Method m, List<Object> coerced) {
this.method = requireNonNull(m, "method cannot be null");
this.coerced = requireNonNull(coerced, "coerced arguments cannot be null");
}
private Object invoke(Object on) throws InvocationTargetException, IllegalAccessException {
return method.invoke(on, coerced.toArray());
}
/**
* source level precludes me from using Objects.requireNonNull
*/
private <T> T requireNonNull(T instance, String messageIfNull) {
if (instance == null) {
throw new NullPointerException(messageIfNull);
}
return instance;
}
}
}
@@ -1,32 +0,0 @@
package com.github.javafaker.service;
import java.net.IDN;
/**
* Created by tshick on 10/30/16.
*/
public class FakerIDN {
/**
* {@link IDN#toASCII(String)} is too picky for our needs. It was throwing exceptions for fa.yml and
* he.yml as they're Bidi languages and something was causing them to die. This is kind of a brute force
* fix but it appears to fix the issue.
*/
public static final String toASCII(String in) {
try {
return IDN.toASCII(in);
} catch (Exception e) {
// let's continue with the character by character encoding hack.
}
final StringBuilder sb = new StringBuilder();
for (int i=0;i<in.length();i++) {
try {
sb.append(IDN.toASCII(in.substring(i, i + 1)));
}
catch (Exception e) {}
}
if (sb.length() == 0) {
throw new RuntimeException("Unable to convert " + in + " to ASCII");
}
return sb.toString();
}
}
@@ -1,57 +0,0 @@
package com.github.javafaker.service;
import java.util.Random;
public class RandomService {
private static final Random SHARED_RANDOM = new Random();
private final Random random;
/**
* Uses a default shared random.
*/
public RandomService() {
this(SHARED_RANDOM);
}
/**
* @param random If null is passed in, a default Random is assigned
*/
public RandomService(Random random) {
this.random = random != null ? random : SHARED_RANDOM;
}
public int nextInt(int n) {
return random.nextInt(n);
}
public long nextLong() {
return random.nextLong();
}
// lifted from http://stackoverflow.com/questions/2546078/java-random-long-number-in-0-x-n-range
public long nextLong(long n) {
if (n <= 0) {
throw new IllegalArgumentException("bound must be positive");
}
long bits, val;
do {
long randomLong = random.nextLong();
bits = (randomLong << 1) >>> 1;
val = bits % n;
} while (bits - val + (n - 1) < 0L);
return val;
}
public double nextDouble() {
return random.nextDouble();
}
public Boolean nextBoolean() {
return random.nextBoolean();
}
public Integer nextInt(int min, int max) {
return random.nextInt((max - min) + 1) + min;
}
}
@@ -1,198 +0,0 @@
package com.github.javafaker.service.files;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class EnFile {
private final String file;
private final String path;
private EnFile(String file) {
this(file, file.replaceFirst(".yml", ""));
}
private EnFile(String file, String path) {
this.file = file;
this.path = path;
}
public String getFile() {
return file;
}
public String getPath() {
return path;
}
private static List<String> FILES = Arrays.asList("address.yml",
"ancient.yml",
"animal.yml",
"app.yml",
"appliance.yml",
"aqua_teen_hunger_force.yml",
"artist.yml",
"back_to_the_future.yml",
"bank.yml",
"beer.yml",
"bojack_horseman.yml",
"book.yml",
"bossa_nova.yml",
"breaking_bad.yml",
"buffy.yml",
"business.yml",
"cannabis.yml",
"chuck_norris.yml",
"code.yml",
"coffee.yml",
"coin.yml",
"color.yml",
"commerce.yml",
"community.yml",
"company.yml",
"compass.yml",
"construction.yml",
"cosmere.yml",
"country.yml",
"crypto_coin.yml",
"currency.yml",
"dc_comics.yml",
"demographic.yml",
"dessert.yml",
"device.yml",
"dota.yml",
"dr_who.yml",
"dragon_ball.yml",
"dumb_and_dumber.yml",
"dune.yml",
"educator.yml",
"elder_scrolls.yml",
"electrical_components.yml",
"esport.yml",
"fallout.yml",
"family_guy.yml",
"famous_last_words.yml",
"file.yml",
"finance.yml",
"food.yml",
"football.yml",
"fresh_prince_of_bel_air.yml",
"friends.yml",
"funny_name.yml",
"game_of_thrones.yml",
"gender.yml",
"ghostbusters.yml",
"grateful_dead.yml",
"greek_philosophers.yml",
"hacker.yml",
"half_life.yml",
"harry_potter.yml",
"heroes.yml",
"heroes_of_the_storm.yml",
"hey_arnold.yml",
"hipster.yml",
"hitchhikers_guide_to_the_galaxy.yml",
"hobbit.yml",
"house.yml",
"how_i_met_your_mother.yml",
"id_number.yml",
"industry_segments.yml",
"internet.yml",
"invoice.yml",
"job.yml",
"kpop.yml",
"lebowski.yml",
"lord_of_the_rings.yml",
"lorem.yml",
"lovecraft.yml",
"markdown.yml",
"marketing.yml",
"matz.yml",
"measurement.yml",
"medical.yml",
"michael_scott.yml",
"military.yml",
"most_interesting_man_in_the_world.yml",
"movie.yml",
"music.yml",
"myst.yml",
"name.yml",
"nation.yml",
"nato_phonetic_alphabet.yml",
"new_girl.yml",
"one_piece.yml",
"overwatch.yml",
"parks_and_rec.yml",
"phish.yml",
"phone_number.yml",
"pokemon.yml",
"princess_bride.yml",
"programming_language.yml",
"relationship.yml",
"restaurant.yml",
"rick_and_morty.yml",
"robin.yml",
"rock_band.yml",
"rupaul.yml",
"science.yml",
"seinfeld.yml",
"shakespeare.yml",
"silicon_valley.yml",
"simpsons.yml",
"singular_siegler.yml",
"slack_emoji.yml",
"sonic_the_hedgehog.yml",
"source.yml",
"south_park.yml",
"space.yml",
"star_trek.yml",
"star_wars.yml",
"stargate.yml",
"stock.yml",
"stranger_thing.yml",
"stripe.yml",
"subscription.yml",
"super_smash_bros.yml",
"superhero.yml",
"sword_art_online.yml",
"team.yml",
"the_expanse.yml",
"the_it_crowd.yml",
"the_thick_of_it.yml",
"twin_peaks.yml",
"umphreys_mcgee.yml",
"university.yml",
"v_for_vendetta.yml",
"vehicle.yml",
"venture_bros.yml",
"verbs.yml",
"weather.yml",
"witcher.yml",
"world_cup.yml",
"world_of_warcraft.yml",
"yoda.yml",
"zelda.yml");
// files where the search path can't be derived from the filename
private static List<EnFile> FILES_WITH_A_DIFFERENT_PATH = Arrays.asList(
new EnFile("cat.yml", "creature"),
new EnFile("dog.yml", "creature"),
new EnFile("league_of_legends.yml", "games"),
new EnFile("overwatch.yml", "games"),
new EnFile("pokemon.yml", "games"),
new EnFile("witcher.yml", "games"),
new EnFile("zelda.yml", "games"),
new EnFile("phone_number.yml", "cell_phone")); // load phone number again with a differen path
public static List<EnFile> getFiles() {
List<EnFile> files = new ArrayList<EnFile>();
for (String file : FILES) {
files.add(new EnFile(file));
}
files.addAll(FILES_WITH_A_DIFFERENT_PATH);
return files;
}
}
File diff suppressed because one or more lines are too long
-80
View File
@@ -1,80 +0,0 @@
by:
faker:
separator: " і "
address:
country: [Аўстралія, Аўстрыя, Азербайджан, Албанія, Алжыр, Амерыканскае Самоа (не прызнаная), Ірландыя, Ісландыя, Іспанія, Антарктыка (не прызнаная), Антыгуа і Барбуда, Антыльскія Астравы (не прызнаная), Аомынь (не прызнаная), Аргенціна, Арменія, Афганістан, Багамскія Астравы, Бангладэш, Барбадас, Бахрэйн, Беларусь, Беліз, Бельгія, Бенін, Балгарыя, Балівія, Боснія і Герцагавіна, Батсвана, Бразілія, Бруней, Буркіна-Фасо, Бурундзі, Бутан, Вануату, Ватыкан, Вялікабрытанія, Венгрыя, Венесуэла, Усходні Тымор, В'етнам, Габон, Гаіці, Гаяна, Гамбія, Гана, Гвадэлупа (не прызнаная), Гватэмала, Гвіяна (не прызнаная), Гвінея, Гвінея-Бісаў, Германія, Гандурас, Грэнада, Грэцыя, Грузія, Данія, Джыбуці, Дамініка, Дамініканская Рэспубліка, Егіпет, Замбія, Зімбабвэ, Ізраіль, Індыя, Інданезія, Іарданія, Ірак, Іран, Ірландыя, Ісландыя, Іспанія, Італія, Емен, Каба-Вэрдэ, Казахстан, Камбоджа, Камерун, Канада, Катар, Кенія, Кіпр, Кірыбаці, Кітай, Калумбія, Каморскія Выспы, Конга, Дэмакратычная Рэспубліка, Карэя (Паўночная), Карэя (Паўднёвая), Косава, Коста-Рыка, Кот-Д'івуар, Куба, Кувейт, выспы Кука, Кыргызстан, Лаос, Латвія, Лесота, Ліберыя, Ліван, Лівія, Літва, Ліхтэнштэйн, Люксембург, Маўрыкій, Маўрытанія, Мадагаскар, Македонія, Малаві, Малайзія, Малі, Мальдывы, Мальта, Маршалавы Астравы, Мексіка, Мікранэзія, Мазамбік, Малдова, Манака, Манголія, Марока, М'янма, Намібія, Науру, Непал, Нігер, Нігерыя, Нідэрланды, Нікарагуа, Новая Зеландыя, Нарвегія, Аб'яднаныя Арабскія Эміраты, Аман, Пакістан, Палаў, Панама, Папуа — Новая Гвінея, Парагвай, Перу, Польшча, Партугалія, Рэспубліка Конга, Расея, Руанда, Румынія, Сальвадор, Самоа, Сан-Марына, Сан-Томе і Прынсэп, Саудаўская Аравія, Свазіленд, Сейшэльскія астравы, Сенегал, Сэнт-Вінсэнт і Грэнадыны, Сэнт-Кітс і Нэвіс, Сэнт-Люсія, Сербія, Сінгапур, Сірыя, Славакія, Славенія, Злучаныя Штаты Амерыкі, Саламонавы Выспы, Самалі, Судан, Сурынам, Сьера-Леонэ, Таджыкістан, Тайланд, Тайвань (не прызнаная), Таміл-Ілама (не прызнаная), Танзанія, Тэркс і Кайкас (не прызнаная), Таго, Такелаў (не прызнаная), Тангійская, Трынідад і Табага, Тувалу, Туніс, Турэцкая Рэспубліка Паўночнага Кіпра (не прызнаная), Туркменістан, Турцыя, Уганда, Узбекістан, Украіна, Уругвай, Фарэрскія Выспы (не прызнаная), Фіджы, Філіпіны, Фінляндыя, Францыя, Французская Палінезія (не прызнаная), Харватыя, Цэнтральнаафрыканская Рэспубліка, Чад, Чарнагорыя, Чэхія, Чылі, Швейцарыя, Швецыя, Шры-Ланка, Эквадор, Экватарыяльная Гвінея, Эрытрэя, Эстонія, Эфіопія, Паўднёва-Афрыканская Рэспубліка, Ямайка, Японія]
building_number: ['###']
street_suffix: ['вул', 'вуліца', 'праспект', 'плошча', 'пл.']
secondary_address: ['кв. ###']
postcode: ['######']
state: [Брэсцкая вобласць Віцебская вобласць, Гомельская вобласць, Гродзенская вобласць, Мінская вобласць, Магілёўская вобласць]
street_title: [Савецкая, Маладзёжная, Цэнтральная, Школьная, Новая, Садовая, Лясная, Набярэжная, Леніна, Кастрычніцкая, Зялёная, Камсамольская, Зарэчная, Першамайская, Гагарына, Палявая, Лугавая, Піянерская, Кірава, Юбілейная, Паўднёвая, Пралетарская, Стэпавая, Пушкіна, Калініна, Паўднёвая, Калгасная, Працоўная, Сонечная, Чыгуначная, Усходняя, Завадская, Чапаева, Нагорная, Будаўнікоў, Берагавая, Перамогі, Горкага, Кааператыўная, Чырвонаармейская, Саўгасная, Рачная, Заплечнік , Спартыўная, Азёрная, Будаўнічая, Паркавая, Чкалава, Мічурына, Падгорная, Дружбы, Паштовая, Партызанская, Вакзальная, Лермантава, Свабоды, Дарожная, Дачная, Маякоўскага, Заходняя, Фрунзэ, Дзяржынскага, Маскоўская, Свярдлова, Някрасава, Гогаля, Чырвоная, Працоўная, Шасейная, Чэхава, Камуністычная, Працы, Камарова, Матросава, Астроўскага, Сасновая, Клубная, Куйбышава, Крупскай, Бярозавая, Карла Маркса, 8 Сакавіка, Бальнічная, Садовы , Інтэрнацыянальная, Суворава, Кветкавая, Трактовая, Ламаносава, Горная, Касманаўтаў, Энергетыкаў, Шаўчэнка, Вясновая, Механізатараў, Камунальная, Лясной , 40 гадоў Перамогі, Майская]
city_name: [г. Гродна, г. Мiнск, г. Магiлёў , г. Брэст , г. Вiцебск , г. Гомель , г. Баранавiчы , г. Бешанковiчы , г. Брагiн , г. Бяроза , г. Браслаў , г. Буда-Кашалёва , г. Ганцавiчы , г. Верхнядзвiнск , г. Ветка , г. Драгiчын , г. Глыбокае , г. Добруш , г. Жабiнка , г. Гарадок , г. Ельск , г. Iванава , г. Докшыцы , г. Жыткавiчы , г. Iвацэвiчы , г. Дуброўна , г. Жлобiн , г. Камянец , г. Лепель , г. Калiнкавiчы , г. Кобрын , г. Лёзна , г. Карма , г. Лунiнец , г. Мёры , г. Лельчыцы , г. Ляхавiчы , г. Наваполацк , г. Лоеў , г. Маларыта , г. Орша , г. Мазыр , г. Пiнск , г. Полацк , г. Нароўля , г. Пружаны , г. Паставы , г. Кастрычнiцкi , г. Столiн , г. Расоны , г. Петрыкаў , г. Сянно , г. Рэчыца , г. Талачын , г. Рагачоў , г. Ушачы , г. Светлагорск , г. Чашнiкi , г. Хойнiкi , г. Шаркаўшчына , г. Чачэрск , г. Шумiлiна , г. Бераставiца , г. Бялынiчы , г. Ваўкавыск , г. Беразiно , г. Бабруйск , г. Воранава , г. Барысаў , г. Быхаў , г. Дзятлава , г. Вiлейка , г. Глуск , г. Зэльва , г. Валожын , г. Горкi , г. Iўе , г. Дзяржынск , г. Дрыбiн , г. Карэлiчы , г. Жодзiна , г. Кiраўск , г. Лiда , г. Клецк , г. Клiмавiчы , г. Масты , г. Капыль , г. Клiчаў , г. Навагрудак , г. Крупкi , г. Касцюковiчы , г. Астравец , г. Лагойск , г. Краснаполле , г. Ашмяны , г. Любань , г. Крычаў , г. Слуцк , г. Чэрыкаў , г. Смалявiчы , г. Шклоў , г. Салiгорск , г. Стоўбцы , г. Узда , г. Чэрвень]
city:
- "#{Address.city_name}"
street_name:
- "#{street_suffix} #{Address.street_title}"
- "#{Address.street_title} #{street_suffix}"
street_address:
- "#{street_name}, #{building_number}"
default_country: [Беларусь]
full_address:
- "#{postcode} #{default_country}, #{city}, #{street_address}"
- "#{postcode} #{default_country}, #{city}, #{street_address} #{secondary_address}"
internet:
free_email: [yandex.ru, ya.ru, mail.ru, gmail.com, yahoo.com, hotmail.com]
domain_suffix: [com, ru, info, бел, net, org, by]
name:
male_first_name: [Аляксандр, Аляксей, Альберт, Анатоль, Андрэй, Антон, Аркадзь, Арсеній, Арцём, Барыс, Вадзім, Валянцін, Валерый, Васіль, Віктар, Віталь, Уладзімір, Уладзіслаў, Вячаслаў, Генадзь, Георгій, Герман, Рыгор, Данііл, Дзяніс, Дзмітрый, Яўген, Ягор, Іван, Ігнат, Ігар, Ілля, Канстанцін, Лаўрэнцій, Леанід, Лука, Макар, Максім, Мацвей, Міхаіл, Мікіта, Мікалай, Алег, Раман, Сямён, Сяргей, Станіслаў, Сцяпан, Фёдар, Эдуард, Юрый, Яраслаў]
male_middle_name: [Аляксандравіч, Аляксеевіч, Альбертавіч, Анатольевіч, Андрэевіч, Антановіч, Аркадзевіч, Арсеньевіч, Арцёмавіч, Барысавіч, Вадзімавіч, Валянцінавіч, Валер'евіч, Васільевіч, Віктаравіч, Вітальевіч, Уладзіміравіч, Уладзіслававіч, Вячаслававіч, Генадзьевіч, Георгіевіч, Германовіч, Рыгоравіч, Данілавіч, Дзянісавіч, Дзмітрыевіч, Яўгеньевіч, Ягоравіч, Іванавіч, Ігнатавіч, Ігаравіч, Ільіча, Канстанцінавіч, Лаўрэнцьевіч, Леанідавіч, Лукіч, Макаравіч, Максімавіч, Мацвеевіч, Міхайлавіч, Нікіціч, Мікалаевіч, Алегавіч, Рамановіч, Сямёнавіч, Сяргеевіч, Станіслававіч, Сцяпанавіч, Фёдаравіч, Эдуардавіч, Юр'евіч, Яраслававіч]
male_last_name: [Смірноў, Іваноў, І. Кузняцоў, Папоў, Сакалоў, Лебедзеў, Казлоў, Новікаў, Марозаў, Пятроў, Ваўкоў, Салаўёў, Васільеў, Зайцаў, Паўлаў, Сямёнаў, Голубеў, Вінаградаў, Багданаў, Вараб'ёў, Фёдараў, Міхайлаў, Бяляеў, Тарасаў, Бялоў, Камароў, Арлоў, Кісялёў, Макараў, Андрэеў, Кавалёў, Ільін, Гусеў, Цітоў, Кузьмін, Кудраўцаў, Баранаў, Кулікоў, Аляксееў, Сцяпанаў, Якаўлеў, Сарокін, Сяргееў, Раманаў, Захараў, Барысаў, Каралеў, Герасімаў, Панамароў, Грыгор'еў, Лазараў, Мядзведзеў, Яршоў, Нікіцін, Собалеў, Рабаў, Палякаў, Кветак, Данілаў, Жукоў, Фралоў, Жураўлёў, Нікалаеў, Крылоў, Максімаў, Сідараў, Осіпаў, Белавусаў, Фядотаў, Дарафееў, Ягораў, Мацвееў, Баброў, Дзмітрыеў, Калінін, Анісімаў, Пеўняў, Антонаў, Цімафееў, Нікіфараў, Весялоў, Філіпаў, Маркаў, Бальшакоў, Суханаў, Міронаў, Шыраеў, Аляксандраў, Канавалаў, Шастакоў, Казакоў, Яфімаў, Дзянісаў, Громаў, Фамін, Давыдаў, Мельнікаў, Шчарбакоў, Бліноў, Калеснікаў, Карпаў, Афанасьеў, Уласаў, Маслаў, Ісакаў, Ціханаў, Аксёнаў, Гаўрылаў, Радзівонаў, Катоў, Гарбуноў, Кудрашоў, Быкаў, Зуеў, Траццякоў, Савельеў, Паноў, Рыбакоў, Сувораў, Абрамаў, Воранаў, Мухін, Архіпаў, Трафімаў, Мартынаў, Емяльянаў, Гаршкоў, Чарноў, Аўчыннікаў, Селязнёў, Панфілаў, Капылоў, Міхееў, Галкін, Назараў, Лабанаў, Лукін, Белякоў, Патапаў, Някрасаў, Хахлоў, Жданаў, Навумаў, Шылаў, Варанцоў, Ермакоў, Драздоў, Ігнацьеў, Савін, Лагінаў, Сафонаў, Капусцін, Кірылаў, Маісееў, Елісееў, Кошалеў, Косцін, Гарбачоў, Арэхаў, Яфрэмаў, Ісаеў, Еўдакімаў, Калашнікаў, Дзікоў, Шкарпэтак, Юдзін, Кулагін, Лапін, Прохараў, Несцераў, Харытонаў, Агафонаў, Мурашак, Ларыёнаў, Федасееў, Зімін, Пахомаў, Шубін, Ігнатаў, Філатаў, Крукаў, Рагоў, Кулакоў, Цярэнцьеў, Малчанаў, Уладзіміраў, Арцем'еў, Гур'еў, Зіноўеў, Грышын, Конанаў, Дзяменцьеў, Сітнікаў, Сіманаў, Мішын, Фадзееў, Камісараў, Мамантаў, Носаў, Гуляеў, Шароў, Усцінаў, Вішнякоў, Яўсееў, Лаўрэнцьеў, Брагін, Канстанцінаў, Карнілаў, Аўдзееў, Зыкаў, Бірукоў, Шарапаў, Ніканаў, Шчукін, Дзячкоў, Адзінцоў, Сазонаў, Якушаў, Красільнікаў, Гардзееў, Самойлаў, Князеў, Бяспалаў, Увараў, Шашкоў, Бабылёў, Даронін, Белазёраў, Ражкоў, Самсонаў, Мяснікоў, Ліхачоў, Бураў, Сысоеў, Фамічоў, Русакоў, Стралкоў, Гушчын, Цяцерын, Колобов, Субоцін, Фокін, Блахін, Селіверстаў, Пестов, Кандрацьеў, Сілін, Меркушев, Лыткін, Тураў]
female_first_name: [Ганна, Алёна, Аляўціна, Аляксандра, Аліна, Ала, Анастасія, Ангеліна, Анжэла, Анжаліка, Антонида, Антаніна, Анфіса, Арына, Валянціна, Валерыя, Варвара, Васіліса, Вера, Вераніка, Вікторыя, Галіна, Дар'я, Яўгенія, Кацярына, Алена, Лізавета, Жанна, Зінаіда, Зоя, Ірына, Кіра, Клаўдзія, Ксенія, Ларыса, Лідзія, Любоў, Людміла, Маргарыта, Марына, Марыя, Надзея, Наталля, Ніна, Аксана, Вольга, Раіса, Рэгіна, Рыма, Святлана, Сафія, Таісія, Тамара, Таццяна, Ульяна, Юлія]
female_middle_name: [Аляксандраўна, Аляксееўна, Альбертаўна, Анатольеўна, Андрэеўна, Антонаўна, Аркадзьеўна, Арсеньеўна, Арцёмаўна, Барысаўна, Вадзімаўна, Валянцінаўна, Валер'еўна, Васільеўна, Віктараўна, Вітальеўна, Уладзіміраўна, Уладзіславаўна, Вячаславаўна, Генадзьеўна, Георгіеўна, Германовна, Рыгораўна, Данииловна, Дзянісаўна, Дзмітрыеўна, Яўгенаўна, Ягораўна, Іванаўна, Ігнацьеўна, Ігараўна, Ільінічна, Канстанцінаўна, Лаўрэнцьеўна, Леанідаўна, Макараўна, Максімаўна, Мацвееўна, Міхайлаўна, Мікітаўна, Мікалаеўна, Алегаўна, Раманаўна, Сямёнаўна, Іванаўна, Станіславаўна, Сцяпанаўна, Фёдараўна, Эдуардаўна, Юр'еўна, Ярославовна]
female_last_name: [Смірнова, Іванова, Кузняцова, Папова, Сакалова, Лебедзева, Казлова, Новікава, Марозава, Пятрова, Волкава, Салаўёва, Васільева, Зайцава, Паўлава, Сямёнава, Голубева, Вінаградава, Багданава, Вараб'ёва, Фёдарава, Міхайлава, Бяляева, Тарасава, Бялова, Камарова, Арлова, Кісялёва, Макарава, Андрэева, Кавалёва, Ільіна, Гусева, Цітова, Кузьміна, Кудраўцава, Баранава, Кулікова, Аляксеева, Сцяпанава, Якаўлева, Сарокіна, Сяргеева, Раманава, Захарава, Барысава, Каралева, Герасімава, Панамарова, Грыгор'ева, Лазарава, Мядзведзева, Яршова, Нікіціна, Собалева, Рабава, Палякова, Цвяткова, Данілава, Жукава, Фралова, Жураўлёва, Мікалаева, Крылова, Максімава, Сідарава, Осіпава, Белавусава, Фядотава, Дарафеева, Ягорава, Матвеева, Баброва, Дзмітрыева, Калініна, Анісімава, Петухова, Антонава, Цімафеева, Нікіфарава, Весялова, Філіпава, Маркава, Бальшакова, Суханава, Міронава, Ширяева, Аляксандрава, Канавалава, Шастакова, Казакова, Яфімава, Дзянісава, Громава, Фаміна, Давыдава, Мельнікава, Шчарбакова, Блінова, Калеснікава, Карпава, Афанасьева, Уласава, Маслава, Ісакава, Ціханава, Аксёнава, Гаўрылава, Радзівонава, Котава, Гарбунова, Кудрашова, Быкава, Зуева, Траццякова, Савельева, Панова, Рыбакова, Суворава, Абрамава, Воранава, Мухіна, Архіпава, Трафімава, Мартынава, Емяльянава, Гаршкова, Чарнова, Аўчыннікава, Селязнёва, Панфілава, Копылова, Міхеева, Галкіна, Назарава, Лабанава, Лукіна, Белякова, Патапава, Някрасава, Хахлова, Жданава, Навумава, Шылава, Варанцова, Ермакова, Драздова, Ігнацьева, Савіна, Логінава, Сафонава, Капусціна, Кірылава, Маісеева, Елісеева, Кошалева, Косціна, Гарбачова, Арэхава, Яфрэмава, Ісаева, Еўдакімава, Калашнікава, Кабанава, Наскова, Юдзіна, Кулагіна, Лапіна, Прохарава, Несцерава, Харытонава, Агафонава, Мураўёва, Ларыёнава, Федасеева, Зіміна, Пахомава, Шубіна, Ігнатава, Філатава, Крукава, Рогава, Кулакова, Цярэнцьева, Малчанава, Уладзімірава, Арцем'ева, Гур'ева, Зіноўева, Грышына, Конанава, Дзяменцьева, Сітнікава, Сіманава, Мішына, Фадзеева, Камісарава, Мамантава, Носава, Гуляева, Шарова, Усцінава, Вішнякова, Яўсеева, Лаўрэнцьева, Брагіна, Канстанцінава, Карнілава, Аўдзеева, Зыкава, Бірукова, Шарапава, Ніканава, Шчукіна, Дзьячкова, Адзінцова, Сазонава, Якушава, Красільнікава, Гардзеева, Самойлава, Князева, Бяспалава, Уварава, Шашкова, Бобылева, Дароніна, Белазёрава, Ражкова, Самсонава, Мяснікова, Ліхачова, Бурава, Сысоева, Фамічова, Русакова, Стралкова, Гушчына, Цяцерына, Колабава, Субоціна, Фокіна, Блахіна, Селіверстава, Пестова, Кандрацьева, Сілін, Меркушева, Лыткіна, Турава]
first_name:
- "#{female_first_name}"
- "#{male_first_name}"
last_name:
- "#{female_last_name}"
- "#{male_last_name}"
name:
- "#{male_first_name} #{male_last_name}"
- "#{male_last_name} #{male_first_name}"
- "#{male_first_name} #{male_middle_name} #{male_last_name}"
- "#{male_last_name} #{male_first_name} #{male_middle_name}"
- "#{female_first_name} #{female_last_name}"
- "#{female_last_name} #{female_first_name}"
- "#{female_first_name} #{female_middle_name} #{female_last_name}"
- "#{female_last_name} #{female_first_name} #{female_middle_name}"
phone_number:
formats: ['+375(##)###-##-##']
commerce:
color: [чырвоны, зялены, сіні, жоўты, барвовы, мятный, зелянява-блакітны, белы, чорны, аранжавы, ружовы, шэры, чырвона-карычневы, фіялетавы, бірузовы, жоўта-карычневы, нябесна блакітны, памяранцава-ружовы, цемна-фіялетавы, орхидный, аліўкавы, фіялетавы, цытрынавы, крэмавы, сіне-фіялетавы, залаты, чырвона-фіялетавы, блакітны, блакітны, ліловы, сярэбраны]
department: ["Кнігі", "Фільмы", "музыка", "гульні", "Электроніка", "кампутары", "Дом", "сад інструмент", "Бакалея", "здароўе", "прыгажосць", "Цацкі", "дзіцячы", "для дзяцей", "Адзенне", "абутак", "ўпрыгожванні", "Спорт", "турызм", "Аўтамабільная", "прамысловая"]
product_name:
adjective: [Маленькі, Эрганамічны, Грубы, Інтэлектуальны, Цудоўны, Казачны, Фантастычны, Практычны, Лоснящийся, Надзвычайны, Велізарны, Здавальняючы, Сінэргетычны, Цяжкі, Лёгкі, Аэрадынамічнае, Трывалы]
material: [Сталёвы, Драўляны, Бетонны, Пластыкавы, Баваўняны, Гранітны, Гумовы, Скураны, Шаўковы, Ваўнянай, Ільняны, Мармуровы, Жалезны, Бронзавы, Медны, Алюмініевы, Папяровы]
product: [Крэсла, Аўтамабіль, Кампутар, Бярэ, Кулон, Стол, Швэдар, Рэмень, Чаравік, Талерка, Нож, Бутэлька, Паліто, Лямпа, Клавіятура, Сумка, Лава, Гадзіннік, Кашалек]
company:
prefix: [ІП, ТАА, ЗАТ, ААТ, НКА, ТСЖ, ОП]
suffix: [Снаб, Торг, Пром, Трейд, Сбыт]
name:
- "#{prefix} #{Name.female_first_name}"
- "#{prefix} #{Name.male_first_name}"
- "#{prefix} #{Name.male_last_name}"
- "#{prefix} #{suffix}#{suffix}"
- "#{prefix} #{suffix}#{suffix}#{suffix}"
- "#{prefix} #{Address.city_name}#{suffix}"
- "#{prefix} #{Address.city_name}#{suffix}#{suffix}"
- "#{prefix} #{Address.city_name}#{suffix}#{suffix}#{suffix}"
weather:
description: ["Ясна","Сонечна","Хмарно з проясненнями","Мінлива хмарність","Переважно хмарно","Пасмурно","Злива","Дощ","Мряка","Грози","Сніг","Мокрий сніг","Град"]
temperature:
celsius: °C
fahrenheit: °F
-24
View File
@@ -1,24 +0,0 @@
# encoding: utf-8
ca-CAT:
faker:
address:
city: [Amposta, Badalona, Barberà del Vallès, Barcelona, Blanes, Calafell, Cambrils, Castellar del Vallès, Castelldefels, Cerdanyola del Vallès, Cornellà de Llobregat, El Masnou, El Prat de Llobregat, El Vendrell, Esparreguera, Esplugues de Llobregat, Figueres, Gavà, Girona, Granollers, Igualada, Lleida, Lloret de Mar, Manlleu, Manresa, Martorell, Mataró, Molins de Rei, Mollet del Vallès, Montcada i Reixac, Olesa de Montserrat, Olot, Palafrugell, Pineda de Mar, Premià de Mar, Reus, Ripollet, Rubí, Sabadell, Salou, Salt, Sant Adrià de Besòs, Sant Andreu de la Barca, Sant Boi de Llobregat, Sant Cugat del Vallès, Sant Feliu de Guíxols, Sant Feliu de Llobregat, Sant Joan Despí, Sant Pere de Ribes, Sant Vicenç dels Horts, Santa Coloma de Gramenet, Santa Perpètua de Mogoda, Sitges, Tarragona, Terrassa, Tortosa, Valls, Vic, Vila-seca, Viladecans, Vilafranca del Penedès, Vilanova i la Geltrú]
country: [Afganistan, Albània, Alemanya, Algèria, Andorra, Angola, Antigua i Barbuda, Aràbia Saudita, Argentina, Armènia, Austràlia, Àustria, Azerbaidjan, Bahames, Bahrain, Bangla Desh, Barbados, Bèlgica, Belize, Benín, Bhutan, Bielorússia, Bolívia, Bòsnia i Hercegovina, Botswana, Brasil, Brunei, Bulgària, Burkina Faso, Burundi, Cambodja, Camerun, Canadà, Cap Verd, Catalunya, Ciutat del Vaticà, Colòmbia, Comores, Corea del Nord, Corea del Sud, Costa d''Ivori, Costa Rica, Croàcia, Cuba, Dinamarca, Djibouti, Dominica, Egipte, El Salvador, Emirats Àrabs Units, Equador, Eritrea, Eslovàquia, Eslovènia, Espanya, Estats Federats de Micronèsia, Estats Units, Estònia, Etiòpia, Fiji, Filipines, Finlàndia, França, Gabon, Gàmbia, Geòrgia, Ghana, Grècia, Grenada, Guatemala, Guinea, Guinea Bissau, Guinea Equatorial, Guyana, Haití, Hondures, Hongria, Iemen, Illes Marshall, Índia, Indonèsia, Iran, Iraq, Islàndia, Israel, Itàlia, Jamaica, Japó, Jordània, Kazakhstan, Kenya, Kirguizistan, Kiribati, Kuwait, Laos, Lesotho, Letònia, Líban, Libèria, Líbia, Liechtenstein, Lituània, Luxemburg, Macedònia, Madagascar, Malàisia, Malawi, Maldives, Mali, Malta, Marroc, Maurici, Mauritània, Mèxic, Moçambic, Moldàvia, Mònaco, Mongòlia, Myanmar, Namíbia, Nauru, Nepal, Nicaragua, Níger, Nigèria, Noruega, Nova Zelanda, Oman, Països Baixos, Pakistan, Palau, Panamà, Papua Nova Guinea, Paraguai, Perú, Polònia, Portugal, Qatar, Regne Unit, República Centreafricana, República d''Irlanda, República de la Xina, República del Congo, República Democràtica del Congo, República Dominicana, República Popular de la Xina, República Txeca, Romania, Rússia, Rwanda, Saint Kitts i Nevis, Saint Lucia, Saint Vincent i les Grenadines, Salomó, Samoa Occidental, San Marino, São Tomé i Príncipe, Senegal, Sèrbia i Montenegro, Seychelles, Sierra Leone, Singapur, Síria, Somàlia, Sri Lanka, Sud-àfrica, Sudan, Sudan del Sud, Suècia, Suïssa, Surinam, Swazilàndia, Tadjikistan, Tailàndia, Tanzània, Timor Oriental, Togo, Tonga, Trinitat i Tobago, Tunísia, Turkmenistan, Turquia, Tuvalu, Txad, Ucraïna, Uganda, Uruguai, Uzbekistan, Vanuatu, Veneçuela, Vietnam, Xile, Xipre, Zàmbia, Zimbabwe]
building_number: [' s/n.', ', #', ', ##', ' #', ' ##']
street_suffix: [Avinguda, Baixada, Barranc, Barri, Carrer, Camí, Carretera, Coll, Passeig, Plaça, Polígon, Rambla, Riera, Ronda, Torrent, Travessia]
secondary_address: ['Esc. ###', 'Porta ###']
postcode: ['#####']
province: [Barcelona, Girona, Lleida, Tarragona]
state: [l''Alt Camp, l''Alt Empordà, l''Alt Penedès, l''Alt Urgell, l''Alta Ribagorça, l''Anoia, el Bages, el Baix Camp, el Baix Ebre, el Baix Empordà, el Baix Llobregat, el Baix Penedès, el Barcelonès, el Berguedà, la Cerdanya, la Conca de Barberà, el Garraf, les Garrigues, la Garrotxa, el Gironès, el Maresme, el Moianès, el Montsià, la Noguera, Osona, el Pallars Jussà, el Pallars Sobirà, el Pla d''Urgell, el Pla de l''Estany, el Priorat, la Ribera d''Ebre, el Ripollès, la Segarra, el Segrià, la Selva, el Solsonès, el Tarragonès, la Terra Alta, l''Urgell, la Val d''Aran, el Vallès Occidental, el Vallès Oriental]
street_name:
- "#{street_suffix} #{Name.first_name}"
- "#{street_suffix} #{Name.first_name} #{Name.last_name}"
- "#{street_suffix} #{country}"
street_address:
- "#{street_name}#{building_number}"
- "#{street_name}#{building_number} #{secondary_address}"
default_country: [Catalunya]
phone_number:
formats: ['9##-###-###', '9##.###.###', '9## ### ###', '9########']
cell_phone:
formats: ['6##-###-###', '6##.###.###', '6## ### ###', '6########']
-25
View File
@@ -1,25 +0,0 @@
# encoding: utf-8
ca:
faker:
name:
female_first_name: [Abellera, Abril, Ada, Adaleda, Adaleis, Àgata, Agnès, Aida, Aidé, Ailo, Aina, Alamanda, Alba, Aledis, Alfreda, Alícia, Alix, Almodis, Aloma, Anaïs, Anastàsia, Àneu, Àngela, Àngels, Anna, Antiga, Antònia, Arcàngela, Ardoina, Ariadna, Arlet, Arsenda, Arsendis, Assumpció, Aura, Àurea, Aurembiaix, Aurora, Bàrbara, Bartomeva, Beatriu, Benvinguda, Betlem, Bibianna, Blanca, Blau, Bondia, Bruguers, Brugués, Bruna, Brunisenda, Candela, Carla, Carlota, Carme, Carolina, Casilda, Caterina, Cèlia, Chaymae, Cinta, Cior, Cira, Cixilona, Clotilde, Constança, Cristina, Dalila, Dolça, Dolors, Duna, Elena, Èlia, Elionor, Elisabet, Elisenda, Elvira, Emma, Enriqueta, Escarlata, Esclarmunda, Estel, Estel·la, Ester, Eugènia, Eulàlia, Fe, Ferrera, Foix, Gal·la, Gemma, Georgina, Glòria, Gotlana, Gotruda, Gueralda, Guillelma, Guillema, Guisla, Helena, Ia, Immaculada, Inda, Iolanda, Irene, Isaura, Isona, Ivet, Jacina, Jara, Joana, Jordina, Judit, Judith, Júlia, Laia, Laura, Lerenna, Letgarda, Letícia, Lia, Lídia, Llúcia, Lluïsa, Llura, Mafalda, Mar, Margalida, Maria, Mariona, Marta, Martina, Mercè, Meritxell, Mireia, Mònica, Montserrat, Natàlia, Nati, Neus, Nit, Noa, Noemí, Norma, Nura, Núria, Olga, Oliva, Pagesa, Patrícia, Paula, Peregrina, Peronella, Pilar, Ponça, Queralt, Quima, Ramona, Raquel, Remei, Riquilda, Rita, Romea, Rosa, Rosalia, Roser, Rosó, Rovella, Rut, Sança, Sancia, Sancina, Saurina, Selma, Senda, Siara, Sibil·la, Sibilia, Silvana, Sílvia, Sira, Sònia, Suavas, Suevis, Tamar, Teia, Timburguera, Tresa, Tuixén, Tura, Urgell, Úrsula, Valèria, Vanessa, Verònica, Victòria, Vinyet, Violant, Violeta, Virgínia, Xènia, Zenaida, Zoa]
female_prefix: [Sra.]
male_first_name: [Aaró, Aaron, Abacuc, Abba, Abel, Abelard, Abraham, Acfred, Adam, Adrià, Albà, Albert, Aleix, Aleu, Àlex, Álex, Alexandre, Alfons, Alfred, Àlvar, Amadeu, Amador, Amalric, Amand, Anastasi, Andreu, Àngel, Aniol, Antoni, Apel·les, Arcadi, Armand, Armengol, Arnau, Artal, Artur, August, Àxel, Bartolí, Bartolomeu, Benet, Bert, Biel, Blai, Blanc, Boi, Bonaventura, Borja, Borràs, Borrell, Bru, Carbó, Carles, Castelló, Cèsar, Cesc, Constantí, Cristià, Cugat, Damià, Daniel, David, Dídac, Domènec, Donat, Drac, Eduard, Egidi, Elm, Eloi, Enric, Èric, Ermengol, Ernest, Estanislau, Eudald, Feliu, Fèlix, Ferriol, Fortià, Garbí, Gastó, Gaufred, Gausbert, Gausfred, Gelabert, Genís, Gerai, Gerald, Gerard, Germà, Gonçal, Grau, Gregori, Guerau, Guifré, Guim, Guiu, Gustau, Habacuc, Hèctor, Hug, Ignasi, Iol, Isaac, Isma, Iu, Ivan, Izan, Joan, Joel, Jofre, Jonàs, Jordi, Josefí, Josep, Julià, Kilian, Laureà, Llàtzer, Lledó, Lleó, Lluc, Llucià, Lluis, Llull, Llum, Luard, Magí, Manel, Marc, Marçal, Margarit, Maricel, Marimon, Martí, Mateu, Maurici, Milos, Miquel, Miró, Mirt, Modest, Natan, Nèstor, Nil, Olaf, Olau, Oleguer, Oliver, Oriol, Oscar, Òscar, Ot, Ota, Otger, Palau, Pau, Peris, Pol, Quel, Quer, Quim, Quintí, Quirze, Quixot, Radulf, Rafael, Rafaela, Raimon, Ramir, Raül, Rauric, Renat, Rispau, Robert, Roc, Roderic, Roger, Rosseyó, Rubén, Rutger, Samuel, Sanç, Santiago, Saoni, Serafí, Sergi, Sever, Severí, Sibil, Silvà, Siset, Sunyer, Telm, Uguet, Uriel, Valentí, Valeri, Vicenç, Víctor, Vidal, Xavier, Zacaries, Zenon, Zotan]
male_prefix: [Sr.]
last_name: [Adell, Albert, Aubert, Alemany, Armengol, Armengou, Amengual, Mengual, Balasch, Bonastre, Bosch, Batallé, Cabot, Calafell, Camprubí, Cardona, Casajuana, Casajoana, Canudas, Codina, Codines, Codinas, Comas, Comes, Coma, Danés, Danès, Estruch, Fabré, Febrer, Ferrer, Ferré, Farré, Ferrés, Farrés, Fortuny, Gasull, Gassull, Grau, Garau, Gual, Gol, Guasch, Gasch, Guarch, Guasp, Jordà, Llach, Llobet, Magrans, Maymó, Maimó, Mas, Massot, Masot, Melis, Miquel, Molas, Moragues, Moragas, Nàcher, Nadal, de Nadal, Oriol, Pitarch, Pitart, Pons, Prat, Raga, Reixach, Rexach, Riera, Reixachs, Rexachs, Ricart, Robert, Rubert, Roig, Roma, Ros, Sabater, Sabaté, Sabatés, Sabaters, Sala, Salom, Santacana, Sentmartí, Serra, Soler, Solé, Sulé, Taberner, Taberné, Taverner, Taverné, Tió, Thió, Vidal, Vives]
first_name:
- "#{female_first_name}"
- "#{male_first_name}"
name:
- "#{female_prefix} #{female_first_name} #{last_name} #{last_name}"
- "#{female_first_name} #{last_name} i #{last_name}"
- "#{female_first_name} #{last_name} #{last_name}"
- "#{female_first_name} #{last_name} #{last_name}"
- "#{female_first_name} #{last_name} #{last_name}"
- "#{male_prefix} #{male_first_name} #{last_name} #{last_name}"
- "#{male_first_name} #{last_name} i #{last_name}"
- "#{male_first_name} #{last_name} #{last_name}"
- "#{male_first_name} #{last_name} #{last_name}"
- "#{male_first_name} #{last_name} #{last_name}"
color:
name: [aiguamarina, albercoc, amarant, ambre, ametista, atzur, beix, bistre, blanc, blat, blau, blau cel, blau fosc, blau marí, blau reial, blauet, bronze, camussa, canyella, caqui, cardenal, carmesí, carmí, carnació, castany rogenc, celadont, ceruli, chartreuse, cian, cirera, corall, coure, crema, escarlata, granat, gris, gris fosc, groc, lavanda, lila, llima, magenta, malva, marró, morat, ocre, or, orquídia, panotxa, plata, porpra, préssec, pruna, verd, verd maragda, verd oliva, verd veronès, vermell, vermell fosc, vermelló, vinca, violat, vori]
-69
View File
@@ -1,69 +0,0 @@
da-DK:
faker:
address:
city_prefix: [Nord, Birke, Ny, Frederiks, Lille, Vær, Ring, Støv, Sven, Munke, Kerte, Horn, Aa, Bør, Otte, Had, Vi, Rud, Bro, Vide, Jyde, Lange]
city_suffix: [by, hus, borg, holm, bjerg, lund, bro, bæk, løse, slev, rød, å, sør, skov, slet, værk, strup, købing, sted, sten, kro, toft, ring, vig, bo]
country: [Rusland, Canada, Kina, USA, Brasilien, Australien, Indien, Argentina, Kasakhstan, Algeriet, Den Demokratiske Republik Congo, Danmark, Færøerne, Grønland, Saudi-Arabien, Mexico, Indonesien, Sudan, Libyen, Iran, Mongoliet, Peru, Chad, Niger, Angola, Mali, Sydafrika, Colombia, Etiopien, Bolivia, Mauretanien, Egypten, Tanzania, Nigeria, Venezuela, Namibia, Pakistan, Mocambique, Tyrkiet, Chile, Zambia, Marokko, Vestsahara, Burma, Afghanistan, Somalia, Den Centralafrikanske Republik, Sydsudan, Ukraine, Botswana, Madagaskar, Kenya, Frankrig, Fransk Guyana, Yemen, Thailand, Spanien, Turkmenistan, Cameroun, Papua Ny Guinea, Sverige, Usbekistan, Irak, Paraguay, Zimbabwe, Japan, Tyskland, Congo, Finland, Malaysia, Vietnam, Norge, Svalbard, Jan Mayen, Elfenbenskysten, Polen, Italien, Filippinerne, Ecuador, Burkina Faso, Nya Zealand, Gabon, Guinea, Storbritannien, Ghana, Rumænien, Laos, Uganda, Guyana, Oman, Hviderusland, Kirgisistan, Senegal, Syrien, Cambodja, Uruguay, Tunesien, Surinam, Nepal, Bangladesh, Tadsjikistan, Grækenland, Nicaragua, Eritrea, Nordkorea, Malawi, Benin, Honduras, Liberia, Bulgarien, Cuba, Guatemala, Island, Sydkorea, Ungarn, Portugal, Jordan, Serbien, Aserbajdsjan, Østrig, De Forenede Arabiske Emirater, Tjekkiet, Panama, Sierra Leone, Irland, Georgien, Sri Lanka, Litauen, Letland, Togo, Kroatien, Bosnien og Hercegovina, Costa Rica, Slovakiet, Den Dominikanske republik, Bhutan, Estland, Danmark, Færøerne, Grønland, Nederlænderne, Schweiz, Guinea-Bissau, Taiwan, Moldova, Belgien, Lesotho, Armenien, Albanien, Salomonøerne, Ækvatorialguinea, Burundi, Haiti, Rwanda, Makedonien, Djibouti, Belize, Israel, El Salvador, Slovenien, Fiji, Kuwait, Swaziland, Østtimor, Montenegro, Bahamas, Vanuatu, Qatar, Gambia, Jamaica, Kosovo, Libanon, Cypern, Brunei, Trinidad og Tobago, Kap Verde, Samoa, Luxembourg, Comorerne, Mauritius, São Tomé og Principe, Kiribati, Dominica, Tonga, Mikronesien, Singapore, Bahrain, Saint Lucia, Andorra, Palau, Seychellerne, Antigua og Barbuda, Barbados, Saint Vincent og Grenadinerne, Grenada, Malta, Maldiverne, Saint Kitts og Nevis, Marshalløerne, Liechtenstein, San Marino, Tuvalu, Nauru, Monaco, Vatikanstaten]
common_street_suffix: [vej, gade]
street_prefix: [Vester, Øster, Nørre, Over, Under]
street_root: [Lærke, Birke, Vinkel, Vibe, Mølle, Ring, Skole, Skov, Ny, Ege, Sol, Industri, Kirke, Park, Strand, Eng]
street_suffix: [vej, gade, gyde, allé]
state: [Region Nordjylland, Region Midtjylland, Region Syddanmark, Region Hovedstaden, Region Sjælland]
city:
- "#{city_prefix}#{city_suffix}"
street_name:
- "#{street_root}#{street_suffix}"
- "#{street_prefix} #{street_root}#{street_suffix}"
- "#{Name.first_name}#{common_street_suffix}"
- "#{Name.last_name}#{common_street_suffix}"
postcode: ['####']
building_number: ['###', '##', '#']
secondary_address: ['Hus ###', '# TH.', '#TV.', '# MF.', '# ST.']
street_address:
- "#{street_name} #{building_number}"
default_country: [Danmark]
company:
suffix: ["A/S", "ApS", "I/S", "IVS", "Holding", "SMBA", "K/S", "SPW"]
name:
- "#{Name.last_name} #{suffix}"
- "#{Name.last_name}-#{Name.last_name}"
- "#{Name.last_name}, #{Name.last_name} #{suffix}"
internet:
domain_suffix: [dk, nu, com]
name:
first_name: [Peter, Jens, Lars, Michael, Henrik, Thomas, Søren, Jan, Christian, Niels, Anne, Kirsten, Hanne, Mette, Anna, Helle, Susanne, Lene, Maria, Marianne]
last_name: [Nielsen, Jensen, Hansen, Pedersen, Andersen, Christensen, Larsen, Sørensen, Rasmussen, Jørgensen]
prefix: ["Dr.", "Prof.", "Cand.mag.", "Cand.jur."]
title:
descriptor: [Leder, Senior, Fremtid, Produkt, National, Regional, Distrikt, Central, Global, Kunde, Investor, Dynamic, International, Legacy, Forward, Intern, HR, Direktør, Rektor]
level: [Solutions, Program, Brand, Sikkerhed, Research, Marketing, Directives, Implementering, Integration, Funktionalitet, Respons, Paradigme, Taktik, Identitet, Markeder, Gruppe, Division, Applikationer, Optimering, Operationer, Infrastruktur, Intranet, Kommunikation, Web, Branding, Kvalitet, Kontrol, Mobilitet, Regnskab, Data, Kreativ, Konfiguration, Interaktioner, Faktorer, Anvendelighed, Metrik]
job: [Supervisor, Officer, Manager, Ingeniør, Specialist, Direktør, Koordinator, Administrator, Arkitekt, Analytiker, Designer, Planner, Tekniker, Udvikler, Producer, Konsultant, Assistant, Agent, Tillidsrepræsentant, Strateg]
name:
- "#{first_name} #{last_name}"
- "#{prefix} #{first_name} #{last_name}"
phone_number:
formats:
- '## ## ## ##'
- '##-##-##-##'
cell_phone:
formats:
- '20 ## ## ##'
- '30 ## ## ##'
- '40 ## ## ##'
commerce:
color: [hvid, sølv, grå, sort, rød, grøn, blå, gul, lilla, guld, brun, rosa]
department: ["Bøger", "Film", "Musik", "Spil", "Elektronik", "Computere", "Hus", "Have", "Værktøj", "Fødevarer", "Helse", "Skønhed", "Legetøj", "Tøj", "Sko", "Smykker", "Sport"]
product_name:
adjective: [Lille, Ergonomisk, Robust, Intelligent, Sød, Utrolig, Fantastisk, Praktisk, Slank, Fed, Enorm, Enkel, Tung, Let, Multianvendelig, Udholdende]
material: [Stål, Metal, Træ, Beton, Plastic, Bomuld, Granit, Gummi, Latex, Læder, Silke, Uld, Ruskind, Linned, Marmor, Jern, Bronze, Kobber, Messing, Aluminium, Papir]
product: [Stol, Bil, Computer, Buks, Trøje, Bord, Hat, Tallerken, Kniv, Flaske, Jakke, Lampe, Tastatur, Taske, Bænk, Ur, Pung]
name:
- "#{Address.city} #{suffix}"
File diff suppressed because one or more lines are too long
-19
View File
@@ -1,19 +0,0 @@
de-CH:
faker:
address:
country_code: [CH, CH, CH, DE, AT, US, LI, US, HK, VN]
postcode: ['1###', '2###', '3###', '4###', '5###', '6###', '7###', '8###', '9###']
default_country: [Schweiz]
company:
suffix: [AG, GmbH, und Söhne, und Partner, "& Co.", Gruppe, LLC, Inc.]
name:
- "#{Name.last_name} #{suffix}"
- "#{Name.last_name}-#{Name.last_name}"
- "#{Name.last_name}, #{Name.last_name} und #{Name.last_name}"
internet:
domain_suffix: [com, net, biz, ch, de, li, at, ch, ch]
phone_number:
formats: ['0800 ### ###', '0800 ## ## ##', '0## ### ## ##', '0## ### ## ##', '+41 ## ### ## ##', '0900 ### ###', '076 ### ## ##', '+4178 ### ## ##', '0041 79 ### ## ##']
File diff suppressed because one or more lines are too long
-26
View File
@@ -1,26 +0,0 @@
# Australia formatted data types
# Using Top 200 Australian baby names of 2010
# 286 Surnames familiar to Australian population
en-AU:
faker:
name:
first_name: [William, Jack, Oliver, Joshua, Thomas, Lachlan, Cooper, Noah, Ethan, Lucas, James, Samuel, Jacob, Liam, Alexander, Benjamin, Max, Isaac, Daniel, Riley, Ryan, Charlie, Tyler, Jake, Matthew, Xavier, Harry, Jayden, Nicholas, Harrison, Levi, Luke, Adam, Henry, Aiden, Dylan, Oscar, Michael, Jackson, Logan, Joseph, Blake, Nathan, Connor, Elijah, Nate, Archie, Bailey, Marcus, Cameron, Jordan, Zachary, Caleb, Hunter, Ashton, Toby, Aidan, Hayden, Mason, Hamish, Edward, Angus, Eli, Sebastian, Christian, Patrick, Andrew, Anthony, Luca, Kai, Beau, Alex, George, Callum, Finn, Zac, Mitchell, Jett, Jesse, Gabriel, Leo, Declan, Charles, Jasper, Jonathan, Aaron, Hugo, David, Christopher, Chase, Owen, Justin, Ali, Darcy, Lincoln, Cody, Phoenix, Sam, John, Joel, Isabella, Ruby, Chloe, Olivia, Charlotte, Mia, Lily, Emily, Ella, Sienna, Sophie, Amelia, Grace, Ava, Zoe, Emma, Sophia, Matilda, Hannah, Jessica, Lucy, Georgia, Sarah, Abigail, Zara, Eva, Scarlett, Jasmine, Chelsea, Lilly, Ivy, Isla, Evie, Isabelle, Maddison, Layla, Summer, Annabelle, Alexis, Elizabeth, Bella, Holly, Lara, Madison, Alyssa, Maya, Tahlia, Claire, Hayley, Imogen, Jade, Ellie, Sofia, Addison, Molly, Phoebe, Alice, Savannah, Gabriella, Kayla, Mikayla, Abbey, Eliza, Willow, Alexandra, Poppy, Samantha, Stella, Amy, Amelie, Anna, Piper, Gemma, Isabel, Victoria, Stephanie, Caitlin, Heidi, Paige, Rose, Amber, Audrey, Claudia, Taylor, Madeline, Angelina, Natalie, Charli, Lauren, Ashley, Violet, Mackenzie, Abby, Skye, Lillian, Alana, Lola, Leah, Eve, Kiara]
last_name: [Smith, Jones, Williams, Brown, Wilson, Taylor, Johnson, White, Martin, Anderson, Thompson, Nguyen, Thomas, Walker, Harris, Lee, Ryan, Robinson, Kelly, King, Davis, Wright, Evans, Roberts, Green, Hall, Wood, Jackson, Clarke, Patel, Khan, Lewis, James, Phillips, Mason, Mitchell, Rose, Davies, Rodriguez, Cox, Alexander, Garden, Campbell, Johnston, Moore, Smyth, O'neill, Doherty, Stewart, Quinn, Murphy, Graham, Mclaughlin, Hamilton, Murray, Hughes, Robertson, Thomson, Scott, Macdonald, Reid, Clark, Ross, Young, Watson, Paterson, Morrison, Morgan, Griffiths, Edwards, Rees, Jenkins, Owen, Price, Moss, Richards, Abbott, Adams, Armstrong, Bahringer, Bailey, Barrows, Bartell, Bartoletti, Barton, Bauch, Baumbach, Bayer, Beahan, Beatty, Becker, Beier, Berge, Bergstrom, Bode, Bogan, Borer, Bosco, Botsford, Boyer, Boyle, Braun, Bruen, Carroll, Carter, Cartwright, Casper, Cassin, Champlin, Christiansen, Cole, Collier, Collins, Connelly, Conroy, Corkery, Cormier, Corwin, Cronin, Crooks, Cruickshank, Cummings, D'amore, Daniel, Dare, Daugherty, Dickens, Dickinson, Dietrich, Donnelly, Dooley, Douglas, Doyle, Durgan, Ebert, Emard, Emmerich, Erdman, Ernser, Fadel, Fahey, Farrell, Fay, Feeney, Feil, Ferry, Fisher, Flatley, Gibson, Gleason, Glover, Goldner, Goodwin, Grady, Grant, Greenfelder, Greenholt, Grimes, Gutmann, Hackett, Hahn, Haley, Hammes, Hand, Hane, Hansen, Harber, Hartmann, Harvey, Hayes, Heaney, Heathcote, Heller, Hermann, Hermiston, Hessel, Hettinger, Hickle, Hill, Hills, Hoppe, Howe, Howell, Hudson, Huel, Hyatt, Jacobi, Jacobs, Jacobson, Jerde, Johns, Keeling, Kemmer, Kessler, Kiehn, Kirlin, Klein, Koch, Koelpin, Kohler, Koss, Kovacek, Kreiger, Kris, Kuhlman, Kuhn, Kulas, Kunde, Kutch, Lakin, Lang, Langworth, Larkin, Larson, Leannon, Leffler, Little, Lockman, Lowe, Lynch, Mann, Marks, Marvin, Mayer, Mccullough, Mcdermott, Mckenzie, Miller, Mills, Monahan, Morissette, Mueller, Muller, Nader, Nicolas, Nolan, O'connell, O'conner, O'hara, O'keefe, Olson, O'reilly, Parisian, Parker, Quigley, Reilly, Reynolds, Rice, Ritchie, Rohan, Rolfson, Rowe, Russel, Rutherford, Sanford, Sauer, Schmidt, Schmitt, Schneider, Schroeder, Schultz, Shields, Smitham, Spencer, Stanton, Stark, Stokes, Swift, Tillman, Towne, Tremblay, Tromp, Turcotte, Turner, Walsh, Walter, Ward, Waters, Weber, Welch, West, Wilderman, Wilkinson, Williamson, Windler, Wolf]
company:
suffix: [Pty Ltd, and Sons, Corp, Group, Brothers, Partners]
internet:
domain_suffix: [com.au, com, net.au, net, org.au, org]
address:
state_abbr: [NSW, QLD, NT, SA, WA, TAS, ACT, VIC]
state: [New South Wales, Queensland, Northern Territory, South Australia, Western Australia, Tasmania, Australian Capital Territory, Victoria]
postcode: ['0###', '2###', '3###', '4###', '5###', '6###', '7###']
building_number: ['####', '###', '##']
street_suffix: [Avenue, Boulevard, Circle, Circuit, Court, Crescent, Crest, Drive, Estate Dr, Grove, Hill, Island, Junction, Knoll, Lane, Loop, Mall, Manor, Meadow, Mews, Parade, Parkway, Pass, Place, Plaza, Ridge, Road, Run, Square, Station St, Street, Summit, Terrace, Track, Trail, View Rd, Way]
default_country: [Australia]
phone_number:
formats: ['0# #### ####', '+61 # #### ####', '+61 4## ### ###'] #iOS AUS phone formats
cell_phone:
formats: ['04##-###-###', '(0) 4##-###-###', '04## ### ###', '04########', '04## ## ## ##']
team:
sport: ['basketball', 'football', 'footy', 'netball', 'rugby']
-4
View File
@@ -1,4 +0,0 @@
en-BORK:
faker:
lorem:
words: [Boot, I, Nu, Nur, Tu, Um, a, becoose-a, boot, bork, burn, chuuses, cumplete-a, cun, cunseqooences, curcoomstunces, dee, deeslikes, denuoonceeng, desures, du, eccuoont, ectooel, edfuntege-a, efueeds, egeeen, ell, ere-a, feend, foolt, frum, geefe-a, gesh, greet, heem, heppeeness, hes, hoo, hoomun, idea, ifer, in, incuoonter, injuy, itselff, ixcept, ixemple-a, ixerceese-a, ixpleeen, ixplurer, ixpuoond, ixtremely, knoo, lebureeuoos, lufes, meestekee, mester-booeelder, moost, mun, nu, nut, oobteeen, oocceseeunelly, ooccoor, ooff, oone-a, oor, peeen, peeenffool, physeecel, pleesoore-a, poorsooe-a, poorsooes, preeesing, prucoore-a, prudooces, reeght, reshunelly, resooltunt, sume-a, teecheengs, teke-a, thees, thet, thuse-a, treefiel, troot, tu, tueel, und, undertekes, unnuyeeng, uny, unyune-a, us, veell, veet, ves, vheech, vhu, yuoo, zee, zeere-a]
-14
View File
@@ -1,14 +0,0 @@
en-CA:
faker:
address:
postcode: /[A-CEJ-NPR-TVXY][0-9][A-CEJ-NPR-TV-Z] ?[0-9][A-CEJ-NPR-TV-Z][0-9]/
state: [Alberta, British Columbia, Manitoba, New Brunswick, Newfoundland and Labrador, Nova Scotia, Northwest Territories, Nunavut, Ontario, Prince Edward Island, Quebec, Saskatchewan, Yukon]
state_abbr: ["AB", "BC", "MB", "NB", "NL", "NS", "NU", "NT", "ON", "PE", "QC", "SK", "YT"]
default_country: [Canada]
internet:
free_email: [gmail.com, yahoo.ca, hotmail.com]
domain_suffix: [ca, com, biz, info, name, net, org]
phone_number:
formats: ['###-###-####', '(###)###-####', '###.###.####', '1-###-###-####', '###-###-#### x###', '(###)###-#### x###', '1-###-###-#### x###', '###.###.#### x###', '###-###-#### x####', '(###)###-#### x####', '1-###-###-#### x####', '###.###.#### x####', '###-###-#### x#####', '(###)###-#### x#####', '1-###-###-#### x#####', '###.###.#### x#####']
-13
View File
@@ -1,13 +0,0 @@
en-GB:
faker:
address:
postcode: /[A-PR-UWYZ]([A-HK-Y][0-9][ABEHMNPRVWXY0-9]?|[0-9][ABCDEFGHJKPSTUW0-9]?) [0-9][ABD-HJLNP-UW-Z]{2}/
county: [Avon, Bedfordshire, Berkshire, Borders, Buckinghamshire, Cambridgeshire, Central, Cheshire, Cleveland, Clwyd, Cornwall, County Antrim, County Armagh, County Down, County Fermanagh, County Londonderry, County Tyrone, Cumbria, Derbyshire, Devon, Dorset, Dumfries and Galloway, Durham, Dyfed, East Sussex, Essex, Fife, Gloucestershire, Grampian, Greater Manchester, Gwent, Gwynedd County, Hampshire, Herefordshire, Hertfordshire, Highlands and Islands, Humberside, Isle of Wight, Kent, Lancashire, Leicestershire, Lincolnshire, Lothian, Merseyside, Mid Glamorgan, Norfolk, North Yorkshire, Northamptonshire, Northumberland, Nottinghamshire, Oxfordshire, Powys, Rutland, Shropshire, Somerset, South Glamorgan, South Yorkshire, Staffordshire, Strathclyde, Suffolk, Surrey, Tayside, Tyne and Wear, Warwickshire, West Glamorgan, West Midlands, West Sussex, West Yorkshire, Wiltshire, Worcestershire]
uk_country: [England, Scotland, Wales, Northern Ireland]
default_country: [England, Scotland, Wales, Northern Ireland]
internet:
domain_suffix: [co.uk, com, biz, info, name]
phone_number:
formats: ['01#### #####', '01### ######', '01#1 ### ####', '011# ### ####', '02# #### ####', '03## ### ####', '055 #### ####', '056 #### ####', '0800 ### ####', '08## ### ####', '09## ### ####', '016977 ####', '01### #####', '0500 ######', '0800 ######']
cell_phone:
formats: ['074## ######', '075## ######', '076## ######', '077## ######', '078## ######', '079## ######']
File diff suppressed because one or more lines are too long
-41
View File
@@ -1,41 +0,0 @@
en-MS:
faker:
name:
prefix: [Dato, Datin]
malay_male_first_name: [Abu, Ahmad, Malik, Osman, Abdullah, Abu Bakar, Azuan, Sulaiman, Daud, Azizi, Jaafar]
malay_female_first_name: [Siti, Aminah, Aiza, Hajar, Sofia, Dahlia, Akma, Nur, Sariha, Syazana, Nuratika, Farah]
chinese_male_first_name: [Jin Quan, Wen Jun, Jun Jie, Cheng Han, Tze-Kwang, Jin Leong, Zi Liang, Zhi Ren, Jin Quan, Wen Jun, Chee Hin, Guo Jun, Kai Jie, Kun Qiang,Jun Kiat, Yong Zheng, Yong Jun, Chit Boon, You Ren, Wen Zhong, Yang Shun, Qi Guang, Kang Soon, Wee Heng, Kah Yang, Siew Beng, Jia Woei, Chean Meng, Wai Kay, Keng Hua, Yew Meng, Cheng Wen, Jiun Wei, Yee Sian, Shao Hong, Bin Shen, Wing Yiu, Ee Hong, Yu Pyn, Yong Sheng, Jun Peng, Jia Jie, Guang Yi, Si Heng, Wei Hou, Kang Sheng, Hong Ern, Jia Liang, Wei Lip, Wee Chen, Wee Leng, Yu Xi, Ming Yang, Wen Hao, Siang Meng, Mong Li, Ghim Huat, Jun Yi, Jie Kai, Zhiming, Wei Jie, Teng Qing, Wei Jian, Wei Kwan, Chee Chin]
chinese_male_last_name: [Tan, Lim, Lee, Ng, Ong, Wong, Goh, Chua, Chan, Koh, Teo, Ang, Yeo, Tay, Ho, Low]
chinese_female_first_name: [Xiu Yi, Wai Teng, Sing Yee, Jing Yi, Jia Yee, Jia Xuan, Shu En, Pei Ying, Pei Yu, Pih Foung, Li-ann, Shi Xuan, Yi Xuan, Shu En, Yi Xin, Hui Juan, Yu En, Yihui, Xin Yi, Yun Xuan, Xuan Xuan]
first_name:
- "#{malay_male_first_name}"
- "#{malay_female_first_name}"
- "#{chinese_male_first_name}"
- "#{chinese_female_first_name}"
name:
- "#{malay_male_first_name} bin #{malay_male_first_name}"
- "#{malay_female_first_name} binti #{malay_male_first_name}"
- "#{chinese_male_last_name} #{chinese_male_first_name}"
- "#{chinese_female_first_name} #{chinese_male_first_name}"
- "#{prefix} #{malay_male_first_name} bin #{malay_male_first_name}"
- "#{prefix} #{malay_female_first_name} binti #{malay_male_first_name}"
- "#{prefix} #{chinese_male_last_name} #{chinese_male_first_name}"
- "#{prefix} #{chinese_female_first_name} #{chinese_male_first_name}"
address:
city_name: [Subang Jaya, Kuala Lumpur, Johor Bahru, Ipoh, Klang, Seberang Perai, Ampang, Georgetown, Gombak, Kuching, Shah Alam, Seremban, Petaling Jaya, Cheras, Bandaraya Melaka, Kota Bharu, Kota Kinabalu, Kuantan, Sungai Petani, Kajang, Batu Pahat, Tawau, Sandakan, Alor Setar, Kuala Terengganu, Taiping, Miri, Kluang, Kulim, Selayang, Kulai, Sibu, Muar, Manjung, Perlis, Kubang Pasu, Sepang, Teluk Intan, Lahad Datu, Kota Tinggi, Segamat, Pasir Mas, Bintulu, Alor Gajah, Kerian, Batang Padang, Keningau, Kemaman, Temerloh, Kuala Kangsar, Pontian, Dungun, Tumpat, Kinabatangan, Besut, Semporna, Ledang, Baling, Jasin, Bachok, Papar, Penampang, Tanah Merah, Bentong, Pasir Puteh, Jempol, Maran, Port Dickson, Rompin, Pekan, Kuala Krai, Beluran, Sabak Bernam, Tuaran, Perak Tengah, Bera, Marang, Ranau, Raub, Pendang, Langkawi, Kota Belud, Machang, Serian, Hulu Perak, Jerantut, Gua Musang, Lipis, Samarahan, Labuan, Kudat, Tampin, Putrajaya, Hulu Terengganu, Mersing, Yan, Kota Marudu, Sik, Sri Aman, Beaufort, Kuala Pilah, Marudi, Kuala Nerang, Kunak, Betong, Sarikei, Tenom, Kapit, Putatan, Setiu, Bau, Pokok Sena, Limbang, Saratok, Rembau, Mukah, Bandar Baharu, Jeli, Simunjan, Jelebu, Pitas, Cameron Highlands, Lawas, Tambunan, Tongod, Belaga, Sipitang, Lundu, Nabawan, Asajaya, Daro, Tatau, Maradong, Kanowit, Lubok Antu, Selangau, Song, Kuala Penyu, Dalat, Matu, Julau, Pakan, Padawan, Lojing, Kampa, Muallim]
city:
- "#{city_name}"
province: [Johor, Kedah, Kelantan, Melaka, Negeri Sembilan, Pahang, Pulau Pinang, Perak, Perlis, Selangor, Terengganu, Sabah, Sarawak, WP Kuala Lumpur, WP Labuan, WP Putrajaya]
postcode: ['#####']
building_number: ['##']
street_prefix: [Jalan, Lorong, Pinggiran, Medan, Persiaran, Selekoh, Persisiran, Perkarangan, Pengkalan, Lurah, Lintang, Lingkungan, Lingkaran, Lengkung, Lengkok, Lebuhraya, Lebuh, Langgak, Laman, Halaman, Gerbang, Dataran, Bulatan, Laluan]
street_title: [Makmur, Bukit Bintang, Bangsar, Chow Kit, Hang Jebat, Hang Tuah, Kinabalu, Kuching, Maharajalela, Masjid India, Istana, Pudu]
street_name:
- "#{street_prefix} #{street_title}"
street_address:
- "No. #{building_number}, #{street_name}"
default_country: [Malaysia]
phone_number:
formats: ['03#######', '+601########']
bank:
name: [Affin Bank Berhad, Agro Bank Berhad, Alliance Bank Malaysia Berhad, AmBank Berhad, Bank Islam Berhad, Bank Muamalat Berhad, Bank Rakyat Berhad, Bank Simpanan Nasional, CIMB Bank Berhad, Hong Leong Bank Berhad, Malayan Banking Berhad, Public Bank Berhad, RHB Bank Berhad, Tabung Haji]
-49
View File
@@ -1,49 +0,0 @@
# Country => Nepal
# This file is formatted for Nepal.
en-NEP:
faker:
name:
male_first_name: ["Kamal", "Gopal", "Hari", "Himal", "Baburam", "Prachanda", "Ganesh"]
female_first_name: ["Gita", "Sita", "Sarita", "Kalpana", "Neha", "Griahma", "Sujata"]
first_name: [
"Aarav", "Ajita", "Amit", "Amita", "Amrit", "Arijit", "Ashmi", "Asmita", "Bibek", "Bijay", "Bikash", "Bina", "Bishal",
"Bishnu", "Buddha", "Deepika", "Dipendra", "Gagan", "Ganesh", "Khem", "Krishna", "Laxmi", "Manisha", "Nabin", "Nikita",
"Niraj", "Nischal", "Padam", "Pooja", "Prabin", "Prakash", "Prashant", "Prem", "Purna", "Rajendra", "Rajina", "Raju",
"Rakesh", "Ranjan", "Ratna", "Sagar", "Sandeep", "Sanjay", "Santosh", "Sarita", "Shilpa", "Shirisha", "Shristi",
"Siddhartha", "Subash", "Sumeet", "Sunita", "Suraj", "Susan", "Sushant"
]
middle_name: ["Bahadur", "Prasad", "Lal"]
last_name: [
"Adhikari", "Aryal", "Baral", "Basnet", "Bastola", "Basynat", "Bhandari", "Bhattarai", "Chettri", "Devkota", "Dhakal",
"Dongol", "Ghale", "Gurung", "Gyawali", "Hamal", "Jung", "KC", "Kafle", "Karki", "Khadka", "Koirala", "Lama", "Limbu",
"Magar", "Maharjan", "Niroula", "Pandey", "Pradhan", "Rana", "Raut", "Sai", "Shai", "Shakya", "Sherpa", "Shrestha",
"Subedi", "Tamang", "Thapa"
]
name:
- "#{male_first_name} #{last_name}"
- "#{male_first_name} #{middle_name} #{last_name}"
- "#{female_first_name} #{last_name}"
- "#{first_name} #{last_name}"
address:
default_time_zone: ["Asia/Kathmandu"]
default_country_code: ["NP"]
postcode: ['#####']
state: [
"Baglung", "Banke", "Bara", "Bardiya", "Bhaktapur", "Bhojupu", "Chitwan", "Dailekh", "Dang", "Dhading", "Dhankuta", "Dhanusa", "Dolakha",
"Dolpha", "Gorkha", "Gulmi", "Humla", "Ilam", "Jajarkot", "Jhapa", "Jumla", "Kabhrepalanchok", "Kalikot", "Kapilvastu", "Kaski", "Kathmandu",
"Lalitpur", "Lamjung", "Manang", "Mohottari", "Morang", "Mugu", "Mustang", "Myagdi", "Nawalparasi", "Nuwakot", "Palpa", "Parbat", "Parsa",
"Ramechhap", "Rauswa", "Rautahat", "Rolpa", "Rupandehi", "Sankhuwasabha", "Sarlahi", "Sindhuli", "Sindhupalchok", "Sunsari", "Surket",
"Syangja", "Tanahu", "Terhathum"
]
city: ["Bhaktapur", "Biratnagar", "Birendranagar", "Birgunj", "Butwal", "Damak", "Dharan", "Gaur", "Gorkha", "Hetauda", "Itahari", "Janakpur", "Kathmandu", "Lahan", "Nepalgunj", "Pokhara"]
default_country: ["Nepal"]
internet:
free_email: ['worldlink.com.np', 'gmail.com', 'yahoo.com', 'hotmail.com']
domain_suffix: ['np', 'com', 'info', 'net', 'org']
company:
suffix: ['Pvt Ltd', 'Group', 'Ltd', 'Limited']
phone_number:
formats: ['##-#######', '+977-#-#######', '+977########']

Some files were not shown because too many files have changed in this diff Show More