26 lines
744 B
Ruby
26 lines
744 B
Ruby
module Capybara
|
|
module SaveAndOpenPage
|
|
extend(self)
|
|
|
|
def save_and_open_page(html)
|
|
require 'tempfile'
|
|
tempfile = Tempfile.new("capybara#{rand(1000000)}")
|
|
tempfile.write(rewrite_css_and_image_references(html))
|
|
tempfile.close
|
|
open_in_browser(tempfile.path)
|
|
end
|
|
|
|
def open_in_browser(path) # :nodoc
|
|
require "launchy"
|
|
Launchy::Browser.run(path)
|
|
rescue LoadError
|
|
warn "Sorry, you need to install launchy to open pages: `gem install launchy`"
|
|
end
|
|
|
|
def rewrite_css_and_image_references(response_html) # :nodoc:
|
|
return response_html unless Capybara.asset_root
|
|
response_html.gsub(/("|')\/(stylesheets|images)/, '\1' + Capybara.asset_root + '/\2')
|
|
end
|
|
end
|
|
end
|