gemは問題無くできるものの、CIがエラー。
$ bundle exec rake
/home/vagrant/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.21/lib/bundler/rubygems_integration.rb:143:in `block in replace_gem': rake is not part of the bundle. Add it to Gemfile. (Gem::LoadError)
from /home/vagrant/.rvm/gems/ruby-1.9.2-p290/bin/rake:18:in `'
Done. Build script exited with: 1
よく見ればちゃんと書いてある。
# gemspec:
s.add_development_dependency 'rake', '~> 0.9.2.2'
s.add_development_dependency 'rdoc', '~> 3.11'
Tracis-CIでrakeとrdoc使うからdevelopment_dependencyには入れとかなきゃいけない。
dm-validations-i18n.gem version 0.3.9 released.
This gem can localize error messages for dm-validations.
I made it, because dm-core or dm-validations are not have localized error messages, and authors of them will not provide them.
The gem supports locales en, ja, ru, zh-CN and zh-TW. These locales made by gugods, makevoid and others in several countries. I really appreciated their works.
production環境ではexception_notificationでエラーをメールしてる人も多い思います。(AirBreakとかも)
怖話でもそうやってエラーメールが一通も来ない状態にしたいんですが、例えば下記のような”バグじゃないエラー”は皆様どうやって対応してるんでしょう?
A ActionView::MissingTemplate occurred in home#index:
Missing template home/index, application/index with {:handlers=>[:erb, :builder, :haml], :formats=>["*/*;q=0.01"], :locale=>[:ja, :ja]}. Searched
formatsに*/*;q=0.01なんて文字列を送ってくるのは単なるスパム。使ってるformatだけに限定するように何か書く?うーん・・・。
最近(精神的な)調子が悪いのでOSをLionにしました。
DVDに焼いたり、Bootable USBを作ったりなんだりして予想通りグダグダと余計な時間を取られました。クリーンインストールしたい方で特に拘りがない方はコレを買うのが時間もかからず楽だと思います。
OS X Lion USBメモリ版 - Apple Store (Japan)
Aquaの水滴っぽいデザインが鳴りを潜め、凹凸の減ったUIが気分良いです。
一番嬉しかったのはSystem localeをenにしてる時でも今まではTime Zoneが日本であれば時計が日本語表示だったんですが、それがSystem locale依存になったところです。
Screencastとか撮ってる時気になってたんですよね。
Microsoft Arc Keyboard英語版を手に入れましたが、Google日本語入力でちょっと苦戦。
US配列として認識させる
下記の通りでOK。
Windows 7 で英語キーボードを使って日本語を入力する - バイナリアンを目指して
Alt + Spaceで入力切替
下記の素晴らしいアプリで解決。
今までMacと行ったり来たりする時に配列違いでちょいウザだったんですがこれでスッキリしました。
家のWindows PC用に「無線でUS配列のテンキーの無いキーボード」が欲しいと思ったんですが、これが意外と無い。
結論から言うとMicrosoft Arc KeyboardをAmazon.comから買った。
Amazon.comでしか買えないので個人輸入・転送サービスのスピアネットという転送サービスを使った。
転送サービスとは、要はアメリカ国内どっかの住所が割り当てられて、そこを郵送先として普通にAmazon.comで物を買う。そうすると転送サービスからメールが来るので日本の住所に手数料を払って更に郵送してもらうというもの。
上記のサイトでは手数料は$9ぐらい。サービスの使い方は相当にわかり辛いし、サイトは怪しいので一般の方にはお勧めできませんが、一回買ってみればやり方がわかるので今後もちょくちょく使ってみるつもりです。
20%ぐらい「買ったものが届かず、金だけ取られても仕方ないか」という気持ちで使えばなかなか便利だと思います。
$ rails c
>> Story.last.previous
=> #<Story id: 1, title: "パンドラ(禁后)", body: "私の故郷に伝わっていた「禁后」というものにまつわる話です。\nどう読むのかは最後までわかりませんでしたが...", view: 0, user_id: 1, created_at: "2011-11-25 08:48:33", updated_at: "2011-11-25 08:48:33", comments_count: 0, scares_count: 0>
バグ報告からふとActiveRecordで使えるpreviousメソッドってどこからきてるんだろう?と思ってgemsをgrepしてみるも見当たらず。
┐(´ー`)┌「これだからメタプログラミングってやつは・・・」.
なんですと!よし、場所を探り当ててやる!
>> Story.last.method(:previous).source_location
=> ["/Users/komagata/code/kowabana-jp/app/models/story.rb", 38]
( ゚д゚)
(つд⊂)ゴシゴシ
# app/models/story.rb:
class Story < ActiveRecord::Base
def previous
Story.where('id < ?', id).order('id').limit(1).last
end
end
(((((((( ;゚Д゚)))))))
自分で普通にmodelに定義してた。
因みに複数人開発で他人が実装したとかではなく、紛れも無く俺が実装したメソッドである。おまけにテストも書いてある。
何故このような自体が発生したのか。それはメソッド名が自然過ぎたか、俺がアルツハイマーか、もしくはその両方である。