タグ

ブックマーク / satake7.hatenadiary.org (2)

  • ActiveSupportのHash拡張 - satake7’s memo

    認証系のソースを読んでいると『options.reverse_merge! :title => ip_addr』というのが出てきて、こんなの Rubyにあったっけと思って調べたら、やっぱ Rubyにはなくて ActiveSupportのクラス拡張でした。せっかく調べたのでまとめ。 Hash#reverse_merge, Hash#reverse_merge! Hash#merge(こちらは Rubyに元々あるメソッド)の逆。mergeはキーが重複する場合、値を置き換えるが、reverse_mergeはキーが重複する場合、値を置き換えない。 用途としてこれは便利だとパッと思いつくものはないんだけど、強いてあげれば、初期値のセット(2回目以降の値はセットしない)とか、デフォルト値のセット(値を書き換えない)くらいかな。 options = { :a => 1, :b => 2, :c => 3

    ActiveSupportのHash拡張 - satake7’s memo
    kamipo
    kamipo 2013/05/24
  • 日時(DateTime)のデフォルト - satake7’s memo

    Railsの DateTime型を使っていて「なんで日付の標記が YYYY-MM-DD やねん!」とイラっときたこと、ありませんか? 私はよくあります。 なにもしない場合 PS C:\home\www\3n10> ruby script/console >> DateTime.now => Fri, 24 Oct 2008 05:56:28 +0900 >> DateTime.now.to_s => "2008-10-24T05:56:34+09:00" >> DateTime.now.to_s(:db) => "2008-10-24 05:56:49" こんな風に YYYY-MM-DDで返ってきます。使うときにいちいち、DateTime.now.to_s(:db).gsub("-", "/") なんてこと、やります? やってもいいですけど、もう少しマシな方法があります。 デフォルトを変え

    日時(DateTime)のデフォルト - satake7’s memo
  • 1