View XCTestCase+Await.swift
extension XCTestCase { | |
struct AwaitError: Error {} | |
/** | |
This function is useful for asynchronous testing and acts as a wrapper around test expectations. | |
Consider the following example: | |
```swift | |
// Let's asume we have an async function with the following signature: |
View XCTestCase+Fixture.swift
extension XCTestCase { | |
enum FixtureError: Error { | |
case resourceNotFound | |
case invalidFormat | |
} | |
/// Loads the json fixture with the given name from disk and returns a json object. | |
/// - Parameter fileName: The anme of the fixture on disk (without the type suffix). | |
/// - Throws: Any errors encountered during the process. |
View RateLimit.swift
import Foundation | |
private let log = Log(topic: .rateLimit) | |
/// Timeout based rate limit helper class. | |
final class RateLimit { | |
// MARK: - Private | |
private let timeout: TimeInterval |
View OnceToken.swift
final class OnceToken { | |
private(set) lazy var perform: () -> Void = { | |
self.closure() | |
return {} | |
}() | |
private let closure: () -> Void | |
init(execute closure: @escaping () -> Void) { |
View asset_extensions.stencil
/// Attention: Changes made to this file will not have any effect and will be reverted | |
/// when building the project. Please adjust the Stencil template `asset_extensions.stencil` instead. | |
/// See https://github.com/SwiftGen/SwiftGen#bundled-templates-vs-custom-ones for more information. | |
import UIKit | |
// MARK: - Private Helper - | |
private final class BundleToken {} | |
private let bundle = Bundle(for: BundleToken.self) |
View Log.swift
import Foundation | |
final class Log: NSObject { | |
enum Topic: String { | |
case network, app | |
} | |
private enum Level: String { | |
case info = "" |
View Reachability.swift
import Foundation | |
import SystemConfiguration | |
extension Notification.Name { | |
public static let reachabilityChanged = Notification.Name(rawValue: "reachabilityChanged") | |
} | |
protocol ReachabilityObserver: class { | |
func reachabilityDidChange(_ reachability: Reachability) | |
} |
View OneOf.swift
import Foundation | |
extension Equatable { | |
/// Whether `self` is contained in a list of other values. | |
/// Variadic version, see the method below for the generic implementation. | |
/// | |
/// - Parameter others: The values that `self` should be checked against. | |
/// - Returns: Whether or not `self` is one of the provided other values. | |
func isOne(of others: Self...) -> Bool { |
View UTType.swift
import Foundation | |
import MobileCoreServices | |
struct UTType: CustomStringConvertible { | |
let value: CFString | |
init?(mimeType: String) { | |
guard let UTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassMIMEType, mimeType as CFString, nil)?.takeUnretainedValue() else { return nil } | |
value = UTI | |
} | |
View Dictionary+EnumSubscript.swift
extension Dictionary { | |
subscript<T: RawRepresentable>(_ key: T) -> Value? where T.RawValue == Key { | |
return self[key.rawValue] | |
} | |
} | |
// Usage: | |
enum Type: Int { | |
case easy | |
} |
NewerOlder