selida-wlc-ruby 0.2 → 0.2.1

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
  SHA256:
3
- metadata.gz: f9704f16f6a16d96cbdbf0c6150c107249c5b403c0fdb2348065100622e4508f
4
- data.tar.gz: e42c3646462da846d110b53af0155b6a94524020563d75cf970e9a7aef352d78
3
+ metadata.gz: 6d994b5999a43d0f4e0cb1b924b07963496b28efaa535d6a1167345b48af4570
4
+ data.tar.gz: 8f4f1db68a601983379e566e83847a47e528d8368568fa3f7f6050dc8587531c
5
5
  SHA512:
6
- metadata.gz: c11d39d470e3a107ea6e277bd2dac31cedb5ca1a2ec7147e5302c218010c7da6cd8c383c16225fa7184cfb2216eed4e94fcb630aa3748c80c3a285008ef83eff
7
- data.tar.gz: 9834f0144d834632773b942bc37b38f29c7a4d80ba24ee589be5392ce59e9de80bbf95f4500fa3bcd02d01958adc084bd3ca9e5f23cfdcc515d6f13573ab8c85
6
+ metadata.gz: b7b959f7135c0353ae9caaf5b9aa2ae49a3db2c234fcd197351530c2f188fe8d16bcce3f57b919e2af59dbc143235c06f07b9bfe7e5e6fdc1992a62801bc8e0a
7
+ data.tar.gz: 5cd74469effb0b2910a3e0c4522e8df6d2852f21412561e5e48176faea4789bc9381e23f9f5ec5382bd9a9b596ca42347730fc6079926398b8a6fd9489f61281
data/lib/wlc.rb CHANGED
@@ -6,6 +6,7 @@ require 'plissken'
6
6
  require 'forwardable'
7
7
  require 'wlc/api'
8
8
  require 'wlc/auth'
9
+ require 'wlc/error'
9
10
  require 'wlc/token'
10
11
  require 'wlc/client'
11
12
  require 'wlc/awrence'
@@ -2,6 +2,7 @@ module Wlc
2
2
  class Configuration
3
3
  attr_accessor :username
4
4
  attr_accessor :password
5
+ attr_accessor :timeout
5
6
 
6
7
  def inspect
7
8
  "#<#{self.class.name}:#{object_id}>"
@@ -0,0 +1,5 @@
1
+ module Wlc
2
+ class Error < StandardError; end
3
+
4
+ class TimeoutError < Error; end
5
+ end
@@ -9,19 +9,37 @@ module Wlc
9
9
  builder.headers['Content-Type'] = 'application/json'
10
10
  builder.headers['Authorization'] = Auth.new(client).header
11
11
  builder.adapter Faraday.default_adapter
12
+ builder.options[:timeout] = timeout_option
12
13
  end
13
14
  end
14
15
 
15
16
  def get(url, params = {})
16
- Response.new connection.get(request_path(url), params)
17
+ watch_timeout(url) do
18
+ Response.new connection.get(request_path(url), params)
19
+ end
17
20
  end
18
21
 
19
22
  def post(url, resource = {})
20
- Response.new connection.post(request_path(url), resource_to_post(resource))
23
+ watch_timeout(url) do
24
+ Response.new connection.post(request_path(url), resource_to_post(resource))
25
+ end
21
26
  end
22
27
 
23
28
  private
24
29
 
30
+ def timeout_option
31
+ timeout = Wlc.configuration.timeout
32
+ timeout.to_i unless timeout.nil?
33
+ end
34
+
35
+ def watch_timeout(url)
36
+ start_time = Time.now.to_f
37
+ yield if block_given?
38
+ rescue Faraday::TimeoutError
39
+ seconds = (Time.now.to_f - start_time).to_i
40
+ raise TimeoutError, "The following address took longer than #{seconds}s to reply: '#{Client.host + url}'"
41
+ end
42
+
25
43
  def resource_to_post(resource)
26
44
  serialize_resource_keys(resource).to_json
27
45
  end
@@ -1,3 +1,3 @@
1
1
  module Wlc
2
- VERSION = "0.2"
2
+ VERSION = "0.2.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: selida-wlc-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.2'
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ellen Fiscina
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-09-19 00:00:00.000000000 Z
12
+ date: 2019-01-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday
@@ -123,6 +123,7 @@ files:
123
123
  - lib/wlc/awrence.rb
124
124
  - lib/wlc/client.rb
125
125
  - lib/wlc/configuration.rb
126
+ - lib/wlc/error.rb
126
127
  - lib/wlc/request.rb
127
128
  - lib/wlc/resources/order.rb
128
129
  - lib/wlc/resources/product.rb
@@ -150,7 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
150
151
  version: '0'
151
152
  requirements: []
152
153
  rubyforge_project:
153
- rubygems_version: 2.7.6
154
+ rubygems_version: 2.7.8
154
155
  signing_key:
155
156
  specification_version: 4
156
157
  summary: ''