requesta 0.1.1
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 +7 -0
- data/lib/requesta/custom_error.rb +20 -0
- data/lib/requesta.rb +89 -0
- data/requesta.gemspec +23 -0
- metadata +88 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 1bf7d7295b5c59bb1e3820c952bd7d393f720e704aae7cdf665f8376fea0870b
|
4
|
+
data.tar.gz: d98d0233157e9509522211aeadf0c6f7ea9bc62cf67b67dc7e8d57b9c8284525
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: da35402abdf2d623630fd8ca8a3fd04d909890fc9be388f42df300e98c95bf78f81dbce57ff19f117bc23c790705848f666c0611ffb5fa5294abe01e811dd284
|
7
|
+
data.tar.gz: 840b00adc24c017d653a8ba9e3c53f8e6ad546f4e8df00f0505d79bb6931aae6bf675f75dcbcf19d2dbb2cc013c7882e8e6126e80143ab6b660048162475c8a8
|
@@ -0,0 +1,20 @@
|
|
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
|
+
puts formatted
|
14
|
+
end
|
15
|
+
|
16
|
+
def formatted
|
17
|
+
"\n\n" + self.class.to_s + ":\s" + self.message + "\n\n" + self.backtrace.join("\n") + "\n\n"
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
data/lib/requesta.rb
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'net/https'
|
3
|
+
|
4
|
+
# https://guides.rubyonrails.org/active_support_core_extensions.html
|
5
|
+
require 'active_support/all'
|
6
|
+
|
7
|
+
require_relative 'requesta/custom_error'
|
8
|
+
|
9
|
+
class Requesta
|
10
|
+
|
11
|
+
attr_accessor :ssl, :post, :body, :username, :password
|
12
|
+
|
13
|
+
def initialize
|
14
|
+
@ssl = false
|
15
|
+
@post = false
|
16
|
+
@verbose = true
|
17
|
+
@headers = {}
|
18
|
+
end
|
19
|
+
|
20
|
+
def request(uri)
|
21
|
+
raise CustomError, "request(): URI was nil" if uri.nil?
|
22
|
+
|
23
|
+
puts "Requesting '#{uri.to_s}'" if @verbose
|
24
|
+
|
25
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
26
|
+
|
27
|
+
@ssl = true if uri.scheme == 'https'
|
28
|
+
|
29
|
+
if @ssl
|
30
|
+
http.use_ssl = true
|
31
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
32
|
+
end
|
33
|
+
|
34
|
+
request = @post ? Net::HTTP::Post.new(uri) : Net::HTTP::Get.new(uri)
|
35
|
+
|
36
|
+
if @username.present? && @password.present?
|
37
|
+
request.basic_auth(@username, @password)
|
38
|
+
end
|
39
|
+
|
40
|
+
if @headers.present?
|
41
|
+
@headers.each{ |key, value| request.add_field(key, value) }
|
42
|
+
end
|
43
|
+
|
44
|
+
if @body.present?
|
45
|
+
request.body = @body
|
46
|
+
end
|
47
|
+
|
48
|
+
http.request(request)
|
49
|
+
rescue CustomError => error
|
50
|
+
error.report
|
51
|
+
nil
|
52
|
+
end
|
53
|
+
|
54
|
+
# Request Headers
|
55
|
+
#-----------------
|
56
|
+
|
57
|
+
def set_headers(headers={})
|
58
|
+
raise CustomError, "set_headers(): headers was blank" if headers.blank?
|
59
|
+
headers.each{ |key,value| set_header(key, value) }
|
60
|
+
rescue CustomError => error
|
61
|
+
error.report
|
62
|
+
nil
|
63
|
+
end
|
64
|
+
|
65
|
+
def set_header(key=nil, value=nil)
|
66
|
+
raise CustomError, "set_header(): key was nil" if key.nil?
|
67
|
+
raise CustomError, "set_header(): value was nil" if value.nil?
|
68
|
+
@headers[key] = value
|
69
|
+
rescue CustomError => error
|
70
|
+
error.report
|
71
|
+
nil
|
72
|
+
end
|
73
|
+
|
74
|
+
def clear_headers
|
75
|
+
@headers = {}
|
76
|
+
rescue CustomError => error
|
77
|
+
error.report
|
78
|
+
nil
|
79
|
+
end
|
80
|
+
|
81
|
+
def clear_header(key=nil)
|
82
|
+
raise CustomError, "clear_header(): key was nil" if key.nil?
|
83
|
+
@headers.delete(key)
|
84
|
+
rescue CustomError => error
|
85
|
+
error.report
|
86
|
+
nil
|
87
|
+
end
|
88
|
+
|
89
|
+
end
|
data/requesta.gemspec
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# https://guides.rubygems.org/specification-reference/
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
|
5
|
+
s.name = 'requesta'
|
6
|
+
s.version = '0.1.1'
|
7
|
+
s.summary = "Wrapper for simple http(s) requests."
|
8
|
+
s.description = "Wrapper for simple http(s) requests."
|
9
|
+
s.authors = ["Edrick Clark"]
|
10
|
+
s.email = 'edrickclark@gmail.com'
|
11
|
+
s.homepage = 'https://github.com/edrickclark/requesta'
|
12
|
+
|
13
|
+
s.files = Dir['lib/**/*', 'requesta.gemspec']
|
14
|
+
|
15
|
+
s.metadata = {
|
16
|
+
"source_code_uri" => "https://github.com/edrickclark/requesta"
|
17
|
+
}
|
18
|
+
|
19
|
+
s.add_runtime_dependency 'activesupport', '~> 5.2'
|
20
|
+
s.add_development_dependency 'awesome_print', '~> 1.8'
|
21
|
+
s.add_development_dependency 'rspec', '~> 3.7'
|
22
|
+
|
23
|
+
end
|
metadata
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: requesta
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Edrick Clark
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-08-31 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '5.2'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '5.2'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: awesome_print
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.8'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.8'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.7'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.7'
|
55
|
+
description: Wrapper for simple http(s) requests.
|
56
|
+
email: edrickclark@gmail.com
|
57
|
+
executables: []
|
58
|
+
extensions: []
|
59
|
+
extra_rdoc_files: []
|
60
|
+
files:
|
61
|
+
- lib/requesta.rb
|
62
|
+
- lib/requesta/custom_error.rb
|
63
|
+
- requesta.gemspec
|
64
|
+
homepage: https://github.com/edrickclark/requesta
|
65
|
+
licenses: []
|
66
|
+
metadata:
|
67
|
+
source_code_uri: https://github.com/edrickclark/requesta
|
68
|
+
post_install_message:
|
69
|
+
rdoc_options: []
|
70
|
+
require_paths:
|
71
|
+
- lib
|
72
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
requirements: []
|
83
|
+
rubyforge_project:
|
84
|
+
rubygems_version: 2.7.6
|
85
|
+
signing_key:
|
86
|
+
specification_version: 4
|
87
|
+
summary: Wrapper for simple http(s) requests.
|
88
|
+
test_files: []
|