T or F
まず、rubyだと
「偽」になるのは nil と false だけ。
(PHPとかJSだと "" , " ", 0 , "0", null とかどれが「偽」扱いになるのかすぐ忘れる。)
判定メソッドのメモ(抜粋コピペ)。
nil?
nilとfalseを判別したい場合などに、==演算子を使わずに書ける。
empty?
「入れ物」は存在するのが前提でString や Array の中身が空の場合にtrue. 入れ物がない場合は NoMethodError
blank? (ActiveSupport)
nil? or empty? ※半角スペースだけの文字列はtrueを返す
present? (ActiveSupport)
!blank?
presence (ActiveSupport)
present? が true の場合にレシーバ自身を返す
# こういうのが… name = params[:name].present? ? params[:name] : '名無し' # presenceを使うとこうなるよ!! name = params[:name].presence || '名無し'
これ便利!
try (ActiveSupport)
レシーバが nil でなければ指定したメソッドを呼び出す
# こういうのが… user ? user.name : '名無し' # tryメソッドを使うとこうなるよ!! user.try(:name) || '名無し'
これも便利!!
tryは Object#sendメソッドの alias で、NilClass#try が定義されているらしいです。
class NilClass def try(*args) nil end end
これだけなのにすごい。 ActiveSupportとかActiveRecordとかのコードみると勉強になりますね。 スッキリかけるし、エラーハンドリングの時とか特に意識しようと思います。
http://qiita.com/somewhatgood@github/items/b74107480ee3821784e6
この方々の良くまとめられていてとても参考になりましたm(__)m
合計を計算するときとか
sum = 0 (1..10).each {|n| sum += n} puts sum # => 55
よくこんな感じのコードを書いてます。
inject()を用いてこのようにかけるみたいです。
puts (1..10).inject(0) {|sum, n| sum + n} # => 55
ループでの計算結果を入れる変数が、ブロックの中で済んでいるのでスッキリですね。
これからinjectたくさん使っていこうと思います。
追記
# 以下同じ p (1..10).inject(0) {|count, n| count + n} p (0..10).inject {|count, n| count + n} p (1..10).inject(:+)
3つ目すげぇ短い!!
引用
http://d.hatena.ne.jp/kenkitii/20090114/ruby_inject
http://naoty.hatenablog.com/entry/20110726/1311691890
ショッカー届いた。
ショッカーに感銘を受けて買ったものが今日届いた。
この前買ったエガちゃんとコラボ。
これでオレはブレないはずだ。
きっと。
- 出版社/メーカー: バンダイ
- 発売日: 2013/07/13
- メディア: おもちゃ&ホビー
- この商品を含むブログ (2件) を見る
figma 江頭2:50 (ノンスケール ABS&PVC製塗装済み可動フィギュア)
- 出版社/メーカー: フリーイング
- 発売日: 2013/06/22
- メディア: おもちゃ&ホビー
- クリック: 786回
- この商品を含むブログ (10件) を見る
ショッカーが語るリーダーシップと組織論
ショッカーに就職したくなった。
モチベーション3.0 すごく共感&納得しました。
githubでPull Request送られてきたら。
1コ前のエントリ。
ソーシャルコーディング
これを読んでくれた方がいて、さっそくPull Request を送ってくれました。
ありがとうございますm(__)m
github の Pull Request に初挑戦。
@whitech0c0 はじめまして、ブログ拝見しました。ソーシャルコーディングなるものに挑戦したかったため LabRoulette というリポジトリに Pull Request をさせていただきました。初学者なので間違ってたりするかもしれませんが、よろしくお願い致します。
— Yuji Shimoda (@yuji_shimoda) May 25, 2013
とういことで、今回は
@yuji_shimoda さんからもらったPull Requestの変更を検証して安全にマージするということをやりました。
※いつもは同じ研究室の人と近くで話ながらpullとかpushをやっているので、今回のようなケースはちょっと緊張...
githubページには親切にこのような案内がでていたので、この手順に沿って作業開始。
Step1 まずはマージ用のブランチを作成して、そのブランチに切り替えます。
$ git checkout -b ブランチ名 親
Step2 このブランチでpullして実際に動かしてみる
ここでちょっと自分の仕様にするためちょこっと書き換えました。
そして、コミット。
Step3
自身のmasterブランチへ切り替えて、さきほどのブランチをマージして
githubへpush
ここでmasterブランチへマージせずに、作成したブランチでgithub側へpushした方が良いのかな?
トピックブランチ的に。
でもまぁ今回はgithubの案内に沿ってやってみました。
無事にgithubにpush完了。
本来ならば、masterの他にdevlopのブランチを作成してそれ以下ですべてやるのがいいのかもしれません。。たぶん。
さいごに
$ git branch -D ブランチ名
これでマージ用のブランチを削除しておわり。
続きを読む