Sha256: aa4371d1d4ac739797dfebaa48c4af9477758e833d54b44b034a4385255099de

Contents?: true

Size: 831 Bytes

Versions: 21

Compression:

Stored size: 831 Bytes

Contents

# frozen_string_literal: true

module Capybara
  class Server
    class Checker
      TRY_HTTPS_ERRORS = [EOFError, Net::ReadTimeout, Errno::ECONNRESET].freeze

      def initialize(host, port)
        @host, @port = host, port
        @ssl = false
      end

      def request(&block)
        ssl? ? https_request(&block) : http_request(&block)
      rescue *TRY_HTTPS_ERRORS
        res = https_request(&block)
        @ssl = true
        res
      end

      def ssl?
        @ssl
      end

    private

      def http_request(&block)
        Net::HTTP.start(@host, @port, read_timeout: 2, &block)
      end

      def https_request(&block)
        Net::HTTP.start(@host, @port, ssl_options, &block)
      end

      def ssl_options
        { use_ssl: true, verify_mode: OpenSSL::SSL::VERIFY_NONE }
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 2 rubygems

Version Path
capybara-3.15.1 lib/capybara/server/checker.rb
capybara-3.16.2 lib/capybara/server/checker.rb
tdiary-5.0.13 vendor/bundle/gems/capybara-3.15.0/lib/capybara/server/checker.rb
capybara-3.16.1 lib/capybara/server/checker.rb
tdiary-5.0.12.1 vendor/bundle/gems/capybara-3.15.0/lib/capybara/server/checker.rb
capybara-3.16.0 lib/capybara/server/checker.rb
capybara-3.15.0 lib/capybara/server/checker.rb
capybara-3.14.0 lib/capybara/server/checker.rb
capybara-3.13.2 lib/capybara/server/checker.rb
capybara-3.13.1 lib/capybara/server/checker.rb
capybara-3.13.0 lib/capybara/server/checker.rb
tdiary-5.0.11 vendor/bundle/gems/capybara-3.12.0/lib/capybara/server/checker.rb
capybara-3.12.0 lib/capybara/server/checker.rb
capybara-3.11.1 lib/capybara/server/checker.rb
capybara-3.11.0 lib/capybara/server/checker.rb
capybara-3.10.1 lib/capybara/server/checker.rb
capybara-3.10.0 lib/capybara/server/checker.rb
capybara-3.9.0 lib/capybara/server/checker.rb
capybara-3.8.2 lib/capybara/server/checker.rb
capybara-3.8.1 lib/capybara/server/checker.rb