Sha256: 6ee63613600b5a7b8a4f4e63ced27c37482319039fc38303eb5b2d3b8d9a7df8

Contents?: true

Size: 1.09 KB

Versions: 2

Compression:

Stored size: 1.09 KB

Contents

module SSLCheck
  class Check
    attr_accessor :peer_cert, :ca_bundle, :host_name
    def initialize(client=nil, validator=nil)
      @client = client || Client.new
      @validator = validator || Validator.new
      @errors = []
      @checked = false
    end

    def check(url)
      fetch(url)
      validate if no_errors?
      @checked = true
      @url = url
      return self
    end

    def errors
      @errors
    end

    def failed?
      return false if no_errors?
      true
    end

    def valid?
      return true if no_errors? && checked?
      false
    end

    def checked?
      return true if @checked
      false
    end

    def url
      @url
    end

  private

    def no_errors?
      @errors.empty?
    end

    def fetch(url)
      response = @client.get(url)
      self.peer_cert = response.peer_cert
      self.ca_bundle = response.ca_bundle
      self.host_name = response.host_name

      response.errors.each do |error|
        @errors << error
      end
      true
    end

    def validate
      @validator.validate(host_name, peer_cert, ca_bundle)
      true
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sslcheck-0.9.1 lib/sslcheck/check.rb
sslcheck-0.9.0 lib/sslcheck/check.rb