easy_request 0.0.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c61f64810bf93115de1d6f8f95c90e5817b9fc39
4
+ data.tar.gz: 1f699dfc23c2552bc939ca9b5fb6b8e1dd75d169
5
+ SHA512:
6
+ metadata.gz: 906cb30259553e70fa529074eb6dd781ea790127d3a530feb0abed72a6ca8cc00e4bf53db3c93ffe524505ba04c7e8ed13fe5051826a46bfb6cad52fa22b20b1
7
+ data.tar.gz: 6d37a94ad9867a209e4658f7a9fc20ce9bcfae5c2813b8a3673248bd7a00c43c8fe8c80d54a360409ec62a9629a2e5432a54c9df3ea5aa72a105e82c7bea8d76
@@ -0,0 +1,72 @@
1
+ class HttpRequest
2
+
3
+ def initialize(url)
4
+ @url = url
5
+ @data = nil
6
+ @auth = nil
7
+ @method = nil
8
+ @extra_headers = nil
9
+ end
10
+
11
+ def set_method(method)
12
+ if method == 'GET' || method == 'POST' || method == 'PUT' || method == 'DELETE'
13
+ @method = method
14
+ else
15
+ raise 'Not supported method'
16
+ end
17
+ end
18
+
19
+ def set_auth(auth)
20
+ @auth = auth
21
+ end
22
+
23
+ def set_data(data)
24
+ @data = data.to_json
25
+ end
26
+
27
+ def set_extra_headers(headers)
28
+ if headers.is_a?(Hash)
29
+ @extra_headers = headers
30
+ end
31
+ end
32
+
33
+ def execute_request
34
+ headers = {
35
+ 'content-type' => 'application/json',
36
+ 'cache-control' => 'no-cache'
37
+ }
38
+
39
+ if @extra_headers
40
+ headers.merge @extra_headers
41
+ end
42
+
43
+ uri = URI.parse(@url)
44
+ http = Net::HTTP.new(uri.host, uri.port)
45
+ http.use_ssl = true
46
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
47
+
48
+ case @method
49
+ when 'GET'
50
+ req = Net::HTTP::Get.new(uri.request_uri, headers)
51
+ when 'POST'
52
+ req = Net::HTTP::Post.new(uri.request_uri, headers)
53
+ when 'PUT'
54
+ req = Net::HTTP::Put.new(uri.request_uri, headers)
55
+ when 'DELETE'
56
+ req = Net::HTTP::Delete.new(uri.request_uri, headers)
57
+ else
58
+ raise 'Request method is not defined: '+@method.to_s
59
+ end
60
+
61
+ if @auth && @auth.is_a?(Hash)
62
+ req.basic_auth @auth[:user], @auth[:pass]
63
+ end
64
+
65
+ req.body = @data
66
+
67
+ res = http.request(req)
68
+
69
+ res.body
70
+ end
71
+
72
+ end
@@ -0,0 +1,5 @@
1
+ class HttpResponse
2
+ attr_accessor :body
3
+ attr_accessor :code
4
+ attr_accessor :headers
5
+ end
@@ -0,0 +1,58 @@
1
+ require 'openssl'
2
+ require 'net/http'
3
+ require 'json'
4
+ require 'base64'
5
+
6
+ require 'easy_request/http_request'
7
+ require 'easy_request/http_response'
8
+
9
+ class EasyRequest
10
+
11
+ def self.get(url, auth=nil, headers=nil)
12
+ http = HttpRequest.new url
13
+ http.set_auth auth
14
+ http.set_method 'GET'
15
+ http.set_extra_headers headers
16
+
17
+ response = http.execute_request
18
+
19
+ return response
20
+ end
21
+
22
+ def self.post(url, data=nil, auth=nil, headers=nil)
23
+ http = HttpRequest.new url
24
+ http.set_auth auth
25
+ http.set_method 'POST'
26
+ http.set_data data unless data.nil?
27
+ http.set_extra_headers headers
28
+
29
+ response = http.execute_request
30
+
31
+ return response
32
+ end
33
+
34
+ def self.put(url, data=nil, auth=nil, headers=nil)
35
+ http = HttpRequest.new url
36
+ http.set_auth auth
37
+ http.set_method 'PUT'
38
+ http.set_data data unless data.nil?
39
+ http.set_extra_headers headers
40
+
41
+ response = http.execute_request
42
+
43
+ return response
44
+ end
45
+
46
+ def self.delete(url, data=nil, auth=nil, headers=nil)
47
+ http = HttpRequest.new url
48
+ http.set_auth auth
49
+ http.set_method 'DELETE'
50
+ http.set_data data unless data.nil?
51
+ http.set_extra_headers headers
52
+
53
+ response = http.execute_request
54
+
55
+ return response
56
+ end
57
+
58
+ end
metadata ADDED
@@ -0,0 +1,104 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: easy_request
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Eduardo Aguilar
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-03-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: json
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.7'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.7'
69
+ description: Using the net/http class and json make easy request for any URL and get
70
+ the response
71
+ email:
72
+ - dante.aguilar41@gmail.com
73
+ executables: []
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - "./lib/easy_request.rb"
78
+ - "./lib/easy_request/http_request.rb"
79
+ - "./lib/easy_request/http_response.rb"
80
+ homepage: https://github.com/danteay/easy-ruby-request
81
+ licenses:
82
+ - Apache-2.0
83
+ metadata: {}
84
+ post_install_message:
85
+ rdoc_options: []
86
+ require_paths:
87
+ - lib
88
+ required_ruby_version: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: '0'
93
+ required_rubygems_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ requirements: []
99
+ rubyforge_project:
100
+ rubygems_version: 2.6.10
101
+ signing_key:
102
+ specification_version: 4
103
+ summary: Make easy Http request in ruby
104
+ test_files: []