Skip to content

Instantly share code, notes, and snippets.

View alanf's full-sized avatar

Alan Fineberg alanf

View GitHub Profile
protocol BreadcrumbRecordable {
func saveRecord(_ data: Data!, streamName: String!) -> AWSTask<AnyObject>!
func submitAllRecords() -> AWSTask<AnyObject>!
}
extension AWSFirehoseRecorder: BreadcrumbRecordable {
}
class FakeRecorder: BreadcrumbRecordable {
var testRecords: [Data] = []
func saveRecord(_ data: Data!, streamName: String!) -> AWSTask<AnyObject>! {
testRecords.append(data)
return AWSTask()
}
func submitAllRecords() -> AWSTask<AnyObject>! {
return AWSTask()
class BreadcrumbLogger {
private let recorder: BreadcrumbRecordable
init(recorder: BreadcrumbRecordable = AWSFirehoseRecorder.default()) {
self.recorder = recorder
}
private func breadcrumbDictionary(breadcrumb: Breadcrumb) -> Dictionary<String, AnyObject?> {
let breadcrumbDictionary: Dictionary<String, AnyObject?> = [:]
func testLogBreadcrumbs() {
let recorder = FakeRecorder()
let logger = BreadcrumbLogger(recorder: recorder)
let breadcrumbs = createBreadcrumbs()
logger.logBreadcrumbs(breadcrumbs: breadcrumbs)
let firstRecord = JSON(data: recorder.testRecords[0])
XCTAssertEqual(firstRecord["breadcrumb"], "testdata")
// ... Additional checks omitted for brevity ...
import ReactiveKit
import UIKit
class UnderlinedTextField: UITextField {
@IBOutlet weak var underlineView: UIView!
override func awakeFromNib() {
super.awakeFromNib()
import ReactiveKit
import UIKit
class ViewController: UIViewController {
// ... snip ...
override func viewDidLoad() {
super.viewDidLoad()
viewModel.email.map { email in
return email?.address
//
// UnderlinedTextField.swift
// Halo
//
// Created by Alan Fineberg on 7/25/17.
//
//
import Foundation
import ReactiveKit
import Foundation
import UIKit
@IBDesignable class GradientView: UIView {
let titleLabel = UILabel()
@IBInspectable var title: String? = nil {
didSet {
titleLabel.text = title
import Foundation
import ReactiveKit
import Bond
import UIKit
protocol SimpleAlertDelegate: class {
func didTapSecondaryButton(alertViewController: SimpleAlertViewController)
func didTapPrimaryButton(alertViewController: SimpleAlertViewController)
}
class ExampleUsage: SimpleAlertDelegate {
private func configureRestPeriodAlert(lastStimulationTime: Date) -> SimpleAlertViewController {
let alertStoryboard = UIStoryboard(name: "Alert", bundle: Bundle.main)
guard let alertViewController = alertStoryboard.instantiateViewController(withIdentifier: "Alert") as? SimpleAlertViewController else { fatalError() }
alertViewController.modalTransitionStyle = .coverVertical
alertViewController.modalPresentationStyle = .overCurrentContext
let viewModel = SimpleAlertViewController.ViewModel()
viewModel.title.value = NSLocalizedString("RestPeriodAlertTitle", tableName: "", bundle: Bundle.main, value: "Rest Period", comment: "Title for alert which recommends waiting between Neuropriming sessions.")