This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Foundation | |
// From https://github.com/soffes/Crypto | |
import Crypto | |
struct Imgix { | |
// MARK: - Properties | |
let host: String |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import CoreGraphics | |
extension CGRect { | |
var floor: CGRect { | |
return CGRect( | |
x: CoreGraphics.floor(origin.x), | |
y: CoreGraphics.floor(origin.y), | |
width: CoreGraphics.floor(size.width), | |
height: CoreGraphics.floor(size.height) | |
) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import UIKit | |
extension UIFont { | |
func withMonospacedNumbers() -> Self { | |
let fontDescriptor = UIFontDescriptor(name: fontName, size: pointSize).addingAttributes([ | |
.featureSettings: [ | |
[ | |
UIFontDescriptor.FeatureKey.featureIdentifier: kNumberSpacingType, | |
UIFontDescriptor.FeatureKey.typeIdentifier: kMonospacedNumbersSelector | |
] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import UIKit | |
extension UIEdgeInsets { | |
init(_ value: CGFloat) { | |
top = value | |
left = value | |
right = value | |
bottom = value | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Foundation | |
extension NSDate { | |
var briefTimeAgoInWords: String { | |
let components = NSCalendar.currentCalendar().components([.Second, .Minute, .Hour, .Day, .Year], fromDate: self, toDate: NSDate(), options: []) | |
if components.year > 0 { | |
return "\(components.year)y" | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Foundation | |
extension NSCache { | |
subscript(key: AnyObject) -> AnyObject? { | |
get { | |
return objectForKey(key) | |
} | |
set(object) { | |
if let object = object { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// What is the widest prime less than 4,000 when written as a Roman numeral in Times New Roman? | |
// — https://twitter.com/wacnt/status/695034110037757952 | |
import UIKit | |
let primes: [UInt] = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997, 1009, 1013, 1019, 1021, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Foundation | |
let queryItems = [ | |
NSURLQueryItem(name: "username", value: "so&ffes"), | |
NSURLQueryItem(name: "password", value: "123456") | |
] | |
func formEncode(queryItems: [NSURLQueryItem]) -> String { | |
let characterSet = NSMutableCharacterSet.alphanumericCharacterSet() | |
characterSet.addCharactersInString("-._~") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import UIKit | |
/// Space view intented to be used with auto layout. | |
/// Similar to UIStackView, setting a background color is not supported. | |
final class SpaceView: UIView { | |
// MARK: - Properties | |
private let contentSize: CGSize |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'json' | |
require 'base64' | |
unless input = ARGV.first | |
puts 'Run with `ruby convert.rb path_to_your_cassette.json`' and return | |
end | |
def process(r) | |
return unless r && (body = r['body']) && (content_type = r['headers']['Content-Type']) | |
if content_type.start_with?('text/') |