grid_rest 0.0.2 → 0.0.3
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/CHANGELOG.rdoc +3 -0
- data/VERSION +1 -1
- data/grid_rest.gemspec +2 -2
- data/lib/grid_rest.rb +19 -14
- metadata +3 -3
data/CHANGELOG.rdoc
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.3
|
data/grid_rest.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{grid_rest}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Benjamin ter Kuile"]
|
12
|
-
s.date = %q{2011-06-
|
12
|
+
s.date = %q{2011-06-15}
|
13
13
|
s.description = %q{grid_rest is a gem that makes your rails application interact with other backends through a REST interface. It is build in a situation where one rails application was talking to 2 java backends.
|
14
14
|
The main development focus is JSON communication, but XML should be just as easy}
|
15
15
|
s.email = %q{bterkuile@gmail.com}
|
data/lib/grid_rest.rb
CHANGED
@@ -2,6 +2,7 @@ require 'rest_client'
|
|
2
2
|
require 'active_support/all'
|
3
3
|
require 'grid_rest/engine'
|
4
4
|
module GridRest
|
5
|
+
RESERVED_REQUEST_PARAMETERS = %w[accept content_type headers method url payload timeout open_timeout raw_response verify_ssl ssl_client_cert ssl_client_key ssl_ca_file cookie cookies accept_encoding]
|
5
6
|
mattr_accessor :grid_config, :log_file, :additional_parameters
|
6
7
|
self.additional_parameters = { :default => {:global => {}, :get => {}, :post => {}, :put => {}, :delete => {}} }
|
7
8
|
class GridConfig < HashWithIndifferentAccess
|
@@ -23,6 +24,10 @@ module GridRest
|
|
23
24
|
end
|
24
25
|
end
|
25
26
|
|
27
|
+
def self.default_parameters(params, type = :global, namespace = :default)
|
28
|
+
additional_parameters[namespace][type].update(params)
|
29
|
+
end
|
30
|
+
|
26
31
|
def self.extend_class(klass)
|
27
32
|
klass.send(:extend, GridRestExtensions)
|
28
33
|
self.grid_config.namespaces.keys.each do |k|
|
@@ -200,20 +205,10 @@ module GridRest
|
|
200
205
|
RestClient.put rest_url, rparams.update(additional_put_parameters)
|
201
206
|
end
|
202
207
|
when :delete then
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
rparams[:xml_data] = rparams[:xml_data].merge(additional_delete_parameters).to_xml if rparams[:xml_data].is_a?(Hash)
|
208
|
-
RestClient.delete rest_url, rparams[:xml_data], :content_type => :xml, :accept => :xml
|
209
|
-
elsif rparams[:binary]
|
210
|
-
RestClient.delete rest_url, rparams[:binary], :content_type => 'binary/octet-stream'
|
211
|
-
else
|
212
|
-
rparams[:headers] ||= {}
|
213
|
-
rparams[:headers][:accept] = accept
|
214
|
-
rparams[:multipart] = true
|
215
|
-
RestClient.delete rest_url, rparams.update(additional_delete_parameters)
|
216
|
-
end
|
208
|
+
rparams[:headers] ||= {}
|
209
|
+
rparams[:headers][:accept] = accept
|
210
|
+
new_uri = add_parameters_to_uri(rest_url, rparams.update(additional_delete_parameters))
|
211
|
+
RestClient.delete(new_uri, rparams)
|
217
212
|
else
|
218
213
|
raise "No proper method (#{method}) for a grid_rest_request call"
|
219
214
|
end
|
@@ -224,6 +219,7 @@ module GridRest
|
|
224
219
|
r = benchmark("decoding response JSON", :level => :debug ){ JSON.parse(r.body) rescue r }
|
225
220
|
end
|
226
221
|
# Singleton class extensions
|
222
|
+
r = "" if r == false # RestClient problem giving false on empty 204
|
227
223
|
def r.valid?
|
228
224
|
true
|
229
225
|
end
|
@@ -240,6 +236,15 @@ module GridRest
|
|
240
236
|
r
|
241
237
|
end
|
242
238
|
|
239
|
+
def add_parameters_to_uri(uri, params)
|
240
|
+
uri << '?' unless uri.include?('?')
|
241
|
+
uri << '&' unless ['?', '&'].include?(uri.last)
|
242
|
+
uri_params = params.reject{|k, v| RESERVED_REQUEST_PARAMETERS.include?(k.to_s)}
|
243
|
+
uri << uri_params.map{|k, v| URI.encode("#{k}=#{v}")}.join('&')
|
244
|
+
uri_params.each{|k, v| params.delete(k)} # Remove added get parameters from the header params
|
245
|
+
uri
|
246
|
+
end
|
247
|
+
|
243
248
|
def generate_url(url, rparams = {})
|
244
249
|
host = GridRest.grid_config.namespaces[rparams[:grid_rest_namespace]].try('[]', 'host') || GridRest.grid_config['host']
|
245
250
|
port = GridRest.grid_config.namespaces[rparams[:grid_rest_namespace]].try('[]', 'port') || GridRest.grid_config['port'] || 80
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 3
|
9
|
+
version: 0.0.3
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Benjamin ter Kuile
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-06-
|
17
|
+
date: 2011-06-15 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|