url_resolver 0.1.11 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/url_resolver.rb +2 -0
- data/lib/url_resolver/configuration.rb +19 -1
- data/lib/url_resolver/resolver.rb +2 -19
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 60d5469ad644db43bceaafab7e461b225ad67685
|
4
|
+
data.tar.gz: 2520794b065432e22d8ed73a537627a10aab0c00
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f22eb1931f14c1ace584762838b169ee4a635edcb3dc0350a94cc0256e1bd728439148765dea6e4bf045206401ce8a20823238603b8f1d3e8b0550b970002759
|
7
|
+
data.tar.gz: 0c7b5380c16afcd1b7dbb9e7feac311937751c90762a824c7c6b416d47fca76f60f350bb3f2a50bca45a4a43144301c2a23c80074a39e60a251b8863194afd5c
|
data/lib/url_resolver.rb
CHANGED
@@ -1,13 +1,31 @@
|
|
1
1
|
module UrlResolver
|
2
2
|
class Configuration
|
3
|
-
attr_accessor :cache_failures, :user_agent
|
3
|
+
attr_accessor :cache_failures, :user_agent, :errors_to_ignore
|
4
4
|
attr_reader :cache, :url_cache
|
5
5
|
|
6
|
+
DEFAULT_ERRORS_TO_IGNORE = [SocketError,
|
7
|
+
Errno::ETIMEDOUT,
|
8
|
+
Errno::ECONNREFUSED,
|
9
|
+
Errno::ECONNRESET,
|
10
|
+
RestClient::InternalServerError,
|
11
|
+
RestClient::ServiceUnavailable,
|
12
|
+
RestClient::BadRequest,
|
13
|
+
RestClient::GatewayTimeout,
|
14
|
+
RestClient::RequestTimeout,
|
15
|
+
RestClient::ResourceNotFound,
|
16
|
+
RestClient::BadGateway,
|
17
|
+
RestClient::MethodNotAllowed,
|
18
|
+
RestClient::Unauthorized,
|
19
|
+
RestClient::Forbidden,
|
20
|
+
RestClient::NotAcceptable,
|
21
|
+
URI::InvalidURIError]
|
22
|
+
|
6
23
|
def initialize
|
7
24
|
@cache_failures = true
|
8
25
|
@cache = nil
|
9
26
|
@url_cache = Cache.new(@cache)
|
10
27
|
@user_agent = 'Ruby'
|
28
|
+
@errors_to_ignore = DEFAULT_ERRORS_TO_IGNORE
|
11
29
|
end
|
12
30
|
|
13
31
|
def cache=(cache)
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'rest-client'
|
2
|
-
|
3
1
|
module UrlResolver
|
4
2
|
class Resolver
|
5
3
|
def cache
|
@@ -19,23 +17,8 @@ module UrlResolver
|
|
19
17
|
response.args[:url].tap do |final_url|
|
20
18
|
cache.set_url(url_to_check, final_url)
|
21
19
|
end
|
22
|
-
rescue
|
23
|
-
|
24
|
-
Errno::ECONNREFUSED,
|
25
|
-
Errno::ECONNRESET,
|
26
|
-
RestClient::InternalServerError,
|
27
|
-
RestClient::ServiceUnavailable,
|
28
|
-
RestClient::BadRequest,
|
29
|
-
RestClient::GatewayTimeout,
|
30
|
-
RestClient::RequestTimeout,
|
31
|
-
RestClient::ResourceNotFound,
|
32
|
-
RestClient::BadGateway,
|
33
|
-
RestClient::MethodNotAllowed,
|
34
|
-
RestClient::Unauthorized,
|
35
|
-
RestClient::Forbidden,
|
36
|
-
RestClient::NotAcceptable,
|
37
|
-
URI::InvalidURIError => e
|
38
|
-
|
20
|
+
rescue *UrlResolver.configuration.errors_to_ignore => e
|
21
|
+
|
39
22
|
if e.message == 'getaddrinfo: nodename nor servname provided, or not known'
|
40
23
|
response = RestClient.head(url_to_check) { |response, request, result, &block| response }
|
41
24
|
url = response.headers[:location] if response.code == 302 && response.headers[:location]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: url_resolver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Amir Manji
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-05-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -73,8 +73,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
73
73
|
version: '0'
|
74
74
|
requirements: []
|
75
75
|
rubyforge_project:
|
76
|
-
rubygems_version: 2.
|
76
|
+
rubygems_version: 2.4.5
|
77
77
|
signing_key:
|
78
78
|
specification_version: 4
|
79
79
|
summary: Url Resolver!
|
80
80
|
test_files: []
|
81
|
+
has_rdoc:
|