カテゴリー : 2013年 1月

パフォーマンス監視サービス「New Relic」の iPhone アプリが登場!

パフォーマンス監視サービス「New Relic」の iPhone アプリがリリースされたようです。

New Relic for iPhone はてなブックマーク - New Relic for iPhone

New Relic iPhone App

無料プランでしか使っていないのですが、手元で気軽に現在のパフォーマンスをチェックできるのは想像以上に便利ですね。

[Ruby] state_machine の国際化対応 (i18n)

state_machine の国際化対応 (i18n)の方法をメモ。

pluginaweek/state_machine · GitHub はてなブックマーク - pluginaweek/state_machine · GitHub

■ config/locales/model.ja.yml

ja:
  activerecord:
    state_machines:
      order:
        state:
          states:
            accepted: 注文受付
            firmed: 注文確定
            cancelled: 注文キャンセル
            delivered: 発送完了
          events:
            accept: 注文
            cancel: キャンセル
            deliver: 発送
    errors:
      models:
        order:
          attributes:
            state:
              invalid_transition: "%{value}状態では%{event}処理はできません。"

そんでもって、human_state_name で使う。

o.human_state_name
# => "発送完了"

【参考】

I18n documentation is missing · Issue #114 · pluginaweek/state_machine はてなブックマーク - I18n documentation is missing · Issue #114 · pluginaweek/state_machine

[Ruby on Rails] seed_fu を環境毎に分ける

Ruby on Rails で seed_fu のファイルを開発環境毎に分けてみました。

% ls -l db 
total 64
drwxr-xr-x  11 shigeoka  staff    374  1 29 20:10 fixtures/
drwxr-xr-x   3 shigeoka  staff    102 12 27 18:16 fixtures_development/
drwxr-xr-x   3 shigeoka  staff    102  1 30 18:07 fixtures_production/
drwxr-xr-x   3 shigeoka  staff    102  1 30 18:06 fixtures_staging/
drwxr-xr-x  76 shigeoka  staff   2584  1 29 20:10 migrate/
-rw-r--r--   1 shigeoka  staff  18269  1 29 20:10 schema.rb
-rw-r--r--   1 shigeoka  staff    343 12  4 23:32 seeds.rb

どの環境でも共通のデータは、普通に fixtures ディレクトリ以下に設置しています。

その他は、development, staging などでインポートしたいデータが微妙に違ってくるので、suffix に環境名を付けたディレクトリを作って分けました。

それぞれの環境のseedデータをインポートするには下記のように FIXTURE_PATH を指定してあげます。

% rake db:seed_fu FIXTURE_PATH=db/fixtures_development

そんでもって、development, stagingで共通のファイルは require で読み込むようにしています。

# db/fixtures_development/users.rb
require "#{Rails.root}/db/fixtures_staging/groups.rb"

こんな感じです。

[Ruby] 文字列中の半角・全角スペースを削除

Ruby で、文字列中の半角・全角スペースを全て取り除くスニペットをメモ

'a b c'.gsub(/(\s| )+/, '')
 => "abc"

やっていることは gsub メソッドを使って正規表現で、半角スペース or 全角スペースを空白文字に置換しているだけです。

[Git] CUI ツール「tig」のインストール手順

Git の CUI ツール「tig」を Mac でインストールする手順をメモ。

おなじみの homebrew でインストールする。

% brew install tig
==> Downloading http://jonas.nitro.dk/tig/releases/tig-1.1.tar.gz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/tig/1.1 --sysconfdir=/usr/local/etc
==> make install
==> make install-doc-man
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
/usr/local/Cellar/tig/1.1: 14 files, 476K, built in 8 seconds

tig のインストールを確認する。

% which tig
/usr/local/bin/tig

使い方はこの辺を読む。

Tig の表示方法あれこれ #git #AdventCalendar #tig – Qiita はてなブックマーク - Tig の表示方法あれこれ #git #AdventCalendar #tig - Qiita

tig blameが良い #tig #git – Qiita はてなブックマーク - tig blameが良い #tig #git - Qiita

CUI な Git ブラウザ tig を入れてみた – Born Too Late はてなブックマーク - CUI な Git ブラウザ tig を入れてみた - Born Too Late