Construction
Construction copied to clipboard
:construction_worker: The many ways to construct and configure your entity
Construction
The many ways to construct and configure your entity. Work for struct and class
Usage
construct
- Free function
- Construct a struct and configure it
Person
struct Person {
var name: String = ""
var age: Int = 0
var website: NSURL?
init() {
}
}
extension Person: Initable {}
let person: Person = construct {
$0.name = "Luffy"
$0.age = 17
}
XCTAssertEqual(person.name, "Luffy")
XCTAssertEqual(person.age, 17)
XCTAssertNil(person.website)
build
- Free function
- Build an existing struct
var person = Person() // Declare as `var`
build(&person) { // Use `&`
$0.name = "Luffy"
$0.age = 17
}
XCTAssertEqual(person.name, "Luffy")
XCTAssertEqual(person.age, 17)
XCTAssertNil(person.website)
- Build an existing object
Car
class Car {
var model: String = ""
var price: Int = 0
}
extension Car: Configurable {}
let car = build(Car()) {
$0.model = "Tesla Model 3"
$0.price = 35_000
}
XCTAssertEqual(car.model, "Tesla Model 3")
XCTAssertEqual(car.price, 35_000)
configure
- Member function
- Configure existing object
let car = Car().configure {
$0.model = "Tesla Model 3"
$0.price = 35_000
}
XCTAssertEqual(car.model, "Tesla Model 3")
XCTAssertEqual(car.price, 35_000)
Installation
Construction is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'Construction'
Construction is also available through Carthage. To install just write into your Cartfile:
github "onmyway133/Construction"
Author
Khoa Pham, [email protected]
Contributing
We would love you to contribute to Construction, check the CONTRIBUTING file for more info.
License
Construction is available under the MIT license. See the LICENSE file for more info.