From 5560e273dbbe9621ca66f420c1ecc4a278438e92 Mon Sep 17 00:00:00 2001 From: Nikita Bulaj Date: Sun, 1 Apr 2018 20:42:07 +0300 Subject: [PATCH] #19: return URL with scheme for Proxy --- README.md | 2 +- lib/proxy_fetcher/proxy.rb | 11 +++++++++-- spec/proxy_fetcher/proxy_spec.rb | 4 ++++ 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0fe6488..e6dceb5 100644 --- a/README.md +++ b/README.md @@ -401,7 +401,7 @@ Also you can call next instance methods for every Proxy object: * `socks4?` * `socks5?` * `uri` (returns `URI::Generic` object) -* `url` (returns a formatted URL like "_http://IP:PORT_" ) +* `url` (returns a formatted URL like "_IP:PORT_" or "_http://IP:PORT_" if `scheme: true` provided) ## Providers diff --git a/lib/proxy_fetcher/proxy.rb b/lib/proxy_fetcher/proxy.rb index f9a4df2..baf03c6 100644 --- a/lib/proxy_fetcher/proxy.rb +++ b/lib/proxy_fetcher/proxy.rb @@ -91,11 +91,18 @@ def uri # Returns String object with addr:port values of the proxy. # + # @param scheme [Boolean] + # Indicates if URL must include proxy type + # # @return [String] # true if proxy connectable, otherwise false. # - def url - "#{addr}:#{port}" + def url(scheme: false) + if scheme + URI::Generic.build(scheme: type, host: addr, port: port).to_s + else + URI::Generic.build(host: addr, port: port).to_s + end end end end diff --git a/spec/proxy_fetcher/proxy_spec.rb b/spec/proxy_fetcher/proxy_spec.rb index 82c36ac..16cb72c 100644 --- a/spec/proxy_fetcher/proxy_spec.rb +++ b/spec/proxy_fetcher/proxy_spec.rb @@ -68,4 +68,8 @@ it 'returns URL' do expect(proxy.url).to be_a(String) end + + it 'returns URL with schema' do + expect(proxy.url(scheme: true)).to include('://') + end end