Sha256: 8cdb2adc49d5f74f8cb36450503a877c116ac93e3e480938f21ed820757ffa4a

Contents?: true

Size: 915 Bytes

Versions: 9

Compression:

Stored size: 915 Bytes

Contents

# encoding: utf-8
module ProxyTester
  class PacResult

    attr_reader  :proxy, :proxy_port, :request_type

    def initialize(verbatim = '')
      @verbatim = verbatim

      if verbatim.blank?
        parsed_content = {}
      else
        parsed_content = parse(verbatim) || {}
      end

      @proxy         = parsed_content[:proxy]
      @proxy_port    = parsed_content[:proxy_port]
      @request_type  = parsed_content[:request_type]
    end

    def verbatim
      @verbatim.to_s
    end

    private

    def parse(string)
      regex.match(string)
    end

    def regex
      %r{
      \A
      "?
      (?<request_type>
       [A-Z]+
      )
      (?:
       \s+
       (?<proxy>
        [0-9]{1,3}(:?\.[0-9]{1,3}){3} || 
        [[:alnum:]]+(?:\.[[:alnum:]]+)*\.?
       )
       (?:
        :
        (?<proxy_port>[0-9]+)
       )?
      )?
      ;?
       "?
       \Z
       }x
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
proxy_tester-0.1.10 lib/proxy_tester/pac_result.rb
proxy_tester-0.1.8 lib/proxy_tester/pac_result.rb
proxy_tester-0.1.6 lib/proxy_tester/pac_result.rb
proxy_tester-0.1.5 lib/proxy_tester/pac_result.rb
proxy_tester-0.1.4 lib/proxy_tester/pac_result.rb
proxy_tester-0.1.3 lib/proxy_tester/pac_result.rb
proxy_tester-0.1.2 lib/proxy_tester/pac_result.rb
proxy_tester-0.1.1 lib/proxy_tester/pac_result.rb
proxy_tester-0.1.0 lib/proxy_tester/pac_result.rb