Class: LocalPac::ProxyPac::PACEngine

Inherits:
Object
  • Object
show all
Defined in:
lib/local_pac/proxy_pac/pac_engine.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ PACEngine

Returns a new instance of PACEngine.



11
12
13
14
15
16
17
18
19
# File 'lib/local_pac/proxy_pac/pac_engine.rb', line 11

def initialize(options = {})
  @file        = options.fetch(:file)
  @environment = options.fetch(:environment, {})

  @engine             = ProxyPacRb::Parser
  @environment_engine = ProxyPacRb::Environment
rescue KeyError
  fail ArgumentError, ":file-argument is missing"
end

Instance Method Details

#find(uri) ⇒ Object



21
22
23
24
25
26
27
28
# File 'lib/local_pac/proxy_pac/pac_engine.rb', line 21

def find(uri)
  e = engine.new(environment_engine.new(environment)).source(file.content)
  e.find(uri)
rescue V8::Error, ProxyPacRb::Exceptions::ProgramError => err
  error_id = LocalPac.error_id
  LocalPac.ui_logger.fatal "Error id \"#{error_id}\": An V8::Error occured. This can happen if compiling a proxy.pac fails. The V8::Error-message was: #{err.message}."
  fail Exceptions::PacFileInvalid, error_id 
end