ez_http 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,37 +1,115 @@
1
1
  # EZHttp
2
2
 
3
- A wrapper for ruby net/http, supports http/https, RESTful methods, certificate.
3
+ A wrapper for ruby net/http, supports http/https, RESTful methods, headers, certificate and file uploads.
4
+ It supports both command line and ruby code.
4
5
 
5
6
  ## How to use it
6
7
 
7
- send a post request to specified url with the json as data
8
+ ### Command Line
8
9
 
9
- response = EZHttp.Send("https://www.example.com:83/api",
10
- {"key1"=>"value1"})
10
+ Send with query string
11
11
 
12
- send a put request to specified url with encoded query string params as data
12
+ ezhttp \
13
+ --url "https://api.twitter.com/1/followers/ids.json" \
14
+ --method "get" \
15
+ --data "cursor=-1&screen_name=twitterapi"
13
16
 
14
- response = EZHttp.Send("https://www.example.com:83/api",
15
- "key1=I%27ll+do&key2=He%27+do",
16
- "put",
17
- "application/x-www-form-urlencoded")
17
+ Send with query string
18
18
 
19
- specify extra headers
19
+ ezhttp \
20
+ --url "https://api.twitter.com/1/followers/ids.json&cursor=-1&screen_name=twitterapi" \
21
+ --method "get"
20
22
 
21
- response = EZHttp.Send("https://www.example.com:83/api",
22
- {"key1"=>"value1"},
23
- "post",
24
- {"content-type" => "application/json", "authentication" => "xxxx"})
23
+ Send with json
25
24
 
26
- use certificate
25
+ ezhttp \
26
+ --url 'http://127.0.0.1:3000/file/upload_file' \
27
+ --data '{"name":{"fn":"xxx","ln":"xxx"}}' \
28
+ --method 'post' \
29
+ --type 'application/json'
27
30
 
28
- response = EZHttp.Send("https://www.example.com:83/api",
29
- {"key1"=>"value1"},
30
- "post",
31
+ Send with header
32
+
33
+ ezhttp \
34
+ --url 'https://api.twitter.com/oauth/request_token' \
35
+ --method 'post' \
36
+ --header 'Authorization: OAuth oauth_nonce="K7ny27JTpKVsTgdyLdDfmQQWVLERj2zAK5BslRsqyw", oauth_callback="http%3A%2F%2Fmyapp.com%3A3005%2Ftwitter%2Fprocess_callback", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1300228849", oauth_consumer_key="OqEqJeafRSF11jBMStrZz", oauth_signature="Pc%2BMLdv028fxCErFyi8KXFM%2BddU%3D", oauth_version="1.0"'
37
+
38
+
39
+ Upload file
40
+
41
+ ezhttp \
42
+ --url 'http://127.0.0.1:3000/file/upload_file' \
43
+ --files 'path_to_file.png'
44
+
45
+ Upload multiple files with header
46
+
47
+ ezhttp \
48
+ --url 'http://127.0.0.1:3000/file/upload_file' \
49
+ --files 'path_to_file1.zip','path_to_file2.jpg' \
50
+ --header 'authorization:Basic Zvsdwegbdgegsdv0xvsd='
51
+
52
+ ### Ruby
53
+
54
+ Send with encoded query string as data
55
+
56
+ # Post request
57
+ response = EZHttp.Post("https://www.example.com:83/api",
58
+ "user_id=12345&token=sdfwD12g%7Ecc")
59
+
60
+ # Get request
61
+ response = EZHttp.Get("http://www.example.com/api",
62
+ "user_id=12345&token=sdfwD12g%7Ecc")
63
+
64
+ # OR
65
+ response = EZHttp.Get("http://www.example.com/api?user_id=12345&token=sdfwD12g%7Ecc")
66
+
67
+ Send with hash as data
68
+
69
+ # Post request
70
+ response = EZHttp.Post("https://www.example.com:83/api",
71
+ {"name1"=>"value", "name2" => "value2"})
72
+
73
+ # Put request
74
+ response = EZHttp.Put("https://www.example.com:83/api",
75
+ {"name1"=>"value", "name2" => "value2"})
76
+
77
+ Send with extra headers
78
+
79
+ response = EZHttp.Post("https://www.example.com:83/api",
80
+ "user_id=12345&token=sdfwD12g%7Ecc",
81
+ nil,
82
+ [
83
+ "authentication:oAuth username=xxx&password=xxx",
84
+ "other_header:other_values"
85
+ ])
86
+
87
+ Send with pem certificate
88
+
89
+ response = EZHttp.Delete("https://www.example.com:83/api",
90
+ {"user_id"=>"12345"},
31
91
  "application/json",
92
+ nil,
32
93
  "/path_to_cert.pem")
33
94
 
34
- display raw response
95
+ Upload file(s)
96
+
97
+ #
98
+ files = []
99
+ file = File.open("path_to_file.extension", "rb")
100
+ files.push({"name" => File.basename(file), "content" => file.read})
101
+ file.close
102
+
103
+ # simply upload file
104
+ response = EZHttp.Upload("https://www.example.com:83/api",
105
+ files)
106
+
107
+ # upload file with headers
108
+ response = EZHttp.Upload("https://www.example.com:83/api",
109
+ files,
110
+ ["authorization:Basic Zvsdwegbdgegsdv0xvsd="])
111
+
112
+ Display response
35
113
 
36
114
  puts response.body
37
115
 
@@ -0,0 +1,116 @@
1
+ #!/usr/bin/env ruby
2
+ lib = File.expand_path("../../lib/", __FILE__)
3
+ $LOAD_PATH.unshift lib unless $LOAD_PATH.include?(lib)
4
+
5
+ require "optparse"
6
+ require "ez_http"
7
+
8
+ ########################################################################################################
9
+ # get options from user input
10
+ ########################################################################################################
11
+ options = {}
12
+ options[:headers] = nil
13
+
14
+ optparse = OptionParser.new do |opts|
15
+ opts.banner = "Send Request: ezhttp --url URL [--data DATA] [--method METHOD] [--type TYPE] [--header HEADERR] [--cert path_to_certificate] \n"
16
+ opts.banner += "Upload Files: ezhttp --url URL [--files FILE1,FILE2...] [--header HEADERR] [--cert path_to_certificate] \n"
17
+
18
+ options[:url] = nil
19
+ opts.on("-u", "--url URL", "url to send request to") do |d|
20
+ options[:url] = d
21
+ end
22
+
23
+ options[:data] = nil
24
+ opts.on("-d", "--data DATA", "encoded query string or stringified json") do |d|
25
+ options[:data] = d
26
+ end
27
+
28
+ options[:method] = nil
29
+ opts.on("-m", "--method METHOD", ["get", "post", "put", "delete"], "RESTful method: get/post/put/delete") do |d|
30
+ options[:method] = d
31
+ end
32
+
33
+ options[:content_type] = nil
34
+ opts.on("-t", "--type TYPE", "content-type") do |d|
35
+ options[:content_type] = d
36
+ end
37
+
38
+ opts.on("--header HEADER", "example: authentication:oAuth username=xxx&password=xxx") do |d|
39
+ puts d
40
+ options[:headers] = [] if options[:headers].nil?
41
+ options[:headers].push(d)
42
+ end
43
+
44
+ options[:cert_path] = nil
45
+ opts.on("-c", "--cert PATH", "path to certificate") do |d|
46
+ options[:cert_path] = d
47
+ end
48
+
49
+ options[:files] = nil
50
+ opts.on("-f", "--files FILE1,FILE2...", Array, "list of paths to files") do |d|
51
+ options[:files] = d
52
+ end
53
+
54
+ opts.on("-h", "--help", "Display this help screen") do
55
+ puts opts
56
+ exit
57
+ end
58
+
59
+ opts.on("-v", "--version", "Show version") do |v|
60
+ puts "ezhttp(aka:ez_http) version #{EZHttp::VERSION}"
61
+ exit
62
+ end
63
+
64
+
65
+ end
66
+
67
+ ########################################################################################################
68
+ # parse options
69
+ ########################################################################################################
70
+ begin
71
+ optparse.parse!
72
+ rescue OptionParser::ParseError => pe
73
+ puts pe.message
74
+ puts optparse
75
+ exit
76
+ end
77
+
78
+ if (options[:url].nil? || options[:url].strip.empty?)
79
+ puts "Required action is not specified"
80
+ puts optparse
81
+ exit
82
+ end
83
+
84
+
85
+ ########################################################################################################
86
+ # send request and retrive response
87
+ ########################################################################################################
88
+
89
+ puts " "
90
+
91
+ if (!options[:files].nil? && options[:files].length > 0)
92
+ files = []
93
+ options[:files].each do |path|
94
+ file = File.open(path, "rb")
95
+ name = File.basename(file)
96
+ content = file.read
97
+ file.close
98
+ files.push({"name" => name, "content" => content})
99
+ end
100
+
101
+ response = EZHttp.Upload(options[:url],
102
+ files,
103
+ options[:headers],
104
+ options[:cert_path])
105
+ else
106
+ response = EZHttp.Send(options[:url],
107
+ options[:data],
108
+ options[:method],
109
+ options[:content_type],
110
+ options[:headers],
111
+ options[:cert_path])
112
+ end
113
+
114
+
115
+ puts response.body
116
+
@@ -72,7 +72,9 @@
72
72
 
73
73
 
74
74
  <dt class="r1 last">Defined in:</dt>
75
- <dd class="r1 last">lib/ez_http.rb</dd>
75
+ <dd class="r1 last">lib/ez_http/core.rb<span class="defines">,<br />
76
+ lib/ez_http/version.rb</span>
77
+ </dd>
76
78
 
77
79
  </dl>
78
80
  <div class="clear"></div>
@@ -80,36 +82,8 @@
80
82
  <h2>Overview</h2><div class="docstring">
81
83
  <div class="discussion">
82
84
 
83
- <p>A wrapper for ruby net/http, supports http/https, RESTful methods,
84
- certificate.</p>
85
-
86
- <pre class="code ruby"><code><span class='const'>How</span> <span class='id identifier rubyid_to'>to</span> <span class='label'>use:</span>
87
-
88
- <span class='comment'># send a post request to specified url with the json as data
89
- </span> <span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Send</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
90
- <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>key1</span><span class='tstring_end'>&quot;</span></span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>value1</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='rparen'>)</span>
91
-
92
- <span class='comment'># send a put request to specified url with encoded query string params as data
93
- </span> <span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Send</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
94
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>key1=I%27ll+do&amp;key2=He%27+do</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
95
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>put</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
96
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>application/x-www-form-urlencoded</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
97
-
98
- <span class='comment'># specify extra headers
99
- </span> <span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Send</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
100
- <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>key1</span><span class='tstring_end'>&quot;</span></span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>value1</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='comma'>,</span>
101
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>post</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
102
- <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>content-type</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>application/json</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>authentication</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>xxxx</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='rparen'>)</span>
103
-
104
- <span class='comment'># use certificate
105
- </span> <span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Send</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
106
- <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>key1</span><span class='tstring_end'>&quot;</span></span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>value1</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='comma'>,</span>
107
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>post</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
108
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>application/json</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
109
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/path_to_cert.pem</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
110
-
111
- <span class='comment'># display raw response
112
- </span> <span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_response'>response</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span></code></pre>
85
+ <p>A wrapper for ruby net/http, supports http/https, RESTful methods, headers,
86
+ certificate</p>
113
87
 
114
88
 
115
89
  </div>
@@ -134,6 +108,18 @@ certificate.</p>
134
108
  </ul>
135
109
 
136
110
  </div>
111
+ <h2>Constant Summary</h2>
112
+
113
+ <dl class="constants">
114
+
115
+ <dt id="VERSION-constant" class="">VERSION =
116
+
117
+ </dt>
118
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>1.0.4</span><span class='tstring_end'>&quot;</span></span></pre></dd>
119
+
120
+ </dl>
121
+
122
+
137
123
 
138
124
 
139
125
 
@@ -151,7 +137,91 @@ certificate.</p>
151
137
  <li class="public ">
152
138
  <span class="summary_signature">
153
139
 
154
- <a href="#Send-class_method" title="Send (class method)">+ (Net::HTTPResponse) <strong>Send</strong>(url, data, method = &quot;post&quot;, headers = {&quot;content-type&quot; =&gt; &quot;application/json&quot;}, cert_path = nil) </a>
140
+ <a href="#Delete-class_method" title="Delete (class method)">+ (Object) <strong>Delete</strong>(url, data = nil, content_type = nil, headers = nil, cert_path = nil) </a>
141
+
142
+
143
+
144
+ </span>
145
+
146
+
147
+
148
+
149
+
150
+
151
+
152
+
153
+ <span class="summary_desc"><div class='inline'></div></span>
154
+
155
+ </li>
156
+
157
+
158
+ <li class="public ">
159
+ <span class="summary_signature">
160
+
161
+ <a href="#Get-class_method" title="Get (class method)">+ (Object) <strong>Get</strong>(url, data = nil, content_type = nil, headers = nil, cert_path = nil) </a>
162
+
163
+
164
+
165
+ </span>
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+ <span class="summary_desc"><div class='inline'></div></span>
175
+
176
+ </li>
177
+
178
+
179
+ <li class="public ">
180
+ <span class="summary_signature">
181
+
182
+ <a href="#Post-class_method" title="Post (class method)">+ (Object) <strong>Post</strong>(url, data = nil, content_type = nil, headers = nil, cert_path = nil) </a>
183
+
184
+
185
+
186
+ </span>
187
+
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+ <span class="summary_desc"><div class='inline'></div></span>
196
+
197
+ </li>
198
+
199
+
200
+ <li class="public ">
201
+ <span class="summary_signature">
202
+
203
+ <a href="#Put-class_method" title="Put (class method)">+ (Object) <strong>Put</strong>(url, data = nil, content_type = nil, headers = nil, cert_path = nil) </a>
204
+
205
+
206
+
207
+ </span>
208
+
209
+
210
+
211
+
212
+
213
+
214
+
215
+
216
+ <span class="summary_desc"><div class='inline'></div></span>
217
+
218
+ </li>
219
+
220
+
221
+ <li class="public ">
222
+ <span class="summary_signature">
223
+
224
+ <a href="#Send-class_method" title="Send (class method)">+ (Net::HTTPResponse) <strong>Send</strong>(url, data = nil, method = nil, content_type = nil, headers = nil, cert_path = nil) </a>
155
225
 
156
226
 
157
227
 
@@ -168,6 +238,29 @@ certificate.</p>
168
238
  <p>Send http request to specified url and return responses.</p>
169
239
  </div></span>
170
240
 
241
+ </li>
242
+
243
+
244
+ <li class="public ">
245
+ <span class="summary_signature">
246
+
247
+ <a href="#Upload-class_method" title="Upload (class method)">+ (Object) <strong>Upload</strong>(url, files, headers = nil, cert_path = nil) </a>
248
+
249
+
250
+
251
+ </span>
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+ <span class="summary_desc"><div class='inline'>
261
+ <p>Upload files.</p>
262
+ </div></span>
263
+
171
264
  </li>
172
265
 
173
266
 
@@ -181,9 +274,121 @@ certificate.</p>
181
274
 
182
275
 
183
276
  <div class="method_details first">
184
- <p class="signature first" id="Send-class_method">
277
+ <p class="signature first" id="Delete-class_method">
278
+
279
+ + (<tt>Object</tt>) <strong>Delete</strong>(url, data = nil, content_type = nil, headers = nil, cert_path = nil)
280
+
281
+
282
+
283
+ </p><table class="source_code">
284
+ <tr>
285
+ <td>
286
+ <pre class="lines">
287
+
288
+
289
+ 126
290
+ 127
291
+ 128</pre>
292
+ </td>
293
+ <td>
294
+ <pre class="code"><span class="info file"># File 'lib/ez_http/core.rb', line 126</span>
295
+
296
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='const'>Delete</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_content_type'>content_type</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_cert_path'>cert_path</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
297
+ <span class='kw'>self</span><span class='period'>.</span><span class='const'>Send</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>delete</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_content_type'>content_type</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='comma'>,</span> <span class='id identifier rubyid_cert_path'>cert_path</span><span class='rparen'>)</span>
298
+ <span class='kw'>end</span></pre>
299
+ </td>
300
+ </tr>
301
+ </table>
302
+ </div>
303
+
304
+ <div class="method_details ">
305
+ <p class="signature " id="Get-class_method">
306
+
307
+ + (<tt>Object</tt>) <strong>Get</strong>(url, data = nil, content_type = nil, headers = nil, cert_path = nil)
308
+
309
+
310
+
311
+ </p><table class="source_code">
312
+ <tr>
313
+ <td>
314
+ <pre class="lines">
315
+
316
+
317
+ 118
318
+ 119
319
+ 120</pre>
320
+ </td>
321
+ <td>
322
+ <pre class="code"><span class="info file"># File 'lib/ez_http/core.rb', line 118</span>
323
+
324
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='const'>Get</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_content_type'>content_type</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_cert_path'>cert_path</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
325
+ <span class='kw'>self</span><span class='period'>.</span><span class='const'>Send</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>get</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_content_type'>content_type</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='comma'>,</span> <span class='id identifier rubyid_cert_path'>cert_path</span><span class='rparen'>)</span>
326
+ <span class='kw'>end</span></pre>
327
+ </td>
328
+ </tr>
329
+ </table>
330
+ </div>
331
+
332
+ <div class="method_details ">
333
+ <p class="signature " id="Post-class_method">
334
+
335
+ + (<tt>Object</tt>) <strong>Post</strong>(url, data = nil, content_type = nil, headers = nil, cert_path = nil)
336
+
337
+
338
+
339
+ </p><table class="source_code">
340
+ <tr>
341
+ <td>
342
+ <pre class="lines">
343
+
344
+
345
+ 114
346
+ 115
347
+ 116</pre>
348
+ </td>
349
+ <td>
350
+ <pre class="code"><span class="info file"># File 'lib/ez_http/core.rb', line 114</span>
351
+
352
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='const'>Post</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_content_type'>content_type</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_cert_path'>cert_path</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
353
+ <span class='kw'>self</span><span class='period'>.</span><span class='const'>Send</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>post</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_content_type'>content_type</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='comma'>,</span> <span class='id identifier rubyid_cert_path'>cert_path</span><span class='rparen'>)</span>
354
+ <span class='kw'>end</span></pre>
355
+ </td>
356
+ </tr>
357
+ </table>
358
+ </div>
359
+
360
+ <div class="method_details ">
361
+ <p class="signature " id="Put-class_method">
362
+
363
+ + (<tt>Object</tt>) <strong>Put</strong>(url, data = nil, content_type = nil, headers = nil, cert_path = nil)
185
364
 
186
- + (<tt>Net::HTTPResponse</tt>) <strong>Send</strong>(url, data, method = &quot;post&quot;, headers = {&quot;content-type&quot; =&gt; &quot;application/json&quot;}, cert_path = nil)
365
+
366
+
367
+ </p><table class="source_code">
368
+ <tr>
369
+ <td>
370
+ <pre class="lines">
371
+
372
+
373
+ 122
374
+ 123
375
+ 124</pre>
376
+ </td>
377
+ <td>
378
+ <pre class="code"><span class="info file"># File 'lib/ez_http/core.rb', line 122</span>
379
+
380
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='const'>Put</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_content_type'>content_type</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_cert_path'>cert_path</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
381
+ <span class='kw'>self</span><span class='period'>.</span><span class='const'>Send</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>put</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_content_type'>content_type</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='comma'>,</span> <span class='id identifier rubyid_cert_path'>cert_path</span><span class='rparen'>)</span>
382
+ <span class='kw'>end</span></pre>
383
+ </td>
384
+ </tr>
385
+ </table>
386
+ </div>
387
+
388
+ <div class="method_details ">
389
+ <p class="signature " id="Send-class_method">
390
+
391
+ + (<tt>Net::HTTPResponse</tt>) <strong>Send</strong>(url, data = nil, method = nil, content_type = nil, headers = nil, cert_path = nil)
187
392
 
188
393
 
189
394
 
@@ -226,7 +431,7 @@ certificate.</p>
226
431
 
227
432
  &mdash;
228
433
  <div class='inline'>
229
- <p>to send</p>
434
+ <p>hash to send or encoded query string or stringified hash</p>
230
435
  </div>
231
436
 
232
437
  </li>
@@ -247,18 +452,35 @@ certificate.</p>
247
452
 
248
453
  </li>
249
454
 
455
+ <li>
456
+
457
+ <span class='name'>content_type:</span>
458
+
459
+
460
+ <span class='type'>(<tt>String</tt>)</span>
461
+
462
+
463
+
464
+ &mdash;
465
+ <div class='inline'>
466
+ <p>ie."application/json"</p>
467
+ </div>
468
+
469
+ </li>
470
+
250
471
  <li>
251
472
 
252
473
  <span class='name'>headers:</span>
253
474
 
254
475
 
255
- <span class='type'>(<tt>Hash</tt>)</span>
476
+ <span class='type'>(<tt>Array[String]</tt>)</span>
256
477
 
257
478
 
258
479
 
259
480
  &mdash;
260
481
  <div class='inline'>
261
- <p>if nil default is =&gt; "application/json"</p>
482
+ <p>is an array of Strings, <a
483
+ href=""encoded_key:encoded_value","content-type:application/json"">ie.</a>;</p>
262
484
  </div>
263
485
 
264
486
  </li>
@@ -274,7 +496,7 @@ certificate.</p>
274
496
 
275
497
  &mdash;
276
498
  <div class='inline'>
277
- <p>to the certificate file, set nil if none</p>
499
+ <p>to the certificate file, don't specify or set nil if none</p>
278
500
  </div>
279
501
 
280
502
  </li>
@@ -293,8 +515,7 @@ certificate.</p>
293
515
 
294
516
  &mdash;
295
517
  <div class='inline'>
296
- <p>response from remote server, example to access its fields: response.body,
297
- response.status</p>
518
+ <p>response from remote server, example to access its fields: response.body</p>
298
519
  </div>
299
520
 
300
521
  </li>
@@ -307,6 +528,29 @@ response.status</p>
307
528
  <pre class="lines">
308
529
 
309
530
 
531
+ 23
532
+ 24
533
+ 25
534
+ 26
535
+ 27
536
+ 28
537
+ 29
538
+ 30
539
+ 31
540
+ 32
541
+ 33
542
+ 34
543
+ 35
544
+ 36
545
+ 37
546
+ 38
547
+ 39
548
+ 40
549
+ 41
550
+ 42
551
+ 43
552
+ 44
553
+ 45
310
554
  46
311
555
  47
312
556
  48
@@ -372,36 +616,28 @@ response.status</p>
372
616
  108
373
617
  109
374
618
  110
375
- 111
376
- 112
377
- 113
378
- 114
379
- 115
380
- 116
381
- 117
382
- 118</pre>
619
+ 111</pre>
383
620
  </td>
384
621
  <td>
385
- <pre class="code"><span class="info file"># File 'lib/ez_http.rb', line 46</span>
622
+ <pre class="code"><span class="info file"># File 'lib/ez_http/core.rb', line 23</span>
386
623
 
387
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='const'>Send</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='id identifier rubyid_method'>method</span><span class='op'>=</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>post</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='op'>=</span><span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>content-type</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>application/json</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='id identifier rubyid_cert_path'>cert_path</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
624
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='const'>Send</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_method'>method</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_content_type'>content_type</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_cert_path'>cert_path</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
388
625
 
389
- <span class='comment'># Parse url
390
- </span> <span class='kw'>begin</span>
626
+ <span class='kw'>begin</span>
627
+ <span class='comment'># Parse url
628
+ </span> <span class='id identifier rubyid_url'>url</span><span class='period'>.</span><span class='id identifier rubyid_strip!'>strip!</span>
391
629
  <span class='id identifier rubyid_uri'>uri</span> <span class='op'>=</span> <span class='const'>URI</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='rparen'>)</span>
392
630
  <span class='id identifier rubyid_http'>http</span> <span class='op'>=</span> <span class='const'>Net</span><span class='op'>::</span><span class='const'>HTTP</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_uri'>uri</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span><span class='comma'>,</span> <span class='id identifier rubyid_uri'>uri</span><span class='period'>.</span><span class='id identifier rubyid_port'>port</span><span class='rparen'>)</span>
393
631
  <span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='period'>.</span><span class='id identifier rubyid_match'>match</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^https</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
394
632
  <span class='id identifier rubyid_http'>http</span><span class='period'>.</span><span class='id identifier rubyid_use_ssl'>use_ssl</span> <span class='op'>=</span> <span class='kw'>true</span>
395
633
  <span class='kw'>end</span>
396
- <span class='kw'>rescue</span>
397
- <span class='id identifier rubyid_throw'>throw</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Error in url</span><span class='tstring_end'>&quot;</span></span>
398
- <span class='kw'>end</span>
399
634
 
400
-
401
- <span class='comment'># Create request
402
- </span> <span class='kw'>begin</span>
403
- <span class='id identifier rubyid_method'>method</span> <span class='op'>=</span> <span class='id identifier rubyid_method'>method</span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>post</span><span class='tstring_end'>&quot;</span></span>
404
- <span class='kw'>case</span> <span class='id identifier rubyid_method'>method</span><span class='period'>.</span><span class='id identifier rubyid_downcase'>downcase</span>
635
+ <span class='comment'># Create request
636
+ </span> <span class='id identifier rubyid_request_method'>request_method</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>get</span><span class='tstring_end'>&quot;</span></span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>post</span><span class='tstring_end'>&quot;</span></span>
637
+ <span class='id identifier rubyid_request_method'>request_method</span> <span class='op'>=</span> <span class='id identifier rubyid_method'>method</span> <span class='op'>||</span> <span class='id identifier rubyid_request_method'>request_method</span>
638
+ <span class='id identifier rubyid_request_method'>request_method</span><span class='period'>.</span><span class='id identifier rubyid_strip!'>strip!</span>
639
+ <span class='id identifier rubyid_request_method'>request_method</span><span class='period'>.</span><span class='id identifier rubyid_downcase!'>downcase!</span>
640
+ <span class='kw'>case</span> <span class='id identifier rubyid_request_method'>request_method</span>
405
641
  <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>post</span><span class='tstring_end'>&quot;</span></span>
406
642
  <span class='id identifier rubyid_request'>request</span> <span class='op'>=</span> <span class='const'>Net</span><span class='op'>::</span><span class='const'>HTTP</span><span class='op'>::</span><span class='const'>Post</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_uri'>uri</span><span class='period'>.</span><span class='id identifier rubyid_request_uri'>request_uri</span><span class='rparen'>)</span>
407
643
  <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>get</span><span class='tstring_end'>&quot;</span></span>
@@ -413,29 +649,269 @@ response.status</p>
413
649
  <span class='kw'>else</span>
414
650
  <span class='id identifier rubyid_request'>request</span> <span class='op'>=</span> <span class='const'>Net</span><span class='op'>::</span><span class='const'>HTTP</span><span class='op'>::</span><span class='const'>Post</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_uri'>uri</span><span class='period'>.</span><span class='id identifier rubyid_request_uri'>request_uri</span><span class='rparen'>)</span>
415
651
  <span class='kw'>end</span>
652
+ <span class='kw'>rescue</span>
653
+ <span class='id identifier rubyid_throw'>throw</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Error in creating request</span><span class='tstring_end'>&quot;</span></span>
654
+ <span class='kw'>end</span>
416
655
 
417
- <span class='comment'># Set form data
418
- </span> <span class='id identifier rubyid_request'>request</span><span class='period'>.</span><span class='id identifier rubyid_set_form_data'>set_form_data</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='rparen'>)</span>
419
656
 
420
- <span class='comment'># Set default content-type
421
- </span> <span class='id identifier rubyid_request'>request</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>content-type</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>application/json</span><span class='tstring_end'>&quot;</span></span>
657
+ <span class='comment'># Set content-type
658
+ </span> <span class='id identifier rubyid_request'>request</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>content-type</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_content_type'>content_type</span><span class='period'>.</span><span class='id identifier rubyid_strip!'>strip!</span> <span class='kw'>unless</span> <span class='id identifier rubyid_content_type'>content_type</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
422
659
 
423
- <span class='comment'># Set headers
424
- </span> <span class='kw'>unless</span> <span class='lparen'>(</span><span class='id identifier rubyid_headers'>headers</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>String</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
425
- <span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_headers'>headers</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>merge</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
426
- <span class='id identifier rubyid_headers'>headers</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='op'>|</span>
427
- <span class='id identifier rubyid_request'>request</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_downcase'>downcase</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span>
660
+
661
+ <span class='comment'># Set data (can be json or encoded query string)
662
+ </span> <span class='kw'>begin</span>
663
+ <span class='kw'>unless</span> <span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span><span class='rparen'>)</span>
664
+ <span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Hash</span><span class='tstring_end'>&quot;</span></span> <span class='op'>||</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>merge</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
665
+ <span class='id identifier rubyid_request'>request</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_to_json'>to_json</span>
666
+ <span class='id identifier rubyid_request'>request</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>content-type</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>application/json</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_request'>request</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>content-type</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
667
+ <span class='kw'>else</span>
668
+ <span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>{</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
669
+ <span class='id identifier rubyid_request'>request</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>content-type</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>application/json</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_request'>request</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>content-type</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
428
670
  <span class='kw'>end</span>
671
+ <span class='id identifier rubyid_request'>request</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span>
672
+ <span class='comment'>#request[&quot;content-type&quot;] = &quot;application/x-www-form-urlencoded&quot; if request[&quot;content-type&quot;].nil?
673
+ </span> <span class='kw'>end</span>
674
+ <span class='kw'>end</span>
675
+ <span class='kw'>rescue</span>
676
+ <span class='id identifier rubyid_throw'>throw</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Error in parsing data</span><span class='tstring_end'>&quot;</span></span>
677
+ <span class='kw'>end</span>
678
+
679
+
680
+ <span class='comment'># Set headers
681
+ </span> <span class='kw'>begin</span>
682
+ <span class='kw'>unless</span> <span class='lparen'>(</span><span class='id identifier rubyid_headers'>headers</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span><span class='rparen'>)</span>
683
+ <span class='id identifier rubyid_headers'>headers</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_header'>header</span><span class='op'>|</span>
684
+ <span class='id identifier rubyid_key'>key</span> <span class='op'>=</span> <span class='id identifier rubyid_header'>header</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>:</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
685
+ <span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_header'>header</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>:</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span>
686
+ <span class='id identifier rubyid_request'>request</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span><span class='period'>.</span><span class='id identifier rubyid_downcase'>downcase</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span>
429
687
  <span class='kw'>end</span>
688
+ <span class='kw'>end</span>
689
+ <span class='kw'>rescue</span>
690
+ <span class='id identifier rubyid_throw'>throw</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Error in parsing headers</span><span class='tstring_end'>&quot;</span></span>
691
+ <span class='kw'>end</span>
692
+
693
+
694
+ <span class='comment'># Add cert if any
695
+ </span> <span class='kw'>begin</span>
696
+ <span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_cert_path'>cert_path</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span><span class='rparen'>)</span>
697
+ <span class='id identifier rubyid_http'>http</span><span class='period'>.</span><span class='id identifier rubyid_verify_mode'>verify_mode</span> <span class='op'>=</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>SSL</span><span class='op'>::</span><span class='const'>VERIFY_NONE</span>
430
698
  <span class='kw'>else</span>
431
- <span class='id identifier rubyid_content_type'>content_type</span> <span class='op'>=</span> <span class='id identifier rubyid_headers'>headers</span>
432
- <span class='id identifier rubyid_request'>request</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>content-type</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_content_type'>content_type</span>
699
+ <span class='id identifier rubyid_http'>http</span><span class='period'>.</span><span class='id identifier rubyid_use_ssl'>use_ssl</span> <span class='op'>=</span> <span class='kw'>true</span>
700
+ <span class='id identifier rubyid_pem'>pem</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span><span class='lparen'>(</span><span class='id identifier rubyid_cert_path'>cert_path</span><span class='rparen'>)</span>
701
+ <span class='id identifier rubyid_http'>http</span><span class='period'>.</span><span class='id identifier rubyid_cert'>cert</span> <span class='op'>=</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>X509</span><span class='op'>::</span><span class='const'>Certificate</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_pem'>pem</span><span class='rparen'>)</span>
702
+ <span class='id identifier rubyid_http'>http</span><span class='period'>.</span><span class='id identifier rubyid_key'>key</span> <span class='op'>=</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>PKey</span><span class='op'>::</span><span class='const'>RSA</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_pem'>pem</span><span class='rparen'>)</span>
703
+ <span class='id identifier rubyid_http'>http</span><span class='period'>.</span><span class='id identifier rubyid_verify_mode'>verify_mode</span> <span class='op'>=</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>SSL</span><span class='op'>::</span><span class='const'>VERIFY_PEER</span>
433
704
  <span class='kw'>end</span>
705
+ <span class='kw'>rescue</span>
706
+ <span class='id identifier rubyid_throw'>throw</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Error in creating certificate</span><span class='tstring_end'>&quot;</span></span>
707
+ <span class='kw'>end</span>
708
+
709
+ <span class='comment'># Send request and return response
710
+ </span> <span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='id identifier rubyid_http'>http</span><span class='period'>.</span><span class='id identifier rubyid_request'>request</span><span class='lparen'>(</span><span class='id identifier rubyid_request'>request</span><span class='rparen'>)</span>
711
+
712
+ <span class='kw'>end</span></pre>
713
+ </td>
714
+ </tr>
715
+ </table>
716
+ </div>
717
+
718
+ <div class="method_details ">
719
+ <p class="signature " id="Upload-class_method">
720
+
721
+ + (<tt>Object</tt>) <strong>Upload</strong>(url, files, headers = nil, cert_path = nil)
722
+
434
723
 
724
+
725
+ </p><div class="docstring">
726
+ <div class="discussion">
727
+
728
+ <p>Upload files</p>
729
+
730
+
731
+ </div>
732
+ </div>
733
+ <div class="tags">
734
+ <h3>Parameters:</h3>
735
+ <ul class="param">
736
+
737
+ <li>
738
+
739
+ <span class='name'>url:</span>
740
+
741
+
742
+ <span class='type'>(<tt>String</tt>)</span>
743
+
744
+
745
+
746
+ &mdash;
747
+ <div class='inline'>
748
+ <p>server to upload</p>
749
+ </div>
750
+
751
+ </li>
752
+
753
+ <li>
754
+
755
+ <span class='name'>files:</span>
756
+
757
+
758
+ <span class='type'>(<tt>Hash</tt>)</span>
759
+
760
+
761
+
762
+ &mdash;
763
+ <div class='inline'><dl class="rdoc-list"><dt>&quot;name&quot;,&quot;content&quot;</dt>
764
+ <dd></dd></dl>
765
+ </div>
766
+
767
+ </li>
768
+
769
+ <li>
770
+
771
+ <span class='name'>headers:</span>
772
+
773
+
774
+ <span class='type'>(<tt>Array[String]</tt>)</span>
775
+
776
+
777
+
778
+ &mdash;
779
+ <div class='inline'>
780
+ <p>is an array of Strings, ie.["authorization:Basic twwtws33vsfesfsd=="];</p>
781
+ </div>
782
+
783
+ </li>
784
+
785
+ </ul>
786
+
787
+
788
+ </div><table class="source_code">
789
+ <tr>
790
+ <td>
791
+ <pre class="lines">
792
+
793
+
794
+ 135
795
+ 136
796
+ 137
797
+ 138
798
+ 139
799
+ 140
800
+ 141
801
+ 142
802
+ 143
803
+ 144
804
+ 145
805
+ 146
806
+ 147
807
+ 148
808
+ 149
809
+ 150
810
+ 151
811
+ 152
812
+ 153
813
+ 154
814
+ 155
815
+ 156
816
+ 157
817
+ 158
818
+ 159
819
+ 160
820
+ 161
821
+ 162
822
+ 163
823
+ 164
824
+ 165
825
+ 166
826
+ 167
827
+ 168
828
+ 169
829
+ 170
830
+ 171
831
+ 172
832
+ 173
833
+ 174
834
+ 175
835
+ 176
836
+ 177
837
+ 178
838
+ 179
839
+ 180
840
+ 181
841
+ 182
842
+ 183
843
+ 184
844
+ 185
845
+ 186
846
+ 187
847
+ 188
848
+ 189
849
+ 190
850
+ 191
851
+ 192
852
+ 193
853
+ 194
854
+ 195
855
+ 196
856
+ 197
857
+ 198
858
+ 199
859
+ 200
860
+ 201
861
+ 202</pre>
862
+ </td>
863
+ <td>
864
+ <pre class="code"><span class="info file"># File 'lib/ez_http/core.rb', line 135</span>
865
+
866
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='const'>Upload</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='comma'>,</span> <span class='id identifier rubyid_files'>files</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_cert_path'>cert_path</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
867
+
868
+ <span class='kw'>begin</span>
869
+ <span class='comment'># Parse url
870
+ </span> <span class='id identifier rubyid_url'>url</span><span class='period'>.</span><span class='id identifier rubyid_strip!'>strip!</span>
871
+ <span class='id identifier rubyid_uri'>uri</span> <span class='op'>=</span> <span class='const'>URI</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='rparen'>)</span>
872
+ <span class='id identifier rubyid_http'>http</span> <span class='op'>=</span> <span class='const'>Net</span><span class='op'>::</span><span class='const'>HTTP</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_uri'>uri</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span><span class='comma'>,</span> <span class='id identifier rubyid_uri'>uri</span><span class='period'>.</span><span class='id identifier rubyid_port'>port</span><span class='rparen'>)</span>
873
+ <span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='period'>.</span><span class='id identifier rubyid_match'>match</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^https</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
874
+ <span class='id identifier rubyid_http'>http</span><span class='period'>.</span><span class='id identifier rubyid_use_ssl'>use_ssl</span> <span class='op'>=</span> <span class='kw'>true</span>
875
+ <span class='kw'>end</span>
876
+
877
+ <span class='comment'># Create request
878
+ </span> <span class='id identifier rubyid_request'>request</span> <span class='op'>=</span> <span class='const'>Net</span><span class='op'>::</span><span class='const'>HTTP</span><span class='op'>::</span><span class='const'>Post</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_uri'>uri</span><span class='period'>.</span><span class='id identifier rubyid_request_uri'>request_uri</span><span class='rparen'>)</span>
435
879
  <span class='kw'>rescue</span>
436
880
  <span class='id identifier rubyid_throw'>throw</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Error in creating request</span><span class='tstring_end'>&quot;</span></span>
437
881
  <span class='kw'>end</span>
438
882
 
883
+ <span class='comment'># Set headers
884
+ </span> <span class='kw'>begin</span>
885
+ <span class='kw'>unless</span> <span class='lparen'>(</span><span class='id identifier rubyid_headers'>headers</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span><span class='rparen'>)</span>
886
+ <span class='id identifier rubyid_headers'>headers</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_header'>header</span><span class='op'>|</span>
887
+ <span class='id identifier rubyid_key'>key</span> <span class='op'>=</span> <span class='id identifier rubyid_header'>header</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>:</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
888
+ <span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_header'>header</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>:</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span>
889
+ <span class='id identifier rubyid_request'>request</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span><span class='period'>.</span><span class='id identifier rubyid_downcase'>downcase</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span>
890
+ <span class='kw'>end</span>
891
+ <span class='kw'>end</span>
892
+ <span class='kw'>rescue</span>
893
+ <span class='id identifier rubyid_throw'>throw</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Error in parsing headers</span><span class='tstring_end'>&quot;</span></span>
894
+ <span class='kw'>end</span>
895
+
896
+ <span class='comment'># Create files
897
+ </span> <span class='id identifier rubyid_boundry'>boundry</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>--content--boundry--keybegin--AaB03sfwegSFSWxGBgSBsFDYcRcRMi--keyend--</span><span class='tstring_end'>&quot;</span></span>
898
+ <span class='id identifier rubyid_post_body'>post_body</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
899
+
900
+ <span class='kw'>if</span> <span class='lparen'>(</span><span class='op'>!</span><span class='id identifier rubyid_files'>files</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_files'>files</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>&gt;</span> <span class='int'>0</span><span class='rparen'>)</span>
901
+ <span class='id identifier rubyid_files'>files</span><span class='period'>.</span><span class='id identifier rubyid_each_with_index'>each_with_index</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_file'>file</span><span class='comma'>,</span> <span class='id identifier rubyid_i'>i</span><span class='op'>|</span>
902
+ <span class='id identifier rubyid_post_body'>post_body</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>--</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_boundry'>boundry</span><span class='rbrace'>}</span><span class='tstring_content'>\r\n</span><span class='tstring_end'>&quot;</span></span>
903
+ <span class='id identifier rubyid_post_body'>post_body</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>content-disposition: form-data; name=\&quot;upload[file</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_i'>i</span><span class='rbrace'>}</span><span class='tstring_content'>]\&quot;; filename=\&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_file'>file</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>name</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_content'>\&quot;\r\n</span><span class='tstring_end'>&quot;</span></span>
904
+ <span class='id identifier rubyid_post_body'>post_body</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>content-type: application/octet-stream\r\n</span><span class='tstring_end'>&quot;</span></span>
905
+ <span class='id identifier rubyid_post_body'>post_body</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\r\n</span><span class='tstring_end'>&quot;</span></span>
906
+ <span class='id identifier rubyid_post_body'>post_body</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_file'>file</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>content</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\r\n</span><span class='tstring_end'>&quot;</span></span>
907
+ <span class='kw'>end</span>
908
+ <span class='id identifier rubyid_post_body'>post_body</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>--</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_boundry'>boundry</span><span class='rbrace'>}</span><span class='tstring_content'>--\r\n</span><span class='tstring_end'>&quot;</span></span>
909
+
910
+ <span class='id identifier rubyid_request'>request</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span> <span class='op'>=</span> <span class='id identifier rubyid_post_body'>post_body</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span>
911
+ <span class='kw'>end</span>
912
+
913
+ <span class='comment'># Set content type
914
+ </span> <span class='id identifier rubyid_request'>request</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>content-type</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>multipart/form-data, boundary=</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_boundry'>boundry</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
439
915
 
440
916
  <span class='comment'># Add cert if any
441
917
  </span> <span class='kw'>begin</span>
@@ -452,10 +928,8 @@ response.status</p>
452
928
  <span class='id identifier rubyid_throw'>throw</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Error in creating certificate</span><span class='tstring_end'>&quot;</span></span>
453
929
  <span class='kw'>end</span>
454
930
 
455
-
456
931
  <span class='comment'># Send request and return response
457
932
  </span> <span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='id identifier rubyid_http'>http</span><span class='period'>.</span><span class='id identifier rubyid_request'>request</span><span class='lparen'>(</span><span class='id identifier rubyid_request'>request</span><span class='rparen'>)</span>
458
-
459
933
  <span class='kw'>end</span></pre>
460
934
  </td>
461
935
  </tr>
@@ -467,7 +941,7 @@ response.status</p>
467
941
  </div>
468
942
 
469
943
  <div id="footer">
470
- Generated on Wed Apr 11 00:18:56 2012 by
944
+ Generated on Mon Apr 16 02:15:47 2012 by
471
945
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
472
946
  0.7.5 (ruby-1.9.3).
473
947
  </div>