micky 0.6.9 → 0.7.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/micky/request.rb +12 -7
- data/lib/micky/uri.rb +1 -1
- data/lib/micky/version.rb +1 -1
- data/lib/micky.rb +26 -24
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 898140acbc602cbf145536a9370e9a1bda8806d5bced808576e58d55a583ac4e
|
4
|
+
data.tar.gz: 274bb288eeb2789f70f7104a272aeb8f5f052f9239f4e41fbf50c59553c391a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5bb4814243602605eedd5a2b17386e8f8db6845bfda32ff44f2bc9aa9173ebb00c62a656180e11b09ab4835ac7fe5b421666711a84d0df74ab28c2ea2ff0098b
|
7
|
+
data.tar.gz: c7dfb2acabcc9d1c5fc2f86d33cc387f05c7f32987f384607431cc3fef70047cc6c6a1474a04ddbb13b92435948ef223a8d3d5495e15d74010c5ccb105bd83da
|
data/lib/micky/request.rb
CHANGED
@@ -5,7 +5,7 @@ module Micky
|
|
5
5
|
class Request
|
6
6
|
def initialize(opts = {})
|
7
7
|
# Options can be set per request and fallback to module-level defaults
|
8
|
-
|
8
|
+
DEFAULTS.each_key do |name|
|
9
9
|
value = opts.has_key?(name) ? opts[name] : Micky.public_send(name)
|
10
10
|
instance_variable_set "@#{name}", value
|
11
11
|
end
|
@@ -32,6 +32,7 @@ module Micky
|
|
32
32
|
|
33
33
|
case response = request(uri)
|
34
34
|
when Net::HTTPSuccess
|
35
|
+
debug "#{response.code} success"
|
35
36
|
Response.new(response, @uri)
|
36
37
|
when Net::HTTPRedirection
|
37
38
|
previous_uri = uri
|
@@ -39,7 +40,7 @@ module Micky
|
|
39
40
|
|
40
41
|
if uri.nil?
|
41
42
|
raise Micky::NoRedirectLocation, response: response if @raise_errors
|
42
|
-
|
43
|
+
log "No “Location” for #{response.code} response", previous_uri
|
43
44
|
return nil
|
44
45
|
end
|
45
46
|
|
@@ -59,7 +60,7 @@ module Micky
|
|
59
60
|
end
|
60
61
|
end
|
61
62
|
|
62
|
-
|
63
|
+
debug "#{response.code} redirect to #{uri}"
|
63
64
|
request_with_redirect_handling(uri, redirect_count + 1)
|
64
65
|
else
|
65
66
|
if @raise_errors
|
@@ -70,7 +71,7 @@ module Micky
|
|
70
71
|
raise Micky::HTTPServerError, response: response
|
71
72
|
end
|
72
73
|
else
|
73
|
-
log response
|
74
|
+
log "#{response.code} error" if response
|
74
75
|
nil
|
75
76
|
end
|
76
77
|
end
|
@@ -79,7 +80,7 @@ module Micky
|
|
79
80
|
def request(uri)
|
80
81
|
@uri = Micky::URI(uri) or begin
|
81
82
|
raise Micky::InvalidURIError, uri if @raise_errors
|
82
|
-
|
83
|
+
log 'Invalid URI', uri
|
83
84
|
return nil
|
84
85
|
end
|
85
86
|
|
@@ -159,9 +160,13 @@ module Micky
|
|
159
160
|
end
|
160
161
|
end
|
161
162
|
|
162
|
-
def log(message)
|
163
|
+
def log(message, uri = @uri, severity = Logger::WARN)
|
163
164
|
message = "#{message.class}: #{message.message}" if message.is_a? Exception
|
164
|
-
|
165
|
+
@logger.add(severity, "[Micky] #{@request_class_name.upcase} #{uri} - #{message}")
|
166
|
+
end
|
167
|
+
|
168
|
+
def debug(message, uri = @uri)
|
169
|
+
log(message, uri, Logger::DEBUG)
|
165
170
|
end
|
166
171
|
end
|
167
172
|
end
|
data/lib/micky/uri.rb
CHANGED
data/lib/micky/version.rb
CHANGED
data/lib/micky.rb
CHANGED
@@ -5,34 +5,36 @@ require_relative 'micky/request'
|
|
5
5
|
require_relative 'micky/response'
|
6
6
|
require_relative 'micky/errors'
|
7
7
|
|
8
|
+
require 'logger'
|
9
|
+
|
8
10
|
module Micky
|
11
|
+
DEFAULTS = {
|
12
|
+
raise_errors: false,
|
13
|
+
max_redirects: 20,
|
14
|
+
timeout: 10,
|
15
|
+
skip_resolve: false,
|
16
|
+
resolve_timeout: 5,
|
17
|
+
oauth: {},
|
18
|
+
query: {},
|
19
|
+
headers: {},
|
20
|
+
parsers: {
|
21
|
+
'application/json' => -> (body) {
|
22
|
+
require 'json' unless defined? JSON
|
23
|
+
JSON.parse(body) rescue nil
|
24
|
+
}
|
25
|
+
},
|
26
|
+
logger: Logger.new(STDOUT),
|
27
|
+
}
|
28
|
+
|
9
29
|
class << self
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
attr_accessor :skip_resolve
|
14
|
-
attr_accessor :resolve_timeout
|
15
|
-
attr_accessor :oauth
|
16
|
-
attr_accessor :query
|
17
|
-
attr_accessor :headers
|
18
|
-
attr_accessor :parsers
|
30
|
+
DEFAULTS.each_key do |key|
|
31
|
+
attr_accessor key
|
32
|
+
end
|
19
33
|
end
|
20
34
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
@timeout = 10
|
25
|
-
@skip_resolve = false
|
26
|
-
@resolve_timeout = 5
|
27
|
-
@oauth = {}
|
28
|
-
@query = {}
|
29
|
-
@headers = {}
|
30
|
-
@parsers = {
|
31
|
-
'application/json' => -> (body) {
|
32
|
-
require 'json' unless defined? JSON
|
33
|
-
JSON.parse(body) rescue nil
|
34
|
-
}
|
35
|
-
}
|
35
|
+
DEFAULTS.each do |key, value|
|
36
|
+
instance_variable_set :"@#{key}", value
|
37
|
+
end
|
36
38
|
|
37
39
|
def self.get(uri, opts = {})
|
38
40
|
Request.new(opts).get(uri)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: micky
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rafaël Blais Masson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-12-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -78,7 +78,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
78
78
|
- !ruby/object:Gem::Version
|
79
79
|
version: '0'
|
80
80
|
requirements: []
|
81
|
-
rubygems_version: 3.
|
81
|
+
rubygems_version: 3.1.6
|
82
82
|
signing_key:
|
83
83
|
specification_version: 4
|
84
84
|
summary: Lightweight and worry-free HTTP client
|