Sha256: 56a2a01e6c3f7f7d43f982328b2e8bbb02187500b924e92d61890c9a055a76fa

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

module BrowserMob
  module Proxy

    class Client
      def self.from(server_url)
        port = JSON.parse(
          RestClient.post(URI.join(server_url, "proxy").to_s, '')
        ).fetch('port')

        uri = URI.parse(File.join(server_url, "proxy", port.to_s))
        resource = RestClient::Resource.new(uri.to_s)

        Client.new resource, uri.host, port
      end

      def initialize(resource, host, port)
        @resource = resource
        @host = host
        @port = port
      end

      def new_har(ref = nil)
        previous = @resource["har"].put :initialPageRef => ref
        HAR::Archive.from_string(previous) unless previous.empty?
      end
      
      def new_page(ref)
        @resource['har/pageRef'].put :pageRef => ref
      end

      def har
        HAR::Archive.from_string @resource["har"].get
      end

      def selenium_proxy
        require 'selenium-webdriver' unless defined?(Selenium)
        Selenium::WebDriver::Proxy.new(:http => "#{@host}:#{@port}")
      end

      def close
        @resource.delete
      end
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
browsermob-proxy-0.0.2 lib/browsermob/proxy/client.rb