almodovar 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/almodovar.rb +19 -6
- data/lib/almodovar/errors.rb +12 -0
- data/lib/almodovar/http_accessor.rb +6 -6
- data/lib/almodovar/http_client.rb +10 -9
- data/lib/almodovar/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a6a4155b3c2891ccd7f193593f9c5a612e1bb16a
|
4
|
+
data.tar.gz: 353891dd01565285a46782fd3a31c5d504efb906
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c74c6def4417b942ff3c345c56523984f80d9331ae4551c68dc4c86a3f0d9cbb390cfe3958f57eb7ac909f6e119ee205f7190bbd261a5399f23bec80381246bb
|
7
|
+
data.tar.gz: b9ff041e5187657d7c90800c36f8a298e32f98f426dc2045fbf25e64f0928c910f5226b452f58ba3c1dd5bfd27bfdee4e1c17376d47fcae868c362a48837420e
|
data/lib/almodovar.rb
CHANGED
@@ -16,14 +16,27 @@ require 'almodovar/errors'
|
|
16
16
|
require 'almodovar/to_xml'
|
17
17
|
|
18
18
|
module Almodovar
|
19
|
-
|
20
19
|
class << self
|
20
|
+
DEFAULT_SEND_TIMEOUT = 120
|
21
|
+
DEFAULT_CONNECT_TIMEOUT = 30
|
22
|
+
DEFAULT_RECEIVE_TIMEOUT = 120
|
23
|
+
|
21
24
|
def default_options
|
22
|
-
|
23
|
-
:
|
24
|
-
:
|
25
|
-
:
|
25
|
+
default = {
|
26
|
+
send_timeout: DEFAULT_SEND_TIMEOUT,
|
27
|
+
connect_timeout: DEFAULT_CONNECT_TIMEOUT,
|
28
|
+
receive_timeout: DEFAULT_RECEIVE_TIMEOUT,
|
29
|
+
user_agent: "Almodovar/#{Almodovar::VERSION}"
|
30
|
+
}
|
31
|
+
default.merge(@default_options || {})
|
32
|
+
end
|
33
|
+
|
34
|
+
def default_options=(options = {})
|
35
|
+
@default_options = {
|
36
|
+
send_timeout: options[:send_timeout],
|
37
|
+
connect_timeout: options[:connect_timeout],
|
38
|
+
receive_timeout: options[:receive_timeout]
|
26
39
|
}
|
27
40
|
end
|
28
41
|
end
|
29
|
-
end
|
42
|
+
end
|
data/lib/almodovar/errors.rb
CHANGED
@@ -8,4 +8,16 @@ module Almodovar
|
|
8
8
|
super("Status code #{response.status} on resource #{url}")
|
9
9
|
end
|
10
10
|
end
|
11
|
+
|
12
|
+
class TimeoutError < StandardError
|
13
|
+
end
|
14
|
+
|
15
|
+
class SendTimeoutError < TimeoutError
|
16
|
+
end
|
17
|
+
|
18
|
+
class ReceiveTimeoutError < TimeoutError
|
19
|
+
end
|
20
|
+
|
21
|
+
class ConnectTimeoutError < TimeoutError
|
22
|
+
end
|
11
23
|
end
|
@@ -7,18 +7,19 @@ module Almodovar
|
|
7
7
|
Nokogiri::XML.parse(response.body).root
|
8
8
|
end
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
def url_with_params
|
12
12
|
@options[:expand] = @options[:expand].join(",") if @options[:expand].is_a?(Array)
|
13
13
|
params = @options.map { |k, v| "#{k}=#{v}" }.join("&")
|
14
14
|
params = "?#{params}" unless params.empty?
|
15
15
|
@url + params
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
def http
|
19
19
|
@http ||= Almodovar::HttpClient.new.tap do |session|
|
20
|
-
session.
|
20
|
+
session.send_timeout = Almodovar::default_options[:send_timeout]
|
21
21
|
session.connect_timeout = Almodovar::default_options[:connect_timeout]
|
22
|
+
session.receive_timeout = Almodovar::default_options[:receive_timeout]
|
22
23
|
session.agent_name = Almodovar::default_options[:user_agent]
|
23
24
|
|
24
25
|
if @auth
|
@@ -28,10 +29,9 @@ module Almodovar
|
|
28
29
|
end
|
29
30
|
end
|
30
31
|
end
|
31
|
-
|
32
|
+
|
32
33
|
def check_errors(response, url)
|
33
34
|
raise(Almodovar::HttpError.new(response, url)) if response.status >= 400
|
34
35
|
end
|
35
36
|
end
|
36
|
-
|
37
|
-
end
|
37
|
+
end
|
@@ -2,7 +2,6 @@ require 'httpclient'
|
|
2
2
|
|
3
3
|
module Almodovar
|
4
4
|
class HttpClient
|
5
|
-
|
6
5
|
attr_accessor :client,
|
7
6
|
:headers,
|
8
7
|
:username,
|
@@ -11,13 +10,10 @@ module Almodovar
|
|
11
10
|
|
12
11
|
delegate :agent_name=,
|
13
12
|
:connect_timeout=,
|
13
|
+
:send_timeout=,
|
14
|
+
:receive_timeout=,
|
14
15
|
:to => :client
|
15
16
|
|
16
|
-
|
17
|
-
def timeout=(value)
|
18
|
-
client.send_timeout = value
|
19
|
-
end
|
20
|
-
|
21
17
|
def initialize
|
22
18
|
@client = HTTPClient.new
|
23
19
|
end
|
@@ -71,7 +67,7 @@ module Almodovar
|
|
71
67
|
end
|
72
68
|
|
73
69
|
def request(method, uri, options = {})
|
74
|
-
uri = URI.parse(uri)
|
70
|
+
uri = URI.parse(URI.escape(URI.unescape(uri)))
|
75
71
|
if (requires_auth?)
|
76
72
|
domain = domain_for(uri)
|
77
73
|
uri.user = username
|
@@ -79,6 +75,12 @@ module Almodovar
|
|
79
75
|
set_client_auth(domain)
|
80
76
|
end
|
81
77
|
client.request(method, uri, :body => options[:body], :header => options[:headers].stringify_keys || {}, :follow_redirect => true)
|
78
|
+
rescue HTTPClient::SendTimeoutError => e
|
79
|
+
raise SendTimeoutError.new(e)
|
80
|
+
rescue HTTPClient::ReceiveTimeoutError => e
|
81
|
+
raise ReceiveTimeoutError.new(e)
|
82
|
+
rescue HTTPClient::ConnectTimeoutError => e
|
83
|
+
raise ConnectTimeoutError.new(e)
|
82
84
|
end
|
83
85
|
end
|
84
86
|
|
@@ -100,5 +102,4 @@ module Almodovar
|
|
100
102
|
class HttpResponse
|
101
103
|
attr_accessor :status, :body
|
102
104
|
end
|
103
|
-
|
104
|
-
end
|
105
|
+
end
|
data/lib/almodovar/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: almodovar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- BeBanjo S.L.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-02-
|
11
|
+
date: 2016-02-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: builder
|
@@ -134,9 +134,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
134
134
|
version: '0'
|
135
135
|
requirements: []
|
136
136
|
rubyforge_project:
|
137
|
-
rubygems_version: 2.
|
137
|
+
rubygems_version: 2.5.1
|
138
138
|
signing_key:
|
139
139
|
specification_version: 4
|
140
140
|
summary: BeBanjo API client
|
141
141
|
test_files: []
|
142
|
-
has_rdoc:
|