Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vadymmarkov/fakery
:alien: Swift fake data generator
https://github.com/vadymmarkov/fakery
fake fakery lorem swift-framework unit-testing
Last synced: about 1 hour ago
JSON representation
:alien: Swift fake data generator
- Host: GitHub
- URL: https://github.com/vadymmarkov/fakery
- Owner: vadymmarkov
- License: other
- Created: 2015-03-30T11:31:58.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2023-04-24T11:19:13.000Z (over 1 year ago)
- Last Synced: 2024-12-27T04:04:14.946Z (7 days ago)
- Topics: fake, fakery, lorem, swift-framework, unit-testing
- Language: Swift
- Homepage: https://vadymmarkov.github.io
- Size: 1.23 MB
- Stars: 1,797
- Watchers: 16
- Forks: 183
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
![Fakery logo](https://raw.githubusercontent.com/vadymmarkov/Fakery/master/Images/logo.png)
[![CI Status](http://img.shields.io/travis/vadymmarkov/Fakery.svg?style=flat)](https://travis-ci.org/vadymmarkov/Fakery)
[![Carthage](https://img.shields.io/badge/carthage-compatible-brightgreen.svg?style=flat)](https://github.com/Carthage/Carthage)
[![Version](https://img.shields.io/cocoapods/v/Fakery.svg?style=flat)](http://cocoadocs.org/docsets/Fakery)
[![License](https://img.shields.io/cocoapods/l/Fakery.svg?style=flat)](http://cocoadocs.org/docsets/Fakery)
[![Platform](https://img.shields.io/cocoapods/p/Fakery.svg?style=flat)](http://cocoadocs.org/docsets/Fakery)This is a Swift port of Ruby's [Faker](https://github.com/stympy/faker) library that generates fake data.
Are you still bothered with meaningless randomly character strings? Just relax and leave this job to **Fakery**.
It's useful in all the cases when you need to use some dummy data for testing, population of database during development, etc.**NOTE**: Generated data is pretty realistic, supports a range of locales, but returned values are not guaranteed to be unique.
## Table of Contents
* [Usage](#usage)
* [Localization](#localization)
* [Generators](#generators)
* [Address](#address)
* [App](#app)
* [Business](#business)
* [Cat](#cat)
* [Commerce](#commerce)
* [Company](#company)
* [Zelda](#zelda)
* [Gender](#gender)
* [Internet](#internet)
* [Lorem](#lorem)
* [Name](#name)
* [Number](#number)
* [Phone number](#phone-number)
* [Team](#team)
* [Bank](#bank)
* [Car](#car)
* [Programming language](#programming-language)
* [Vehicle](#vehicle)
* [Hobbit](#hobbit)
* [Installation](#installation)
* [Contributing](#contributing)
* [Author](#author)
* [License](#license)## Usage
```swift
import Fakerylet faker = Faker(locale: "nb-NO")
let firstName = faker.name.firstName() //=> "Emilie"
let lastName = faker.name.lastName() //=> "Hansen"
let city = faker.address.city() //=> "Oslo"
```## Localization
**Fakery** is quite powerful when it comes to generation of locale-specific data.
In `Resources/Locales` you can find JSON files for more than 20 locales, and, of course, it's not a limit.
Feel free to contribute and add more!The default locale is English. When you use one of the available generators and
the corresponding key is not found in a JSON file for the currently selected
locale **Fakery** will also check if it exists in "en.json" file.## Generators
### Address
```swift
faker.address.city() //=> "Oslo"
faker.address.streetName() //=> "North Avenue"
faker.address.secondaryAddress() //=> "Apt. 123"
faker.address.streetAddress(includeSecondary: Bool) //=> "12 North Avenue"
faker.address.buildingNumber() //=> "123"
faker.address.postcode(stateAbbreviation: String) //=> "0884"
faker.address.timeZone() //=> "America/Los_Angeles"
faker.address.streetSuffix() //=> "Avenue"
faker.address.citySuffix() //=> "town"
faker.address.cityPrefix() //=> "North"
faker.address.stateAbbreviation() //=> "CA"
faker.address.state() //=> "California"
faker.address.county() //=> "Autauga County"
faker.address.country() //=> "United States of America"
faker.address.countryCode() //=> "US"
faker.address.latitude() //=> -58.17256227443719
faker.address.longitude() //=> -156.65548382095133
faker.address.coordinate() //=> CLLocationCoordinate2D(latitude: 40.97868, longitude: 29.09306)
```### App
```swift
faker.app.name() //=> "Namfix"
faker.app.version() //=> "0.1.1"
faker.app.author() //=> "Ida Adams"
```### Business
```swift
faker.business.creditCardNumber() //=> "1234-2121-1221-1211"
faker.business.creditCardType() //=> "visa"
faker.business.creditCardExpiryDate() //=> "2020-10-12"
```### Cat
```swift
faker.cat.name() //=> "Shadow"
faker.cat.breed() //=> "British Semipi-longhair"
faker.cat.registry() //=> "American Cat Fanciers Association"
```### Commerce
```swift
faker.commerce.color() //=> "black"
faker.commerce.department(maximum: Int, fixedAmount: Bool) //=> "Music"
faker.commerce.productName() //=> "Awesome Wooden Hat"
faker.commerce.price() // 90.5
```### Company
```swift
faker.company.name() //=> "Adams Inc"
faker.company.suffix() //=> "Inc"
faker.company.catchPhrase() //=> "Universal software"
faker.company.bs() //=> "implement innovative methodologies"
faker.company.logo() // "http://pigment.github.io/fake-logos/logos/medium/color/1.png"
```### Zelda
```swift
faker.zelda.game() //=> "Ocarina of Time"
```### Gender
```swift
faker.gender.type() //=> "Agender"
faker.gender.binaryType() //=> "Male"
```### Internet
```swift
faker.internet.username(separator: String?) //=> "ida4"
faker.internet.domainName(alphaNumericOnly: Bool) //=> "example.com"
faker.internet.domainWord(alphaNumericOnly: Bool) //=> "domainword"
faker.internet.domainSuffix() //=> "com"
faker.internet.email() // => "[email protected]"
faker.internet.freeEmail() //=> "gmail.com"
faker.internet.safeEmail() //=> "[email protected]"
faker.internet.password(minimumLength: Int, maximumLength: Int) //=> "e2dddhwd1g5qhvhgfi"
faker.internet.ipV4Address() //=> "24.29.18.175"
faker.internet.ipV6Address() //=> "ac5f:d696:3807:1d72:2eb5:4e81:7d2b:e1df"
faker.internet.url() //=> "http://example.com/ida4"
faker.internet.image() //=> "http://lorempixel.com/320/200"
faker.internet.templateImage() //=> "http://dummyimage.com/320x200/000000/ffffff"
faker.internet.hashtag() //=> "#art"```
### Lorem
```swift
faker.lorem.word() //=> "repellendus"
faker.lorem.words(amount: Int) //=> ["dolores", "adipisci", "nesciunt"]
faker.lorem.character() //=> "a"
faker.lorem.characters(amount: Int) // Default = 255
faker.lorem.sentence(wordsAmount: Int) // Default = 4
faker.lorem.sentences(amount: Int) // Default = 3
faker.lorem.paragraph(sentencesAmount: Int) // Default = 3
faker.lorem.paragraphs(amount: Int) // Default = 3
```### Name
```swift
faker.name.name() //=> "Ida Adams"
faker.name.firstName() //=> "Ida"
faker.name.lastName() //=> "Adams"
faker.name.prefix() //=> "Mrs."
faker.name.suffix() //=> "PhD"
faker.name.title() //=> "Lead"
```### Number
```swift
faker.number.randomBool() //=> true or false
faker.number.randomInt() //=> some Int between 0 and 1000
faker.number.randomInt(min: -100, max:50) //=> some Int between -100 and 50
faker.number.randomFloat() //=> some Float between 0 and 1000
faker.number.randomFloat(min: -10.4, max:50) //=> some Float between -10.4 and 50
faker.number.randomCGFloat() //=> some CGFloat between 0 and 1000
faker.number.randomCGFloat(min: 42.42, max:86) //=> some CGFloat between -42.42 and 86
faker.number.randomDouble() //=> some Double between 0 and 1000
faker.number.randomDouble(min: 0, max:1) //=> some Double between 0 and 1
faker.number.increasingUniqueId() //=> every call returns an unique int
```### Phone number
```swift
faker.phoneNumber.phoneNumber() //=> "1-333-333-3333"
faker.phoneNumber.cellPhone() //=> "333-333-3333"
faker.phoneNumber.areaCode() //=> "201"
faker.phoneNumber.exchangeCode() //=> "201"
faker.phoneNumber.subscriberNumber() //=> "1234"
faker.phoneNumber.numberExtension(length: Int) // "123"
```### Team
```swift
faker.team.name() //=> "bats"
faker.team.creature() //=> "Alabama bats"
faker.team.state() // => "Alabama"
```### Bank
```swift
faker.bank.name() //=> "ABN AMRO CORPORATE FINANCE LIMITED"
faker.bank.swiftBic() //=> "AAFMGB21"
faker.bank.iban() // => "NL45BUNQ2209931378"
faker.bank.bban() //=> ABNA0136468471
```### Hobbit
```swift
faker.hobbit.character() //=> "Bilbo Baggins"
faker.hobbit.thorinsCompany() //=> "Thorin Oakenshield"
faker.hobbit.quote() // => "Do you wish me a good morning, or mean that it is a good morning whether I want it or not; or that you feel good this morning; or that it is a morning to be good on?"
faker.hobbit.location() //=> "Bree"
```### Car
```swift
faker.car.brand() //=> "BMW"
```### Programming language
```swift
faker.programming_language.name() //=> "Elixir"
faker.programming_language.creator() //=> "José Valim"
```### Vehicle
```swift
faker.vehicle.manufacture() //=> "Volkswagen"
faker.vehicle.make() //=> "BMW"
faker.vehicle.colors() //=> "Red"
```### Ham
```swift
faker.ham.name() //=> "Taylor Ham"
```### House
```swift
faker.house.furniture() //=> "chair"
faker.house.room() //=> "living room"
```## Installation
**Fakery** is available through [CocoaPods](http://cocoapods.org). To install
it, simply add the following line to your Podfile:```ruby
pod 'Fakery'
```Or alternatively using the Swift Package Manager:
```swift
let package = Package(
//…
dependencies[
.package(name: "Fakery", url: "https://github.com/vadymmarkov/Fakery", from: "5.0.0"))
],
targets: [
.target(name: "Foo", dependencies: ["Fakery"]
]
)
```Use of the Swift Package Manager requires Swift >=5.3.
## Contributing
Please see our [playbook](https://github.com/hyperoslo/playbook/blob/master/GIT_AND_GITHUB.md) for guidelines on contributing.
## Author
Vadym Markov, [email protected]
## License
**Fakery** is available under the MIT license. See the LICENSE file for more info.