ez_http 1.0.3 → 1.0.4

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/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>