teamcapybara--capybara/lib/capybara/save_and_open_page.rb

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