net_http-rest_client 0.0.1 → 0.1.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.
- data/lib/net/http/rest_client.rb +51 -16
- metadata +3 -3
data/lib/net/http/rest_client.rb
CHANGED
@@ -3,17 +3,27 @@ require 'net/http'
|
|
3
3
|
|
4
4
|
module Net
|
5
5
|
class HTTP
|
6
|
+
# Pure ruby http rest client class
|
6
7
|
class RestClient
|
7
|
-
VERSION = '0.0
|
8
|
+
VERSION = '0.1.0'
|
8
9
|
|
10
|
+
# Get class verion
|
9
11
|
def self.version
|
10
12
|
VERSION
|
11
13
|
end
|
12
14
|
|
15
|
+
# Main longstanding params (the same params as params at #initialize)
|
13
16
|
attr_reader :params
|
17
|
+
# Main longstanding cookies
|
14
18
|
attr_reader :cookies
|
19
|
+
# Main longstanding headers
|
20
|
+
attr_reader :headers
|
21
|
+
# Returns last Net::HTTP::Response
|
15
22
|
attr_reader :response
|
16
23
|
|
24
|
+
##
|
25
|
+
# To create class just pass params to constructor
|
26
|
+
# Net::HTTP::RestClient.new :host => '127.0.0.1', :port => 8080
|
17
27
|
def initialize params = {}
|
18
28
|
defaults = {
|
19
29
|
:port => 80,
|
@@ -27,45 +37,69 @@ module Net
|
|
27
37
|
end
|
28
38
|
@params = defaults.merge(params)
|
29
39
|
@cookies = {}
|
40
|
+
@headers = {}
|
41
|
+
@params[:headers] && @headers=@params[:headers]
|
42
|
+
@params[:cookies] && @cookies=@params[:cookies]
|
30
43
|
end
|
31
44
|
|
32
|
-
def
|
45
|
+
def clear_cookies
|
46
|
+
@cookies = {}
|
47
|
+
end
|
48
|
+
|
49
|
+
def clear_headers
|
50
|
+
@headers = {}
|
51
|
+
end
|
52
|
+
|
53
|
+
def get url, params = {}
|
54
|
+
params[:url] = url
|
33
55
|
request Net::HTTP::Get, params
|
34
56
|
end
|
35
57
|
|
36
|
-
def post params = {}
|
58
|
+
def post url, data=nil, params = {}
|
59
|
+
params[:url] = url
|
60
|
+
params[:body] = data
|
37
61
|
request Net::HTTP::Post, params
|
38
62
|
end
|
39
63
|
|
40
|
-
def put params = {}
|
64
|
+
def put url, data=nil, params = {}
|
65
|
+
params[:url] = url
|
66
|
+
params[:body] = data
|
41
67
|
request Net::HTTP::Put, params
|
42
68
|
end
|
43
69
|
|
44
|
-
def delete params = {}
|
70
|
+
def delete url, params = {}
|
71
|
+
params[:url] = url
|
45
72
|
request Net::HTTP::Delete, params
|
46
73
|
end
|
47
74
|
|
75
|
+
def head url, params = {}
|
76
|
+
params[:url] = url
|
77
|
+
request Net::HTTP::Head, params
|
78
|
+
end
|
79
|
+
|
48
80
|
private
|
49
81
|
|
50
82
|
def request method, params
|
83
|
+
params = { :headers => {}, :cookies => {} }.merge(params)
|
51
84
|
params = @params.merge(params)
|
52
85
|
req = method.new(params[:url])
|
53
86
|
req['User-Agent'] = params[:user_agent]
|
54
87
|
params[:body] && req.body = params[:body]
|
55
88
|
params[:virtual_host] && req['Host'] = params[:virtual_host]
|
56
89
|
params[:user] && req.basic_auth(params[:user], params[:password])
|
57
|
-
|
58
|
-
|
59
|
-
|
90
|
+
cookies = []
|
91
|
+
@cookies.merge(params[:cookies]).each do |key, value|
|
92
|
+
if value
|
60
93
|
cookies << "#{key}=#{value}"
|
61
|
-
|
62
|
-
|
63
|
-
end
|
64
|
-
if params[:headers]
|
65
|
-
params[:headers].each do |key, value|
|
66
|
-
req[key] = value
|
94
|
+
else
|
95
|
+
cookies << "#{key}"
|
67
96
|
end
|
68
97
|
end
|
98
|
+
cookies.size>0 && req['Cookie'] = cookies.join(';')
|
99
|
+
@headers.merge(params[:headers]).each do |key, value|
|
100
|
+
req[key] = value
|
101
|
+
end
|
102
|
+
response = nil
|
69
103
|
if params[:timeout]
|
70
104
|
Timeout::timeout(params[:timeout]) do
|
71
105
|
response = execute req, params
|
@@ -73,10 +107,11 @@ module Net
|
|
73
107
|
else
|
74
108
|
response = execute req, params
|
75
109
|
end
|
110
|
+
@response = response
|
111
|
+
return nil unless response
|
76
112
|
if response['Set-Cookie'] && response['Set-Cookie'].size>0
|
77
113
|
parse_cookies response
|
78
|
-
end
|
79
|
-
@response = response
|
114
|
+
end
|
80
115
|
return response.body
|
81
116
|
end
|
82
117
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: net_http-rest_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-03-
|
12
|
+
date: 2015-03-11 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Pure http rest client library
|
15
15
|
email: promix17@yandex.ru
|
@@ -18,7 +18,7 @@ extensions: []
|
|
18
18
|
extra_rdoc_files: []
|
19
19
|
files:
|
20
20
|
- ./lib/net/http/rest_client.rb
|
21
|
-
homepage: https://
|
21
|
+
homepage: https://bitbucket.org/promix17/net-http-rest_client/
|
22
22
|
licenses: []
|
23
23
|
post_install_message:
|
24
24
|
rdoc_options: []
|