http-requestor 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. data/README.rdoc +20 -6
  2. data/lib/http-requestor.rb +27 -1
  3. metadata +2 -2
data/README.rdoc CHANGED
@@ -1,15 +1,29 @@
1
1
  = http-requestor
2
2
 
3
- A Wrapper around Net/HTTP which allows you to perform HTTP Requests.
3
+ A Wrapper around Net/HTTP which allows you to perform HTTP Requests in a simple way.
4
4
 
5
5
  = Usage
6
6
 
7
- http = HttpRequestor.new("http://www.mydomain.com")
7
+ http = HttpRequestor.new("http://www.mydomain.com") # This will initialize the HttpRequestor class
8
8
 
9
- response = http.get("/get_path")
9
+ [Sending Calls to the initialized domain] response = http.get("/get_path")
10
10
 
11
- response = http.post("/post_path")
11
+ response = http.post("/post_path")
12
12
 
13
- response = http.put("/put_path")
13
+ response = http.put("/put_path")
14
14
 
15
- response = http.delete("/delete_path")
15
+ response = http.delete("/delete_path")
16
+
17
+ The above methods also accept optional parameters, for
18
+
19
+ * Parameters to be sent to the request
20
+ * Headers to be sent to the request
21
+
22
+ [Alternatively you can also use the method] HttpRequestor.request
23
+
24
+ which takes the paramters in order
25
+ * domain #=> for example: "http://www.some_domain.com"
26
+ * request_type #=> GET|POST|PUT|DELETE
27
+ * path #=> for example: "/some_path"
28
+ * parameters #=> this is an optional parameter, if you want to send some parameters alongwith the request, you can pass a hash with
29
+ * headers #=> this is also an optional parameter, you can pass a hash with stringified keys
@@ -52,7 +52,7 @@ class HttpRequestor
52
52
  end
53
53
 
54
54
  def self.request(domain, request_type, request_path, data={}, headers={})
55
- data = data.to_query if data.is_a?(Hash)
55
+ data = data.to_query
56
56
  request = HttpRequestor.new(domain)
57
57
  if request_type == "GET"
58
58
  return request.get(request_path, data, headers)
@@ -64,4 +64,30 @@ class HttpRequestor
64
64
  return request.delete(request_path, data, headers)
65
65
  end
66
66
  end
67
+ end
68
+
69
+ class Hash
70
+ def to_query(namespace = nil)
71
+ collect do |key, value|
72
+ value.to_query(namespace ? "#{namespace}[#{key}]" : key)
73
+ end.sort * '&'
74
+ end
75
+ end
76
+
77
+ class Array
78
+ def to_query(key)
79
+ prefix = "#{key}[]"
80
+ collect { |value| value.to_query(prefix) }.join '&'
81
+ end
82
+ end
83
+
84
+ class String
85
+ def to_query(key)
86
+ require 'cgi' unless defined?(CGI) && defined?(CGI::escape)
87
+ "#{CGI.escape(key.to_param)}=#{CGI.escape(to_param.to_s)}"
88
+ end
89
+
90
+ def to_param
91
+ to_s
92
+ end
67
93
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: http-requestor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-03 00:00:00.000000000Z
12
+ date: 2012-09-12 00:00:00.000000000Z
13
13
  dependencies: []
14
14
  description: A Wrapper around Net/HTTP which allows you to perform HTTP Requests.
15
15
  email: rohit0981989@gmail.com