Require lets you easily require Optional values to be non-nil, or crash gracefully.
Sometimes you have optional values in your code that are not really optional, and will cause your
application to enter an undefined state if nil. Require makes it easy to avoid such states, by
causing a crash with rich debug information, to enable you to much easier hunt down & fix the bug.
Usage
Call require() on any Optional, optionally giving a hint for debugging purposes:
class ConfigurationLoader {
func load() -> Configuration {
let data = readJSONFile().require(hint: "Verify that Config.JSON is valid")
let config: Configuration? = try? unbox(data: data)
return config.require()
}
}
Installation
Swift Package Manager:
Add .Package(url: "git@github.com:johnsundell/require.git", majorVersion: 1) to your Package.swift file.
CocoaPods:
Add pod "Require" to your Podfile.
Carthage:
Add github "johnsundell/require" to your Cartfile.
Manual:
Clone the repo and drag the file Require.swift into your Xcode project.
Help, feedback or suggestions?
Open a PR if you want to make some change to Require.
✅ Require
Require lets you easily require
Optional
values to be non-nil
, or crash gracefully.Sometimes you have optional values in your code that are not really optional, and will cause your application to enter an undefined state if
nil
. Require makes it easy to avoid such states, by causing a crash with rich debug information, to enable you to much easier hunt down & fix the bug.Usage
Call
require()
on anyOptional
, optionally giving ahint
for debugging purposes:Installation
Swift Package Manager:
Add
.Package(url: "git@github.com:johnsundell/require.git", majorVersion: 1)
to yourPackage.swift
file.CocoaPods:
Add
pod "Require"
to yourPodfile
.Carthage:
Add
github "johnsundell/require"
to yourCartfile
.Manual:
Clone the repo and drag the file
Require.swift
into your Xcode project.Help, feedback or suggestions?