Rubyでall?を使ってみた

all?とはすべての要素がtrueの場合にtrueとなり、ひとつでもfalseならfalseを返します
コードで見てみる

japanese = 80
english = 70
p 'good ' if japanese > 60 && english > 60

とすれば、国語と英語が60より大きいので good と言ってくれます
all?を使うと

japanese = 80
english = 70
p 'good ' if [japanese, english].all? { |p| p > 60 }

でいけます
便利ですね

Railsでモデルの並び順を変える

railsでmodelを取るとき

@user = User.all

とかでとれますが、順番をつけるなら

@user = User.all.order('id DESC')

とすれば、idの降順(昇順ならDESC外すか、ASC)になります
DESCって何?となる人のためには

@user = User.all.order(:id).reverse_order

のほうがいいかもしれません

gitで作業を一時的に退避させて違う作業をする

gitでファイル管理して作業中、急な依頼が..だいぶきりが悪い..
そんなときにはgit stash

$ vim sample.txt
とかでがーーーと作業中、急な依頼

$ git stash save
Saved working directory and index state WIP on master: 6ea09e4 add sample3
HEAD is now at 6ea09e4 add sample3

などと、変更したファイルがなかったことになって、最後のコミットへ戻ります

急な依頼を対応して..
もとに戻すには

$ git stash list
stash@{0}: WIP on master: 6ea09e4 add sample3

stashした数だけ保存されてます
最新を元に戻すなら
$ git stash pop

戻したいものを指定するなら
$ git stash stash@{0}

とすればいいです

stashたまに便利です

Rubyで何年何ヶ月差があるか表示してみる

Rubyで2つの日付の差を調べて、何年何ヶ月開いているかを書いてみました

[code lang=ruby]
require "date" # — 1.

today = Date.today
someday = Date.new(2012, 10, 10)

today_months = today.year * 12 + today.month # — 2.
someday_months = someday.year * 12 + someday.month

months_diff = today_months – someday_months

year, month = months_diff.divmod(12) # — 3.

p "#{year}年#{month}ヶ月"
[/code]

  1. dateクラスは組み込みクラスでないので、require
  2. 日付から年も月数になおして、月数の合計を求めます
  3. divmodで割り算した商とあまりを変えします

こんな感じでした