u16suzuの blog

日々学んだことのメモブログです。

2015-01-01から1年間の記事一覧

よく使うクエリパラメータ系のメソッドを使い回せるようにする

ページネーションがあるAPIを作るとき毎回書くのが大変なので共通化した。 base_controller.rb に書いておくと、他のコントローラから使い回せて便利。 def params_page params[:page].try(:to_i).presence || 1 end def params_site_ids params["site_ids"].tr…

自分で作ったクラスで Enumerable モジュールを include して使う

class CatList include Enumerable def initialize(*cats) @cats = cats end def each for v in @cats yield v end end end cats = CatList.new( "mike", "cha", "tora" ) p cats.map(&:upcase) # => ["MIKE", "CHA", "TORA"]

セマンティックバージョニング2.0.0

仮にバージョンを A.B.C としたとき A: メジャーバージョン 後方互換性を持たない機能追加 B: マイナーバージョン 後方互換性を保つ機能追加 C: パッチバージョン 後方互換性を保つバグ修正 参考 セマンティック バージョニング 2.0.0

セッターを定義する

何も代入していないけれどもw class Man def age=(value) p "I am #{value}years old" end end Man.new.age = 3 # => "I am 3years old" Rubyをまたやることになりそうなのでリハビリ中。

あるクラスのインスタンスメソッドの一覧を取得する

class Human def say p "hello" end end p Man.instance_methods(false) # => [:say, :age=] 任意のクラスが include しているモジュール一覧を表示 p Array.included_modules # => [Enumerable, Kernel]

ContainerViewController のスニペット

import UIKit class ParentViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() } // コンテナビューコントローラに追加 func addViewController(vc: UIViewController){ self.addChildViewController(vc) vc.view.frame…

開発時のみ実行するコードを実現するマクロ

微妙に objc の時と変わった。 毎回、手でやるのがたいへんな画面操作を、自動でやりたいときなどに、この中に組み込んでいたりする。 #if DEBUG // こんなかんじで、 画面遷移を自動でさせちゃう。 let vc = EntryViewController.instantiateFromStoryboard() vc.e…

swiftのコピペコード置き場

UILabel 開発中のデバッグでたまにコードで置いちゃう。 let label = UILabel.init(frame: CGRectMake(0, 100, 0, 0)) label.text = "Test Label" label.sizeToFit() view.addSubview(label) イニシャライザの UILabel.init(frame: frame) は UILabel(frame: …

Swift で enumを定義する

以下のように enum で環境を定義して、そこにAPIのBase URLを持たせることをよくする。 enum Env: Int { case Local case Staging case Production func baseURL() -> String { switch(self) { case .Local: return "http://localhost:3000" case .Staging: re…

swiftでテーブルビューの delegate と datasource を書く

// MARK: - UITableViewDelegate func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { tableView.deselectRowAtIndexPath(indexPath, animated: true) } // MARK: - UITableViewDataSource func tableView(tableView…

ES6について WebDB Press でざっと斜め読みした var ではなく let を使うことでブロックスコープを使える for loop でも let を使うと良い 関数定義にアロー演算子を使えるようになった クラスが使えるようになった constで定数定義できる

会社の人と飲んだ 仕事を早めに切り終えて, 会社の同僚5人と久しぶりに飲みに行った。 自然と話題は会社のことや仕事のことになった。 普段なかなか話せないような、 思っていることをざっくばらんと話せる場があることはとてもいいことだ。 冷や汁を初めて作っ…

今日は rake db 系のコードを読んでみた。 いつもお世話になっているコマンドなので, 内部の処理をあまり理解せずに使っていることに違和感を感じていた。 とくにいくつか,名前がにていて何が異なるのかがわからないコマンドがいくつかあった。 rake db 系のコ…

今日も Rails Guides を少し読み進めた。 Railsが提供している楽観的ロックについて。 楽観的ロックは複数の異なるプロセスが1つのレコードを同時に編集することを許可する。 そして,レースコンディションが起きたとき ActiveRecord::StaleObjectError を投げる…

今日もコツコツと Rails Guide を読んでいる。 keyword でgroup by して,それぞれの個数を求める。 Trend.group("keyword").count 4日連続で何かしらの勉強ができている。 いいかんじ。 ただ、寝不足でめっちゃ眠いですね!

where メソッドに between句を range で指定する

今 Rails Guides の ActiveRecordのところを読んでいる。 Hashで range を指定することで, between 句が書ける事を知った。 Client.where(:created_at => (Time.now.midnight - 1.day)..Time.now.midnight)

はてぶをスクレイピングして遊んだ

今日は nokogiriを使って, はてなブックマークのプログラミングカテゴリをスクレイピングしてみた.

たまにはRailsのIssueを読んでみる

今日はこのIssueを読んでみた ActionController::Parameters#== does not works as expected · Issue #21032 · rails/rails · GitHub hash = { foo: :bar } params = ActionController::Parameters.new(hash) params == hash #returns false あるHashから生…

おすすめのログ系コードスニペット

// @""をはじめから入力してある NSLog NSLog(@"%@", <#object#> ); // メソッド名と行数を表示 NSLog(@"Function: %s, Line: %d", __PRETTY_FUNCTION__, __LINE__ ); // コールスタックを表示 NSLog(@"%@", [NSThread callStackSymbols]);

画面タップでキーボードを隠す

ios

viewDidload あたりに以下を追加 // 背景をタップしたら、キーボードを隠す UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)]; [self.view addGestureRecognizer:gesture…

UIScrollViewのコンテントオフセットとコンテントインセットについて

公式ドキュメントによると コンテントオフセット contentOffset The point at which the origin of the content view is offset from the origin of the scroll view. あらかじめxポイントスクロールした状態にしておく時に使う。 offset の意味は埋め合わせ、…

正規表現による検索

// 正規表現オブジェクトを作成 NSRegularExpression *regularExpression = [NSRegularExpression regularExpressionWithPattern:@"reg_exp" options:NSRegularExpressionCaseInsensitive error:nil]; NSString *targetString = @"target string" // 検索実…

デバッグ用のマクロ

iOS

#ifdef DEBUG #define DLog(fmt, ...) NSLog((@"%s:%d\n " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); #else #define DLog(...) #endif

ファイルのフルパスを取得する

$ find `pwd` -name 20150108.md /Users/suzuki_y/memoWork/00_daily/2015/daily/20150108.md refer How can I list files with their absolute path in linux? command line - How can I list files with their absolute path in linux? - Stack Overflow