Travis CIをちゃんと使ってみた
以下の2つのgemにちょっとした変更を加えました。
https://github.com/akm/selectable_attr
https://github.com/akm/selectable_attr_rails
それに伴って、どんな環境で動くのかはっきりさせようと思い、昔ちらっと記事 http://mochizblog.heroku.com/21 を読んで「後でやる」にいつのまにかなっていたTravisCIの設定をちゃんとやってみました。
結果すばらしいことが実感できました。
まず他のgemへの依存のないselectable_attrの方は、rubyの1.8.7, 1.9.2, 1.9.3, ruby-head, jruby, ree でテストを行い、パスできるようにしました。
http://travis-ci.org/#!/akm/selectable_attr
さらにactiverecordなどへの依存がある selectable_attr_railsは、 rubyの1.8.7, 1.9.2, 1.9.3, ruby-head, ree それぞれに対して、activerecord-2.3.14, 3.0.10, 3.1.1 でテスト、つまり5x3=15通りのテストを行ってもらうように設定しました。
http://travis-ci.org/#!/akm/selectable_attr_rails
これ普通に開発環境でテストするとしたら大変ですが、Travis CIならちょっと設定を書くだけでやってくれちゃいます。
すばらしー。
I18n.translateのデフォルトの処理を変更したい
I18nモジュールのtranslateメソッドは、訳が見つからない場合
I18n.t(:foo) #=> "translation missing: en.foo"
こんな感じの文字列を返します。
でもそんなん欲しくない場合とかに、i18n-0.6.0では、それぞれのメソッド呼び出しごとに:exception_handlerオプションを指定できるようになりました。
https://github.com/svenfuchs/i18n/commit/2913ff9a7544f223f60e7d7b32c2a0e1af89812b#lib/i18n.rb
I18n.t(:foo, :exception_handler => lambda{|exception, locale, key, options| "bar" }) #=> "bar"
Rubyは否定も演算子オーバーロードできる
RUBY_DESCRIPTION #=> "ruby 1.9.2p274 (2011-06-06 revision 31932) [x86_64-darwin10.7.0]" ! :foo #=> false :foo.! #=> false Symbol.class_eval{ def !; :"!#{self}"; end; } #=> nil :foo.! #=> :"!foo" ! :foo #=> :"!foo"
cucumberでモデル名として日本語も使えるようにpickleを拡張してみた
Railscasts #186 で紹介されているpickleが素晴らしい
http://railscasts.com/episodes/186-pickle-with-cucumber
こんな風にモデルのデータを定義できたりする
https://github.com/akm/pickle_sandbox/blob/master/features/display_products.feature
Feature: Display products In order to to purchase the right product A customer wants to browse products and see detailed infomation Scenario: Show product Given a product exists with name: "Milk", price: "2.99" When I go to the show page for that product Then I should see "Milk" within "h1" And I should see "2.99" Scenario: List products Given the following products exist | name | price | | Milk | 2.99 | | Puzzle | 8.99 | When I go to path "/products" Then I should see products table | Milk | $2.99 | | Puzzle | $8.99 | Then show me the page
でも残念ながらproductを商品と書き換えられなかったので、ちょっと頑張ってみたら、基本的な所はできました。
https://github.com/akm/pickle_sandbox/blob/master/features/display_products_ja.feature
# -*- encoding: utf-8 -*- #language:ja @focus 機能: 商品を表示する ただしい商品を買うために 顧客 が商品をブラウズして詳細な情報を見たい シナリオ: 商品を表示する 前提 次の商品が存在する 名称: "Milk", 価格: "2.99" もし "the show page for that product"ページを表示する ならば "h1"に"Milk"と表示されていること かつ "2.99"と表示されていること シナリオ: 商品一覧を表示する 前提 以下の商品sが存在する | 名称 | 価格 | | Milk | 2.99 | | Puzzle | 8.99 | もし "パス/products"ページを表示する ならば 以下の商品テーブルが表示されること | Milk | $2.99 | | Puzzle | $8.99 | かつ 画面を目視
商品s をなんとかしたいw
近いうちに必要な機能を揃えてgemにする予定。
CentOS 5.5 でデーモン終了時のスクリプト
/etc/rc0.d/K??xx とか /etc/rc6.d/K??xxx で終了時に処理を実行させたい場合、単にsymlinkを貼るだけではだめで、デーモン起動時に /var/lock/subsys/ に デーモン名のファイルをtouchしないといけないみたい。詳しくは /etc/rc.d/rc にその辺がかいてあるはず。
CentOS 5.5 に ruby 1.9.2-p180 とか
VMware Fusion2で RedHat Enterprise Linux 5(64bit) を選んでisoからインストール。
ユーザー作ってsudoで権限を与えて以下のコマンド実行。
3 sudo yum groupinstall 'Development Tools' 4 yum search openssl 5 sudo yum install readline-devel openssl-devel 6 mkdir archives 7 cd archives/ 8 wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p180.tar.gz 9 tar zxf ruby-1.9.2-p180.tar.gz 10 cd ruby-1.9.2-p180 11 ./configure && make 12 sudo make install > make_install.log 13 ruby -v 14 sudo yum install emacs
地震関係のサイト
Google Crisis Response
http://goo.gl/saigai
警報・注意報、災害掲示板、避難所情報、交通機関の運行状況、計画停電などのライフライン、Person Finder、日本赤十字への募金など
東北沖地震 震災情報サイト sinsai.info
Twitter地震情報
http://twinavi.jp/news/detail/12381
「東北関東大震災」について、現状のツイッター関連の情報や使い方の注意点をお伝えします!
jaws-ug
http://jaws-ug.jp/ #jawsug
日本のAWSのユーザーグループの皆さんが超頑張ってます。RTと書かずには公式のリツイートで!
手伝える人は @KenTamagawa にご連絡を。