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.
Files changed (2) hide show
  1. data/lib/net/http/rest_client.rb +51 -16
  2. metadata +3 -3
@@ -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.1'
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 get params = {}
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
- if @cookies.size > 0
58
- cookies = []
59
- @cookies.each do |key, value|
90
+ cookies = []
91
+ @cookies.merge(params[:cookies]).each do |key, value|
92
+ if value
60
93
  cookies << "#{key}=#{value}"
61
- end
62
- req['Cookie'] = cookies.join(';')
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.1
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-10 00:00:00.000000000 Z
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://hardc0de.com/hg/net_http-rest_client
21
+ homepage: https://bitbucket.org/promix17/net-http-rest_client/
22
22
  licenses: []
23
23
  post_install_message:
24
24
  rdoc_options: []