cielo24 0.0.13 → 0.0.15

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
- module Cielo24
2
- VERSION = "0.0.13"
1
+ module Cielo24
2
+ VERSION = '0.0.15'
3
3
  end
@@ -1,66 +1,64 @@
1
- module Cielo24
2
- class WebUtils
3
-
4
- require 'json'
5
- require 'httpclient'
6
- require 'timeout'
7
- include JSON
8
-
9
- BASIC_TIMEOUT = 60 # seconds
10
- DOWNLOAD_TIMEOUT = 300 # seconds
11
- @@LAST_URL = "none" # For logging purposes
12
-
13
- def self.LAST_URL
14
- return @@LAST_URL
15
- end
16
-
17
- def self.get_json(uri, method, timeout, query=nil, headers=nil, body=nil)
18
- response = http_request(uri, method, timeout, query, headers, body)
19
- return JSON.parse(response)
20
- end
21
-
22
- def self.http_request(uri, method, timeout, query=nil, headers=nil, body=nil)
23
- http_client = HTTPClient.new
24
- http_client.cookie_manager = nil
25
- http_client.send_timeout = 60*60*24*7 # HTTPClient default timeout set to 7 days, our own timeout handler is down below
26
- @@LAST_URL = uri + (query.nil? ? "" : "?" + URI.encode_www_form(query))
27
-
28
- # Timeout block:
29
- begin
30
- # Error is raised if the following block fails to execute in 'timeout' sec:
31
- Timeout.timeout(timeout) { # nil timeout = infinite
32
-
33
- response = http_client.request(method, uri, query, body, headers, nil)
34
- # Handle web errors
35
- if response.status_code == 200 or response.status_code == 204
36
- return response.body
37
- else
38
- json = JSON.parse(response.body)
39
- raise WebError.new(json["ErrorType"], json["ErrorComment"])
40
- end
41
-
42
- }
43
- rescue Timeout::Error
44
- raise TimeoutError.new("The HTTP session has timed out.")
45
- end
46
- end
47
- end
48
-
49
- class WebError < StandardError
50
- attr_reader :type
51
- def initialize(type, comment)
52
- super comment
53
- @type = type
54
- end
55
-
56
- def to_s
57
- return @type + " - " + super.to_s
58
- end
59
- end
60
-
61
- class TimeoutError < StandardError
62
- def initialize(message)
63
- super message
64
- end
65
- end
1
+ module Cielo24
2
+ class WebUtils
3
+
4
+ require 'json'
5
+ require 'httpclient'
6
+ require 'timeout'
7
+ require 'logger'
8
+ include JSON
9
+
10
+ BASIC_TIMEOUT = 60 # seconds (1 minute)
11
+ DOWNLOAD_TIMEOUT = 300 # seconds (5 minutes)
12
+ UPLOAD_TIMEOUT = 60*60*24*7 # seconds (1 week)
13
+ LOGGER = Logger.new(STDOUT)
14
+
15
+ def self.get_json(uri, method, timeout, query=nil, headers=nil, body=nil)
16
+ response = http_request(uri, method, timeout, query, headers, body)
17
+ return JSON.parse(response)
18
+ end
19
+
20
+ def self.http_request(uri, method, timeout, query=nil, headers=nil, body=nil)
21
+ http_client = HTTPClient.new
22
+ http_client.cookie_manager = nil
23
+ http_client.send_timeout = UPLOAD_TIMEOUT
24
+ LOGGER.info(uri + (query.nil? ? '' : '?' + URI.encode_www_form(query)))
25
+
26
+ # Timeout block:
27
+ begin
28
+ # Error is raised if the following block fails to execute in 'timeout' sec:
29
+ Timeout.timeout(timeout) { # nil timeout = infinite
30
+
31
+ response = http_client.request(method, uri, query, body, headers, nil)
32
+ # Handle web errors
33
+ if response.status_code == 200 or response.status_code == 204
34
+ return response.body
35
+ else
36
+ json = JSON.parse(response.body)
37
+ raise WebError.new(json['ErrorType'], json['ErrorComment'])
38
+ end
39
+
40
+ }
41
+ rescue Timeout::Error
42
+ raise TimeoutError.new('The HTTP session has timed out.')
43
+ end
44
+ end
45
+ end
46
+
47
+ class WebError < StandardError
48
+ attr_reader :type
49
+ def initialize(type, comment)
50
+ super(comment)
51
+ @type = type
52
+ end
53
+
54
+ def to_s
55
+ return @type + ' - ' + super.to_s
56
+ end
57
+ end
58
+
59
+ class TimeoutError < StandardError
60
+ def initialize(message)
61
+ super(message)
62
+ end
63
+ end
66
64
  end
metadata CHANGED
@@ -1,71 +1,80 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cielo24
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.13
4
+ version: 0.0.15
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - cielo24
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-08-11 00:00:00.000000000 Z
12
+ date: 2015-08-03 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: bundler
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ~>
18
20
  - !ruby/object:Gem::Version
19
- version: '1.6'
21
+ version: 1.10.6
20
22
  type: :development
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ~>
25
28
  - !ruby/object:Gem::Version
26
- version: '1.6'
29
+ version: 1.10.6
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: rake
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - ~>
32
36
  - !ruby/object:Gem::Version
33
- version: '10.0'
37
+ version: 10.4.2
34
38
  type: :development
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - ~>
39
44
  - !ruby/object:Gem::Version
40
- version: '10.0'
45
+ version: 10.4.2
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: httpclient
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
- - - '>='
51
+ - - ~>
46
52
  - !ruby/object:Gem::Version
47
- version: '0'
53
+ version: 2.6.0.1
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
- - - '>='
59
+ - - ~>
53
60
  - !ruby/object:Gem::Version
54
- version: '0'
61
+ version: 2.6.0.1
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: hashie
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
- - - '>='
67
+ - - ~>
60
68
  - !ruby/object:Gem::Version
61
- version: '0'
69
+ version: 3.4.2
62
70
  type: :runtime
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
- - - '>='
75
+ - - ~>
67
76
  - !ruby/object:Gem::Version
68
- version: '0'
77
+ version: 3.4.2
69
78
  description: This gem allows you to interact with the cielo24 public REST API.
70
79
  email:
71
80
  - support@cielo24.com
@@ -73,33 +82,34 @@ executables: []
73
82
  extensions: []
74
83
  extra_rdoc_files: []
75
84
  files:
76
- - lib/cielo24/actions.rb
77
- - lib/cielo24/enums.rb
78
85
  - lib/cielo24/options.rb
79
- - lib/cielo24/version.rb
80
86
  - lib/cielo24/web_utils.rb
87
+ - lib/cielo24/version.rb
88
+ - lib/cielo24/enums.rb
89
+ - lib/cielo24/actions.rb
81
90
  - lib/cielo24.rb
82
91
  homepage: http://cielo24.com
83
92
  licenses: []
84
- metadata: {}
85
93
  post_install_message:
86
94
  rdoc_options: []
87
95
  require_paths:
88
96
  - lib
89
97
  required_ruby_version: !ruby/object:Gem::Requirement
98
+ none: false
90
99
  requirements:
91
- - - '>='
100
+ - - ! '>='
92
101
  - !ruby/object:Gem::Version
93
102
  version: '0'
94
103
  required_rubygems_version: !ruby/object:Gem::Requirement
104
+ none: false
95
105
  requirements:
96
- - - '>='
106
+ - - ! '>='
97
107
  - !ruby/object:Gem::Version
98
108
  version: '0'
99
109
  requirements: []
100
110
  rubyforge_project:
101
- rubygems_version: 2.0.14
111
+ rubygems_version: 1.8.23
102
112
  signing_key:
103
- specification_version: 4
113
+ specification_version: 3
104
114
  summary: Cielo24 API gem.
105
115
  test_files: []
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: f88e51bd3f448a402c5f811d76dbf0f5870074a0
4
- data.tar.gz: 9b826d4adc30c34d66b497e0b8cec264c82461f3
5
- SHA512:
6
- metadata.gz: e0113e5e3ef2e0083f4732b3334ef1985e16c6418d3beac389f9eab7b4115b99006ab55bc452d37a3e0298da6ddd736e4501fe764a77720f0b08a9e0a054a0b8
7
- data.tar.gz: fab07a40a2ab041b348d4d56dd5607f076e3313789f45e786ebb6cec5751fee714ce942d373f33eccc590912e3b50975084dca27d4b52a3d3822f91cbe2f4a4f