gongo/gnawrnip — pull request #1 by gongo (2013-06-23 15:40:28+00:00)
Title: スクリーンショットを animation GIF 化

## 目的

エラー出た瞬間の画像が見れるのはいいが、
時々「お前なんでその画面に居るの」みたいなシチュエーションがあって、
そういう時ってだいたい画面見ながら動かしてると再現しなくて悲しいので
道程も見たいなってことで

## 手段

画面が更新されそうなアクションの直後に `save_screenshot()` を発動する

```ruby
module Capybara
class Session
SAVE_SCREENSHOT_METHODS = [
:attach_file, :check, :choose, :click_link_or_button, :click_button,
:click_link, :fill_in, :select, :uncheck, :unselect, :click_on,
:evaluate_script, :visit
]

SAVE_SCREENSHOT_METHODS.each do |method|
alias_method "after_hook_#{method}".to_sym, method

define_method method do |*args, &block|
send("after_hook_#{method}", *args, &block)
temp = Tempfile.new(['gnawrnip', '.png'])
save_screenshot(temp.path)

Gnawrnip::Animation.add_frame(temp.path)
end
end
end
end
```

みたいな感じかな。(Ruby 2.0 だと Module#prepend が使えるが、まあいい…)