Skip to content

Instantly share code, notes, and snippets.

View tanabee's full-sized avatar

Yuki Tanabe tanabee

View GitHub Profile
[
["亜", "亞"],
["唖", "啞", "瘂"],
["悪", "惡"],
["芦", "蘆"],
["鯵", "鰺"],
["圧", "壓"],
["庵", "菴", "葊"],
["案", "桉"],
["囲", "圍"],
@tanabee
tanabee / csv2json-apigee-proxy-post-flow.js
Created January 28, 2021 01:04
Apigee の Proxy POST flow で CSV to JSON するサンプル
print('Proxy POST flow')
const content = context.getVariable('response.content')
const rows = content.split('\n').map(row => row.split(','))
const keys = rows.shift()
print('keys', keys)
const values = rows.map(row => {
const obj = {}
row.forEach((value, i) => {
obj[keys[i]] = value
})
## アジェンダ
1. 議題1 ( @who N分 )
## 議事内容
### 議題1
## 決定事項
*
## アクション
@tanabee
tanabee / CustomObject.swift
Created June 24, 2016 06:41
カスタムオブジェクトの print を key: value 形式で吐かせる
import UIKit
class CustomObject: NSObject {
override var description: String {
let mirror = Mirror(reflecting: self)
return mirror.children.map { (element) -> String in
let key = element.label ?? "Undefined"
let value = element.value
if value is CustomObject || value is NSArray {
@tanabee
tanabee / UIImageView+URLRequest.swift
Created May 25, 2016 01:38
Kingfisher の kf_setImageWithURL をラップした UIImageView 拡張
import UIKit
import Kingfisher
extension UIImageView {
func setImageWithURL(url: NSURL?) {
if let url = url {
self.kf_setImageWithURL(url)
} else {
self.image = nil
@tanabee
tanabee / UIView+AutoLayout.swift
Last active May 20, 2016 03:46
親ビューに対して上下左右マージンゼロで制約指定するコード(WKWebView とかで使う)
extension UIView {
// 親ビュー (parent) に対して上下左右マージンゼロの制約を指定をする
func applyAutoLayoutMatchParent(parent: UIView, margin: CGFloat = 0) {
self.translatesAutoresizingMaskIntoConstraints = false
let attributes: [NSLayoutAttribute] = [.Top, .Left, .Right, .Bottom]
let constraints = attributes.map { (attribute) -> NSLayoutConstraint in
return NSLayoutConstraint(
item: self,
attribute: attribute,
relatedBy: .Equal,
@tanabee
tanabee / jQueryImport.js
Last active December 4, 2015 05:46
Chrome 拡張開発時に jQuery を利用したい時など
var script = document.createElement('script');
script.src = 'http://code.jquery.com/jquery-2.1.4.min.js';
document.body.appendChild(script);
let systemAttributes: [NSObject: AnyObject]?
let documentDirectoryPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
do {
let GiB = 1024*1024*1024;
systemAttributes = try NSFileManager.defaultManager().attributesOfFileSystemForPath(documentDirectoryPath.last!)
print((systemAttributes![NSFileSystemFreeSize] as! Int) / GiB)
print((systemAttributes![NSFileSystemSize] as! Int) / GiB)
} catch _ {
systemAttributes = nil
}
@tanabee
tanabee / gist:c9f75a4c2df6be670d58
Last active August 29, 2015 14:18
Haskell 第3章

第3章 関数の構文

3.1 パターンマッチ

パターンマッチとは

以下は 詳解Swift の引用だが、3.1 のパターンマッチも同様のものを指していそう。

6.3 パターンマッチ

ここでいうパターンマッチは、スクリプト言語の多くが機能として持っている、文字列と正規表現のマッチングのことではありません。Swift は一般の数値や文字列に加えてタプルや共用型の列挙型を備えていますが、それらを変数に代入したり、switch文でさまざまに分類したりして処理することができます。そのような構造を持ったデータについてどの構造が何に当てはまる(マッチする)のかというルールがあります。そのようなルールに基づいたデータ処理が、ここでいうパターンマッチなのです。

pod install --no-repo-update