Skip to content

Instantly share code, notes, and snippets.

@slangley
slangley / AssertUnwrap.swift
Created September 17, 2020 14:34 — forked from preble/AssertUnwrap.swift
This is Nate's idea, something I use on every project. Sometimes you need to accommodate an optional that shouldn't be optional.
public extension Optional {
/// Stop in the debugger in debug builds if self is `.none`.
///
/// Example usage:
///
/// guard let value = maybeValue.assertUnwrap() else { return "bogus value" }
///
func assertUnwrap(_ message: @autoclosure () -> String? = nil, file: StaticString = #file, function: String = #function, line: UInt = #line) -> Wrapped? {
switch self {
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@slangley
slangley / API.md
Created January 15, 2020 17:34 — forked from iros/API.md
Documenting your REST API

Title

<Additional information about your API call. Try to use verbs that match both request type (fetching vs modifying) and plurality (one vs multiple).>

  • URL

    <The URL Structure (path only, no root url)>

  • Method:

@slangley
slangley / nginx-environment.md
Created May 4, 2019 01:04 — forked from xaviervia/nginx-environment.md
Nginx and Docker links with environment variables, a love story

How to add environment variables to nginx.conf

This is the hack approach to adding environment variables to the nginx configuration files. As with most Google results for this search, the reason is Docker.

The setup

I intended to deploy two Docker containers.

import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var rootVC: UINavigationController? = nil
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
window = UIWindow(frame: UIScreen.main.bounds)
@slangley
slangley / app-1.spec.ts
Created December 6, 2016 20:21 — forked from wkwiatek/app-1.spec.ts
Angular 2 test snippets for Angular final version. Codebase for https://developers.livechatinc.com/blog/category/programming/angular-2/
// App
import { Component } from '@angular/core';
@Component({
selector: 'app',
template: '<span>{{ sayHello() }}</span>',
})
export class App {
public name: string = 'John';
@slangley
slangley / UIButton+Rx.swift
Created September 25, 2015 19:55
RxSwift UIButton binding for setImage:controlState:
import UIKit
import RxSwift
import RxCocoa
extension UIButton {
public func rx_image(controlState: UIControlState?) -> ObserverOf<UIImage!> {
return ObserverOf { [weak self] event in
MainScheduler.ensureExecutingOnScheduler()
@slangley
slangley / runSBConstants.sh
Created September 17, 2015 14:48
Wrapper around SBConstants that warns if not installed.
#!/bin/bash
SWIFT_ARGS=
while getopts w opt; do
case $opt in
w)
SWIFT_ARGS='-w'
;;
esac
@slangley
slangley / buildVersioning.pl
Created September 17, 2015 14:47
Add version info to an iOS App
#!/usr/bin/perl
use strict;
die "$0: Must be run from Xcode" unless $ENV{"BUILT_PRODUCTS_DIR"};
my $INFO = "$ENV{BUILT_PRODUCTS_DIR}/$ENV{WRAPPER_NAME}/Info.plist";
my $G_COMMIT = `git rev-parse --short HEAD`;
my $G_BRANCH = `git rev-parse --abbrev-ref HEAD`;
my $G_VERSION = `/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "${INFO}"`;
@slangley
slangley / .gitignore
Created February 28, 2014 03:24 — forked from adamgit/.gitignore
#########################
# .gitignore file for Xcode4 / OS X Source projects
#
# Version 2.0
# For latest version, see: http://stackoverflow.com/questions/49478/git-ignore-file-for-xcode-projects
#
# 2013 updates:
# - fixed the broken "save personal Schemes"
#
# NB: if you are storing "built" products, this WILL NOT WORK,