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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7e123030b07b17436a33a65081ebe36fb9f6767b
4
- data.tar.gz: a055eea74af91b2bfaad5de853c80950a7125729
3
+ metadata.gz: 60d5469ad644db43bceaafab7e461b225ad67685
4
+ data.tar.gz: 2520794b065432e22d8ed73a537627a10aab0c00
5
5
  SHA512:
6
- metadata.gz: 9477db9644e5e795c456ad71326fbaae55a1e8bdb1b0c204044ce7777a29cb643cc7b28e068992c8e1bd899bb35eae7653d7fd7f8a01d4f9b40d30c969a99c7b
7
- data.tar.gz: 67025535ab9b4979887465b4b3224cac9d50053e25473e7424a3156475a0dfd279a9e86e7e6551ad9ebf4080a61cfb0d2844ac43355dab99c68d6f05c823eb73
6
+ metadata.gz: f22eb1931f14c1ace584762838b169ee4a635edcb3dc0350a94cc0256e1bd728439148765dea6e4bf045206401ce8a20823238603b8f1d3e8b0550b970002759
7
+ data.tar.gz: 0c7b5380c16afcd1b7dbb9e7feac311937751c90762a824c7c6b416d47fca76f60f350bb3f2a50bca45a4a43144301c2a23c80074a39e60a251b8863194afd5c
@@ -1,3 +1,5 @@
1
+ require 'rest-client'
2
+
1
3
  require_relative 'url_resolver/cache.rb'
2
4
  require_relative 'url_resolver/cache_implementations.rb'
3
5
  require_relative 'url_resolver/configuration.rb'
@@ -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 SocketError,
23
- Errno::ETIMEDOUT,
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.1.11
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: 2015-08-07 00:00:00.000000000 Z
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.2.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: