Sha256: 16a4e0ee0aaeb9842f95517300580ad5a37cd53d318246b551e77dd686d8c3c7

Contents?: true

Size: 1.1 KB

Versions: 39

Compression:

Stored size: 1.1 KB

Contents

module Webrat
  module SaveAndOpenPage
    # Saves the page out to RAILS_ROOT/tmp/ and opens it in the default
    # web browser if on OS X. Useful for debugging.
    #
    # Example:
    #   save_and_open_page
    def save_and_open_page
      return unless File.exist?(saved_page_dir)

      filename = "#{saved_page_dir}/webrat-#{Time.now.to_i}.html"

      File.open(filename, "w") do |f|
        f.write rewrite_css_and_image_references(response_body)
      end

      open_in_browser(filename)
    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 doc_root
      response_html.gsub(/("|')\/(stylesheets|images)/, '\1' + doc_root + '/\2')
    end

    def saved_page_dir #:nodoc:
      File.expand_path(".")
    end

    def doc_root #:nodoc:
      nil
    end

  private

    # accessor for testing
    def ruby_platform
      RUBY_PLATFORM
    end

  end
end

Version data entries

39 entries across 39 versions & 16 rubygems

Version Path
dbrady-webrat-0.4.4.2 lib/webrat/core/save_and_open_page.rb
diabolo-webrat-0.5.1 lib/webrat/core/save_and_open_page.rb
dstrelau-webrat-0.5.1 lib/webrat/core/save_and_open_page.rb
emipair-webrat-0.0.1 lib/webrat/core/save_and_open_page.rb
garnierjm-webrat-0.4.5 lib/webrat/core/save_and_open_page.rb
hardbap-webrat-0.5.1 lib/webrat/core/save_and_open_page.rb
hardbap-webrat-0.5.2 lib/webrat/core/save_and_open_page.rb
winton-sum-0.1.0 vendor/webrat/lib/webrat/core/save_and_open_page.rb
winton-sum-0.1.1 vendor/webrat/lib/webrat/core/save_and_open_page.rb
honkster-webrat-0.6.0.10 lib/webrat/core/save_and_open_page.rb
honkster-webrat-0.6.0.9 lib/webrat/core/save_and_open_page.rb
darkofabijan-webrat-0.6.1 lib/webrat/core/save_and_open_page.rb
kbaum-webrat-0.5.1 lib/webrat/core/save_and_open_page.rb
kbaum-webrat-0.6.1.pre lib/webrat/core/save_and_open_page.rb
cynergy-webrat-0.6.0 lib/webrat/core/save_and_open_page.rb
webrat-0.6.0 lib/webrat/core/save_and_open_page.rb
radar-webrat-0.5.1.1 lib/webrat/core/save_and_open_page.rb
radar-webrat-0.5.1 lib/webrat/core/save_and_open_page.rb
sum-0.1.1 vendor/webrat/lib/webrat/core/save_and_open_page.rb
mkuklis-webrat-0.5.1 lib/webrat/core/save_and_open_page.rb