plain_http 0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/plain_http.rb +41 -0
  2. metadata +66 -0
data/lib/plain_http.rb ADDED
@@ -0,0 +1,41 @@
1
+ require 'net/http'
2
+
3
+ class PlainHTTP
4
+
5
+ def self.head(url, headers = {})
6
+ request('HEAD', url, headers, nil)
7
+ end
8
+
9
+ def self.get(url, headers = {})
10
+ request('GET', url, headers, nil)
11
+ end
12
+
13
+ def self.post(url, headers = {}, data = nil)
14
+ request('POST', url, headers, data)
15
+ end
16
+
17
+ def self.put(url, headers = {}, data = nil)
18
+ request('PUT', url, headers, data)
19
+ end
20
+
21
+ def self.delete(url, headers = {})
22
+ request('DELETE', url, headers, nil)
23
+ end
24
+
25
+ def self.request(method, url, headers, data)
26
+ method_class_name = method.to_s.downcase.sub(/^[a-z]/i) {|m| m.upcase}
27
+ req_class = Net::HTTP.const_get(method_class_name)
28
+ uri = URI.parse(url)
29
+ path = uri.path == '' ? '/' : uri.path
30
+ req = req_class.new(path, headers)
31
+ if data.respond_to?(:to_hash)
32
+ req.set_form_data(data.to_hash)
33
+ elsif data.to_s != ''
34
+ req.body = data
35
+ end
36
+ res = Net::HTTP.start(uri.host, uri.port) {|http|
37
+ http.request(req)
38
+ }
39
+ res
40
+ end
41
+ end
metadata ADDED
@@ -0,0 +1,66 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: plain_http
3
+ version: !ruby/object:Gem::Version
4
+ hash: 9
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 1
9
+ version: "0.1"
10
+ platform: ruby
11
+ authors:
12
+ - Chris Cherry
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2011-03-27 00:00:00 -07:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description: An easy to remember interface to Net::HTTP
22
+ email: ctcherry@gmail.com
23
+ executables: []
24
+
25
+ extensions: []
26
+
27
+ extra_rdoc_files: []
28
+
29
+ files:
30
+ - lib/plain_http.rb
31
+ has_rdoc: true
32
+ homepage: https://github.com/ctcherry/plain_http
33
+ licenses: []
34
+
35
+ post_install_message:
36
+ rdoc_options: []
37
+
38
+ require_paths:
39
+ - lib
40
+ required_ruby_version: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 3
46
+ segments:
47
+ - 0
48
+ version: "0"
49
+ required_rubygems_version: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ hash: 3
55
+ segments:
56
+ - 0
57
+ version: "0"
58
+ requirements: []
59
+
60
+ rubyforge_project:
61
+ rubygems_version: 1.6.1
62
+ signing_key:
63
+ specification_version: 3
64
+ summary: An easy to remember interface to Net::HTTP
65
+ test_files: []
66
+