File: proxifier.rb

package info (click to toggle)
ruby-proxifier 1.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 112 kB
  • sloc: ruby: 341; makefile: 3
file content (25 lines) | stat: -rw-r--r-- 669 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
require "uri"
require "uri/socks"

module Proxifier
  require "proxifier/version"

  autoload :HTTPProxy, "proxifier/proxies/http"
  autoload :SOCKSProxy, "proxifier/proxies/socks"
  autoload :SOCKS5Proxy, "proxifier/proxies/socks"
  autoload :SOCKS4Proxy, "proxifier/proxies/socks4"
  autoload :SOCKS4AProxy, "proxifier/proxies/socks4a"

  def self.Proxy(url, options = {})
    url = URI.parse(url)

    raise(ArgumentError, "proxy url has no scheme") unless url.scheme
    begin
      klass = const_get("#{url.scheme.upcase}Proxy")
    rescue NameError
      raise(ArgumentError, "unknown proxy scheme `#{url.scheme}'")
    end

    klass.new(url, options)
  end
end