PerlerのRuby日記

Rubyとか

Sinatraのエラーハンドリング

http://www.sinatrarb.com/intro.html#Error%20Handling

こちらを見ると例外はRackオブジェクトのsinatra.errorに入っているとあるが、ブロック引数としても受け取ることができる。
(バージョン1.4.4で確認)

require "sinatra"

# developmentモードでもデバッグ表示させない
set :show_exceptions, false

# ブロック引数で例外オブジェクトを受け取る
error do |e|
  status 500
  # これでもできるけど
  #body env['sinatra.error'].message
  # これでもよい
  body e.message
end

get "/hoge" do
  raise "hoge"
end
$ bundle exec ruby app.rb
$ curl localhost:4567/hoge
hoge

初めてTravis CI使った

https://travis-ci.org/rightgo09/chamber

初めてTravis CI使った。

CIさせるための.travis.ymlの設定ファイルの書き方があって
「またこういうルールを覚える作業が始まるお・・・」とダウナーにTravis CI: Building a Ruby Projectを見たらデフォルトでbundle installとrakeコマンドを打つみたいだったので、
いまは最小限のこれだけで事足りた。

language: ruby
rvm:
  - 2.1.0

3行である。
たぶん何かしようとするたびに増えていくんだろうなー。

Chamberっていうbotをつくった

f:id:rightgo09:20140218094617p:plain

https://github.com/rightgo09/chamber

外国人と英語でチャットしているときに、よく「ん?」となって辞書を引くのがしんどくなったので
翻訳してくれるbotをつくった。

元ネタはこれ。 http://matome.naver.jp/odai/2136876483489139901

Microsoftの翻訳APIが1ヶ月で2_000_000文字まで無料なのでそれを使った。
アクセストークンが10分で切れるので、少し時間経っただけで取りに行くのが若干だるいけど。


Slackもすごく見やすくてよいサービスですねーって言ってたら


ローンチされたみたいです。お金払わなきゃ。


参考: