Rails上 で発生したエラーを Idobata に通知するための gem
Rails上で発生したエラーを Idobata に通知する exception_notification-idobata という Gem を作っています(動くけどテスト書いてないというひどいステータス)
追記: テスト書いてリリースしました。
使い方
- Gemfile
gem 'exception_notification' gem 'exception_notification-idobata'
以下のコードを enviroments/production.rb 等に配置。
Sample::Application.configure do config.middleware.use ExceptionNotification::Rack, idobata: { url: HOOK_ENDPOINT } end
HOOK_ENDPOINT
の部分には Idobata 上で Generic Hook を追加することで生成されるURLを使用します。
あとはエラーが発生するのを待ちます。
通知するエラーの内容
party_foul なんかを参考()にエラーとして出てくる情報、見た目を整えてみました。そして以下が、実際にエラーが発生した時に投稿される内容になります。
最後に
もっともっと!細かくエラーを!苦しい!
という方は pullrequest をして頂けると幸いです。
PhantomJS には Function.prototype.bind は無いようでした。
poltergeist 氏が悲鳴をあげたので調べてみたら PhantomJS には Function.prototype.bind
が無いようでした。
[bravo:~]> phantomjs phantomjs> Function.prototype.bind undefined phantomjs> console.log(typeof Function.prototype.bind); undefined undefined phantomjs> console.log(typeof Function.prototype.apply); function undefined
あわせて読みたい
Gentoo で poltergeist の remote debugging が上手く動かなかった話
Capybara の JavaScript driver の poltergeist には remote debugging なるものがあります。
昨日、テストが通らずはまっていた時に remote debugging のことを思い出してやってみるも自分の環境では動かず...
原因
remote debugging を使うには以下のように driver を登録する必要があります。
Capybara.register_driver :poltergeist_debug do |app| Capybara::Poltergeist::Driver.new(app, inspector: true) end Capybara.javascript_driver = :poltergeist_debug
そして、new
に渡す引数が inspector: true
の場合 poltergeist は以下の4つのコマンドから立ち上げるブラウザを決めるようです。
BROWSERS = %w(chromium chromium-browser google-chrome open)
参考: https://github.com/jonleighton/poltergeist/blob/master/lib/capybara/poltergeist/inspector.rb
私は Gentoo 上で google-chrome の stable を使っていて、コマンドとしては google-chrome-stable
なので上記の BROWSERS
の中には当然含まれていません。
解決方法
オプションの inspector
には文字列を渡す事ができます。なので今回は自分が使用しているgoogle-chrome-stable
を渡すことで事なきをえました。
Capybara::Poltergeist::Driver.new(app, inspector: 'google-chrome-stable')
最後に
最近 chrome のバージョンごと?(stableとかbetaとか)にパッケージがわかれたためこんなハマり方をしたのだと思いつつ、まだ落ちているテストを眺めているのでした。まる