class ProxyConf::Engine

Public Instance Methods

add(name, proxy) click to toggle source
# File lib/proxyconf/engine.rb, line 5
def add(name, proxy)
  validate_name name
  validate_uri proxy
  filepath = File.join(ProxyConf::HOME, ProxyConf::PROXIES_DIR, name)
  File.open(filepath, "w") do |file|
    file.puts "export http_proxy=#{proxy}"
    file.puts "export ftp_proxy=#{proxy}"
    file.puts "export https_proxy=#{proxy}"
  end
end
info(name) click to toggle source
# File lib/proxyconf/engine.rb, line 22
def info(name)
  if_exists(name) do |filepath|
    puts File.read(filepath)
  end
end
list() click to toggle source
# File lib/proxyconf/engine.rb, line 28
def list
  path = File.join(ProxyConf::HOME, ProxyConf::PROXIES_DIR, "*")
  Dir.glob(path).each do |filepath|
    puts File.basename(filepath)
  end
end
remove(name) click to toggle source
# File lib/proxyconf/engine.rb, line 16
def remove(name)
  if_exists(name) do |filepath|
    File.delete(filepath)
  end
end

Protected Instance Methods

if_exists(name, &block) click to toggle source
# File lib/proxyconf/engine.rb, line 53
def if_exists(name, &block)
  filepath = File.join(ProxyConf::HOME, ProxyConf::PROXIES_DIR, name)
  if File.exist? filepath
    block.call(filepath)
  else
    $stderr.puts "no such proxy name: #{name}"
  end
end
validate_name(name) click to toggle source
# File lib/proxyconf/engine.rb, line 37
def validate_name(name)
  unless name =~ /^[0-9a-zA-Z_\-]*$/
    $stderr.puts "invalid name: #{name}"
    exit 1
  end
end
validate_uri(uri) click to toggle source
# File lib/proxyconf/engine.rb, line 44
def validate_uri(uri)
  begin
    URI.parse(uri)
  rescue URI::InvalidURIError
    $stderr.puts "invalid proxy uri: #{uri}"
    exit 1
  end
end