Skip to content

Instantly share code, notes, and snippets.

import Foundation
extension NSDate {
convenience init(year: Int, month: Int, day: Int) {
let now = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components([.Year, .Month, .Day, .Hour, .Minute, .Second], fromDate: now)
components.year = year
components.month = month
components.day = day
extension String {
enum TruncationPosition {
case Head
case Middle
case Tail
}
func truncated(limit: Int, position: TruncationPosition = .Tail, leader: String = "...") -> String {
guard self.characters.count > limit else {
return self
@naoty
naoty / Pokemon.swift
Last active May 24, 2016 02:58
Pokemon for Sample data
struct Pokemon {
let name: String
}
let pokemons: [Pokemon] = [
Pokemon(name: "Bulbasaur"),
Pokemon(name: "Ivysaur"),
Pokemon(name: "Venusaur"),
Pokemon(name: "Charmander"),
Pokemon(name: "Charmeleon"),
import UIKit
struct Lens<A, B> {
private let getter: A -> B
private let setter: (A, B) -> A
init(getter: A -> B, setter: (A, B) -> A) {
self.getter = getter
self.setter = setter
}
@naoty
naoty / Playground.swift
Last active April 6, 2018 23:42
A playground to display a table view controller on a navigation controller
import XCPlayground
import UIKit
struct Pokemon {
let id: UInt
let name: String
}
class PokedexViewController: UITableViewController {
let pokemons: [Pokemon] = [
extension Dictionary {
func merged(another: [Key: Value]) -> Dictionary {
var result: [Key: Value] = [:]
for (key, value) in self {
result[key] = value
}
for (key, value) in another {
result[key] = value
}
return result
extension ErrorType {
var errorSummary: String {
return ""
}
}
extension NSError {
var errorSummary: String {
return localizedDescription
}
@naoty
naoty / refresh-organizer
Created November 17, 2015 08:56
アプリが多すぎてOrganizerが重くなったときに軽くするスクリプト
#!/bin/sh
id="com.example.yourapp"
dir=$HOME/Library/Developer/Xcode
mv $dir/Products $dir/Products.orig && \
mkdir $dir/Products && \
cp -R $dir/Products/$id $dir/Products/
@naoty
naoty / pre-commit
Created August 26, 2015 10:46
コミット前にrubocop適用して自動修正するフック
#!/usr/bin/env ruby
files = `git diff --cached --name-only | grep .rb`.split
exit 0 if files.empty?
ok = true
files.each do |file|
next unless File.exist?(file)
result = system "rubocop", "--auto-correct", file
ok = false if result == false
@naoty
naoty / pre-commit
Created July 17, 2015 02:48
コミット前にコミット予定のファイルをrubocopで検査するフックスクリプト
#!/bin/sh
rubocop --auto-correct `git diff --cached --name-only | grep .rb`