requesta 0.1.3 → 0.1.4
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/requesta.rb +52 -39
- data/lib/requesta/errors.rb +33 -0
- data/requesta.gemspec +13 -5
- metadata +6 -6
- data/lib/requesta/custom_error.rb +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3f2550db52fc7f9f91a9366b97fcba644a414b3c7e9da49b1d184defd8272fb1
|
4
|
+
data.tar.gz: 1149cea39c0f91f48b67fa07f93c61f88476e293e8039b1d30c85a5fc169d1c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d62c2927061ce2346336990cf9e93edf88120e838b5b17344cbdf33e3c09c2db84fcdff534f95fdf20c480ec47831f0a2315c4470e3a808b81e051f29cf68ce1
|
7
|
+
data.tar.gz: ebebc97029f6f2b2633f2f114f9426f83a1abd73ada8ab5d8fdf55526ea3c76f1390b14c73237a8fdf15bae76c42bd98b72cbecdd201760b6eae4002b27c5bba
|
data/lib/requesta.rb
CHANGED
@@ -1,10 +1,14 @@
|
|
1
|
-
|
2
|
-
require 'net/https'
|
1
|
+
# FILE: lib/requesta.rb
|
3
2
|
|
3
|
+
# Reference:
|
4
4
|
# https://guides.rubyonrails.org/active_support_core_extensions.html
|
5
|
-
require 'active_support/all'
|
6
5
|
|
7
|
-
|
6
|
+
require 'net/http'
|
7
|
+
require 'net/https'
|
8
|
+
require 'active_support'
|
9
|
+
require 'active_support/core_ext/object/blank'
|
10
|
+
|
11
|
+
require_relative 'requesta/errors'
|
8
12
|
|
9
13
|
class Requesta
|
10
14
|
|
@@ -20,7 +24,9 @@ class Requesta
|
|
20
24
|
end
|
21
25
|
|
22
26
|
def request(uri)
|
23
|
-
|
27
|
+
unless uri.is_a?(URI)
|
28
|
+
raise RequestaError::RequestError, "request(): 'uri' parameter must be of type 'URI'"
|
29
|
+
end
|
24
30
|
|
25
31
|
puts "Requesting '#{uri.to_s}'" if @verbose
|
26
32
|
|
@@ -46,56 +52,63 @@ class Requesta
|
|
46
52
|
end
|
47
53
|
|
48
54
|
http.request(request)
|
49
|
-
rescue CustomError => error
|
50
|
-
error.report
|
51
|
-
nil
|
52
|
-
end
|
53
|
-
|
54
|
-
# URI/HREF
|
55
|
-
#----------
|
56
|
-
|
57
|
-
def uri_scheme_https?(uri)
|
58
|
-
uri.scheme == 'https'
|
59
|
-
end
|
60
|
-
|
61
|
-
def href_scheme_https?(href)
|
62
|
-
uri = URI(href)
|
63
|
-
uri_scheme_https?(uri)
|
64
55
|
end
|
65
56
|
|
66
57
|
# Request Headers
|
67
58
|
#-----------------
|
68
59
|
|
69
|
-
def set_headers(headers
|
70
|
-
|
60
|
+
def set_headers(headers)
|
61
|
+
unless headers.is_a?(Hash)
|
62
|
+
raise RequestaError::RequestHeaderError, "set_headers(): 'headers' parameter must be of type 'Hash'"
|
63
|
+
end
|
64
|
+
|
71
65
|
headers.each{ |key,value| set_header(key, value) }
|
72
|
-
rescue CustomError => error
|
73
|
-
error.report
|
74
|
-
nil
|
75
66
|
end
|
76
67
|
|
77
|
-
def set_header(key
|
78
|
-
|
79
|
-
|
68
|
+
def set_header(key, value)
|
69
|
+
unless key.is_a?(String) || key.is_a?(Symbol)
|
70
|
+
raise RequestaError::RequestHeaderError, "set_header(): 'key' parameter must be of type Symbol or String"
|
71
|
+
end
|
72
|
+
|
73
|
+
unless value.is_a?(String) || value.is_a?(Symbol)
|
74
|
+
raise RequestaError::RequestHeaderError, "set_header(): 'value' parameter must be of type Symbol or String"
|
75
|
+
end
|
76
|
+
|
80
77
|
@headers[key] = value
|
81
|
-
rescue CustomError => error
|
82
|
-
error.report
|
83
|
-
nil
|
84
78
|
end
|
85
79
|
|
86
80
|
def clear_headers
|
87
81
|
@headers = {}
|
88
|
-
rescue CustomError => error
|
89
|
-
error.report
|
90
|
-
nil
|
91
82
|
end
|
92
83
|
|
93
|
-
def clear_header(key
|
94
|
-
|
84
|
+
def clear_header(key)
|
85
|
+
unless key.is_a?(String) || key.is_a?(Symbol)
|
86
|
+
raise RequestaError::RequestHeaderError, "clear_header(): 'key' must be of type Symbol or String"
|
87
|
+
end
|
88
|
+
|
95
89
|
@headers.delete(key)
|
96
|
-
|
97
|
-
|
98
|
-
|
90
|
+
end
|
91
|
+
|
92
|
+
private
|
93
|
+
|
94
|
+
# URI/HREF
|
95
|
+
#----------
|
96
|
+
|
97
|
+
def uri_scheme_https?(uri)
|
98
|
+
unless uri.is_a?(URI)
|
99
|
+
raise RequestaError::MethodError, "href_scheme_https?(): 'href' parameter must be of type 'URI'"
|
100
|
+
end
|
101
|
+
|
102
|
+
uri.scheme == 'https'
|
103
|
+
end
|
104
|
+
|
105
|
+
def href_scheme_https?(href)
|
106
|
+
unless href.is_a?(String)
|
107
|
+
raise RequestaError::MethodError, "href_scheme_https?(): 'href' parameter must be of type 'String'"
|
108
|
+
end
|
109
|
+
|
110
|
+
uri = URI(href)
|
111
|
+
uri_scheme_https?(uri)
|
99
112
|
end
|
100
113
|
|
101
114
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# FILE: lib/requesta/errors.rb
|
2
|
+
|
3
|
+
# Reference:
|
4
|
+
# http://blog.honeybadger.io/ruby-custom-exceptions/
|
5
|
+
|
6
|
+
module RequestaError
|
7
|
+
|
8
|
+
class CustomError < StandardError
|
9
|
+
|
10
|
+
attr_reader :foo
|
11
|
+
|
12
|
+
def initialize(message="Default error message", foo='bar')
|
13
|
+
@foo = foo
|
14
|
+
super(message)
|
15
|
+
end
|
16
|
+
|
17
|
+
def report
|
18
|
+
"\n\n" +
|
19
|
+
self.class.to_s +
|
20
|
+
":\s" +
|
21
|
+
self.message +
|
22
|
+
"\n\n" +
|
23
|
+
self.backtrace.join("\n") +
|
24
|
+
"\n\n"
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
class MethodError < CustomError; end;
|
30
|
+
class RequestError < CustomError; end;
|
31
|
+
class RequestHeaderError < CustomError; end;
|
32
|
+
|
33
|
+
end
|
data/requesta.gemspec
CHANGED
@@ -1,21 +1,29 @@
|
|
1
|
+
# FILE: requesta.gemspec
|
2
|
+
|
3
|
+
# Reference:
|
1
4
|
# https://guides.rubygems.org/specification-reference/
|
5
|
+
# https://rubygems.org/gems/rspec/versions/3.8.0
|
6
|
+
# https://rubygems.org/gems/activesupport
|
7
|
+
# https://rubygems.org/gems/awesome_print
|
2
8
|
|
3
9
|
Gem::Specification.new do |s|
|
4
10
|
|
5
11
|
s.name = 'requesta'
|
6
|
-
s.version = '0.1.
|
7
|
-
s.summary = "
|
8
|
-
s.description = "
|
12
|
+
s.version = '0.1.4'
|
13
|
+
s.summary = "A wrapper for simple http requests, in Ruby."
|
14
|
+
s.description = "A wrapper for simple http requests, in Ruby."
|
9
15
|
s.authors = ["Edrick Clark"]
|
10
16
|
s.email = 'edrickclark@gmail.com'
|
11
17
|
s.homepage = 'https://github.com/edrickclark/requesta'
|
12
18
|
|
13
|
-
s.files = Dir['
|
19
|
+
s.files = Dir['requesta.gemspec', 'lib/**/*']
|
14
20
|
|
15
21
|
s.metadata = {
|
16
|
-
|
22
|
+
'source_code_uri' => "https://github.com/edrickclark/requesta"
|
17
23
|
}
|
18
24
|
|
25
|
+
s.required_ruby_version = '>= 2.2.2'
|
26
|
+
|
19
27
|
s.add_runtime_dependency 'activesupport', '~> 5.2'
|
20
28
|
s.add_development_dependency 'awesome_print', '~> 1.8'
|
21
29
|
s.add_development_dependency 'rspec', '~> 3.7'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: requesta
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Edrick Clark
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-09-
|
11
|
+
date: 2018-09-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -52,14 +52,14 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.7'
|
55
|
-
description:
|
55
|
+
description: A wrapper for simple http requests, in Ruby.
|
56
56
|
email: edrickclark@gmail.com
|
57
57
|
executables: []
|
58
58
|
extensions: []
|
59
59
|
extra_rdoc_files: []
|
60
60
|
files:
|
61
61
|
- lib/requesta.rb
|
62
|
-
- lib/requesta/
|
62
|
+
- lib/requesta/errors.rb
|
63
63
|
- requesta.gemspec
|
64
64
|
homepage: https://github.com/edrickclark/requesta
|
65
65
|
licenses: []
|
@@ -73,7 +73,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
73
73
|
requirements:
|
74
74
|
- - ">="
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version:
|
76
|
+
version: 2.2.2
|
77
77
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
78
78
|
requirements:
|
79
79
|
- - ">="
|
@@ -84,5 +84,5 @@ rubyforge_project:
|
|
84
84
|
rubygems_version: 2.7.6
|
85
85
|
signing_key:
|
86
86
|
specification_version: 4
|
87
|
-
summary:
|
87
|
+
summary: A wrapper for simple http requests, in Ruby.
|
88
88
|
test_files: []
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# http://blog.honeybadger.io/ruby-custom-exceptions/
|
2
|
-
|
3
|
-
class CustomError < StandardError
|
4
|
-
|
5
|
-
attr_reader :foo
|
6
|
-
|
7
|
-
def initialize(message="Default error message", foo='bar')
|
8
|
-
@foo = foo
|
9
|
-
super(message)
|
10
|
-
end
|
11
|
-
|
12
|
-
def report
|
13
|
-
"\n\n" +
|
14
|
-
self.class.to_s +
|
15
|
-
":\s" +
|
16
|
-
self.message +
|
17
|
-
"\n\n" +
|
18
|
-
self.backtrace.join("\n") +
|
19
|
-
"\n\n"
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|