http_requests 1.0.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 +7 -0
- data/lib/connection.rb +92 -0
- data/lib/http_requests.rb +1 -0
- data/lib/single_connection.rb +26 -0
- metadata +48 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d8aea7ee8220161a65e6c9c0ca08f6c4f9224d5a
|
4
|
+
data.tar.gz: b6c916f09ff3e03d1204d9aa222ec9db94332444
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: efcda325be9b37daeb0a8193874a0b499c1e24d6b91c921350dc89bac2e035377c6104acead697caaf2c422e5b4f1f687de08e67263c7abeaa28ab30f8313b30
|
7
|
+
data.tar.gz: acfd54141e2e2c38447c598258398746ee13eeaddd0bcc7425fcd53b575f907827e8b87343004111351d393f4cb2ccd2b1b65f487731f06be65c1a765d0e1cfa
|
data/lib/connection.rb
ADDED
@@ -0,0 +1,92 @@
|
|
1
|
+
require 'net/https'
|
2
|
+
require 'cgi'
|
3
|
+
|
4
|
+
class Connection
|
5
|
+
attr_accessor :settings
|
6
|
+
attr_reader :url
|
7
|
+
|
8
|
+
def initialize(url, settings = {})
|
9
|
+
@started = false
|
10
|
+
@http = nil
|
11
|
+
@url = url
|
12
|
+
|
13
|
+
@settings = {
|
14
|
+
:header => {},
|
15
|
+
:ssl => false,
|
16
|
+
:cert => "",
|
17
|
+
:read_timeout => 60
|
18
|
+
}
|
19
|
+
@settings.merge!(settings)
|
20
|
+
end
|
21
|
+
|
22
|
+
def get(options = {})
|
23
|
+
default = {
|
24
|
+
:end_point => "",
|
25
|
+
:header => {},
|
26
|
+
:query_str => {}
|
27
|
+
}
|
28
|
+
options = default.merge(options)
|
29
|
+
|
30
|
+
url = "#{@url}#{options[:end_point]}"
|
31
|
+
|
32
|
+
unless options[:query_str].empty?
|
33
|
+
url = "#{url}?"
|
34
|
+
first = options[:query_str].keys[0]
|
35
|
+
url = "#{url}#{first}=#{options[:query_str][first]}"
|
36
|
+
|
37
|
+
options[:query_str].each_key do |key|
|
38
|
+
next if key == first
|
39
|
+
url = "#{url}&#{key}=#{options[:query_str][key]}"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
uri = URI(url)
|
44
|
+
|
45
|
+
http = @started ? @http : get_http(uri)
|
46
|
+
request = Net::HTTP::Get.new(uri.request_uri, @settings[:header].merge(options[:header]))
|
47
|
+
http.request(request)
|
48
|
+
end
|
49
|
+
|
50
|
+
def post(options = {})
|
51
|
+
default = {
|
52
|
+
:end_point => "",
|
53
|
+
:header => {},
|
54
|
+
:body => nil
|
55
|
+
}
|
56
|
+
options = default.merge(options)
|
57
|
+
uri = URI("#{@url}#{options[:end_point]}")
|
58
|
+
|
59
|
+
http = @started ? @http : get_http(uri)
|
60
|
+
request = Net::HTTP::Post.new(uri.request_uri, @settings[:header].merge(options[:header]))
|
61
|
+
|
62
|
+
http.request(request, options[:body])
|
63
|
+
end
|
64
|
+
|
65
|
+
def start(uri = nil)
|
66
|
+
@started = true
|
67
|
+
@http = uri.nil? ? get_http(URI(@url)) : get_http(URI(uri))
|
68
|
+
@http.start
|
69
|
+
yield
|
70
|
+
@http.finish # Close connection after usage
|
71
|
+
@started = false
|
72
|
+
end
|
73
|
+
|
74
|
+
private
|
75
|
+
|
76
|
+
def get_http(uri)
|
77
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
78
|
+
http.read_timeout = @settings[:read_timeout]
|
79
|
+
|
80
|
+
if @settings[:ssl]
|
81
|
+
http.use_ssl = true
|
82
|
+
if @settings[:cert].empty?
|
83
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
84
|
+
else
|
85
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
86
|
+
http.cs_file = @settings[:cert]
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
return http
|
91
|
+
end
|
92
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
%w{connection single_connection}.each { |file| require_relative file }
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative 'connection'
|
2
|
+
|
3
|
+
module SingleConnection
|
4
|
+
extend self
|
5
|
+
|
6
|
+
def init(url, settings = {})
|
7
|
+
@connection = Connection.new(url, settings)
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_conn_settings
|
11
|
+
@connection.settings
|
12
|
+
end
|
13
|
+
|
14
|
+
def get(options = {})
|
15
|
+
@connection.get(options)
|
16
|
+
end
|
17
|
+
|
18
|
+
def post(options = {})
|
19
|
+
@connection.post(options)
|
20
|
+
end
|
21
|
+
|
22
|
+
def start(uri = nil)
|
23
|
+
arg = uri.nil? ? URI(@connection.url) : URI(uri)
|
24
|
+
@connection.start(arg) { |connection| yield }
|
25
|
+
end
|
26
|
+
end
|
metadata
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: http_requests
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Wanderson Silva
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-02-06 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: |-
|
14
|
+
http_requests is a lib that provides an easy way to create an HTTP or HTTPS
|
15
|
+
connection and issue requests to it.
|
16
|
+
email: wanderson.olivs@gmail.com
|
17
|
+
executables: []
|
18
|
+
extensions: []
|
19
|
+
extra_rdoc_files: []
|
20
|
+
files:
|
21
|
+
- lib/connection.rb
|
22
|
+
- lib/http_requests.rb
|
23
|
+
- lib/single_connection.rb
|
24
|
+
homepage: https://github.com/silvawand/wand-ruby-gem-http-requests
|
25
|
+
licenses:
|
26
|
+
- MIT
|
27
|
+
metadata: {}
|
28
|
+
post_install_message:
|
29
|
+
rdoc_options: []
|
30
|
+
require_paths:
|
31
|
+
- lib
|
32
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
33
|
+
requirements:
|
34
|
+
- - ">="
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '0'
|
37
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
42
|
+
requirements: []
|
43
|
+
rubyforge_project:
|
44
|
+
rubygems_version: 2.5.2.1
|
45
|
+
signing_key:
|
46
|
+
specification_version: 4
|
47
|
+
summary: A simple lib that provides easy methods to make HTTP and HTTP requests.
|
48
|
+
test_files: []
|