Sha256: c3b508e5054fc6ce35ddc9ea01c918114d11b35209ca8da77aed91831f4f7ccf

Contents?: true

Size: 1.15 KB

Versions: 22

Compression:

Stored size: 1.15 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
      platform = ruby_platform
      if platform =~ /cygwin/ || platform =~ /win32/
        `rundll32 url.dll,FileProtocolHandler #{path.gsub("/", "\\\\")}`
      elsif platform =~ /darwin/
        `open #{path}`
      end
    end

    def rewrite_css_and_image_references(response_html) # :nodoc:
      return response_html unless doc_root
      response_html.gsub(/"\/(stylesheets|images)/, doc_root + '/\1')
    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

22 entries across 22 versions & 12 rubygems

Version Path
aslakhellesoy-webrat-0.4.4.1 lib/webrat/core/save_and_open_page.rb
casebook-webrat-0.4.4.1 lib/webrat/core/save_and_open_page.rb
cavalle-webrat-0.4.4.1 lib/webrat/core/save_and_open_page.rb
cavalle-webrat-0.4.4.2 lib/webrat/core/save_and_open_page.rb
davidtrogers-webrat-0.4.4.2 lib/webrat/core/save_and_open_page.rb
dbrady-webrat-0.4.4.1 lib/webrat/core/save_and_open_page.rb
dbrady-webrat-0.4.4 lib/webrat/core/save_and_open_page.rb
diabolo-diabolo-webrat-0.4.4 lib/webrat/core/save_and_open_page.rb
diabolo-webrat-0.4.3 lib/webrat/core/save_and_open_page.rb
diabolo-webrat-0.4.4.1 lib/webrat/core/save_and_open_page.rb
diabolo-webrat-0.4.4.2 lib/webrat/core/save_and_open_page.rb
diabolo-webrat-0.4.4 lib/webrat/core/save_and_open_page.rb
futuresinc-webrat-0.4.4.100 lib/webrat/core/save_and_open_page.rb
futuresinc-webrat-0.4.4.99 lib/webrat/core/save_and_open_page.rb
jwilger-webrat-0.4.4.2 lib/webrat/core/save_and_open_page.rb
jwilger-webrat-0.4.4.3 lib/webrat/core/save_and_open_page.rb
jwilger-webrat-0.4.4.4 lib/webrat/core/save_and_open_page.rb
jwilger-webrat-0.4.4.5 lib/webrat/core/save_and_open_page.rb
ohammersmith-webrat-0.4.4.100 lib/webrat/core/save_and_open_page.rb
ohammersmith-webrat-0.4.4.98 lib/webrat/core/save_and_open_page.rb