Class: Libproxy::ProxyFactory
- Inherits:
-
Object
- Object
- Libproxy::ProxyFactory
- Defined in:
- ext/libproxy/libproxy_ext.c
Instance Method Summary collapse
-
#Libproxy::ProxyFactory.new ⇒ Object
constructor
Returns a new Libproxy::ProxyFactory object.
-
#proxies(url) ⇒ Array
Returns a list of proxies to use for url as an array.
Constructor Details
#Libproxy::ProxyFactory.new ⇒ Object
Returns a new Libproxy::ProxyFactory object.
Libproxy::ProxyFactory.new #=> #<Libproxy::ProxyFactory:0x007fde591a6500>
31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'ext/libproxy/libproxy_ext.c', line 31
static VALUE
rb_proxy_factory_initialize(VALUE self)
{
pxProxyFactory *pf = px_proxy_factory_new();
if (pf == NULL) {
rb_raise(rb_eLibproxyError, "px_proxy_factory_new");
}
DATA_PTR(self) = pf;
return self;
}
|
Instance Method Details
#proxies(url) ⇒ Array
Returns a list of proxies to use for url as an array.
Libproxy::ProxyFactory.new.proxies("http://example.com")
#=> ["socks://proxy.example.com:1080", "socks5://proxy.example.com:1080"]
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'ext/libproxy/libproxy_ext.c', line 59
static VALUE
rb_proxy_factory_proxies(VALUE self, VALUE url)
{
pxProxyFactory *pf = check_proxy_factory(self);
char **proxies;
int i;
VALUE ret;
StringValue(url);
proxies = px_proxy_factory_get_proxies(pf, RSTRING_PTR(url));
if (proxies == NULL) {
rb_raise(rb_eLibproxyError, "px_proxy_factory_get_proxies: url='%s'", RSTRING_PTR(url));
}
ret = rb_ary_new();
for (i = 0; proxies[i]; i++) {
rb_ary_push(ret, rb_str_new_cstr(proxies[i]));
free(proxies[i]);
}
free(proxies);
return ret;
}
|