Please review pull request #451: (#12399) DRY up rest.rb opened by (jeffweiss)
Description:
Move the calls to request.do_request(...) to a method to encapsulate
the params
- Opened: Fri Feb 03 00:56:41 UTC 2012
- Based on: puppetlabs:master (ca50b7cd625d654265138ca07106317180ec4c04)
- Requested merge: jeffweiss:ticket/master/12399_dry_up_rest.rb (0c486fd4ab065c1476f1f1c3f225a0e46ae718dc)
Diff follows:
diff --git a/lib/puppet/indirector/rest.rb b/lib/puppet/indirector/rest.rb
index b21d039..b9b68b0 100644
--- a/lib/puppet/indirector/rest.rb
+++ b/lib/puppet/indirector/rest.rb
@@ -120,7 +120,7 @@ def find(request)
uri, body = request_to_uri_and_body(request)
uri_with_query_string = "#{uri}?#{body}"
- response = request.do_request(self.class.srv_service, self.class.server, self.class.port) do |request|
+ response = do_request(request) do |request|
# WEBrick in Ruby 1.9.1 only supports up to 1024 character lines in an HTTP request
# http://redmine.ruby-lang.org/issues/show/3991
if "GET #{uri_with_query_string} HTTP/1.1\r\n".length > 1024
@@ -138,7 +138,7 @@ def find(request)
end
def head(request)
- response = request.do_request(self.class.srv_service, self.class.server, self.class.port) do |request|
+ response = do_request(request) do |request|
http_head(request, indirection2uri(request), headers)
end
@@ -154,7 +154,7 @@ def head(request)
end
def search(request)
- result = request.do_request(self.class.srv_service, self.class.server, self.class.port) do |request|
+ result = do_request(request) do |request|
deserialize(http_get(request, indirection2uri(request), headers), true)
end
@@ -165,7 +165,7 @@ def search(request)
def destroy(request)
raise ArgumentError, "DELETE does not accept options" unless request.options.empty?
- request.do_request(self.class.srv_service, self.class.server, self.class.port) do |request|
+ do_request(request) do |request|
return deserialize(http_delete(request, indirection2uri(request), headers))
end
end
@@ -173,11 +173,21 @@ def destroy(request)
def save(request)
raise ArgumentError, "PUT does not accept options" unless request.options.empty?
- request.do_request(self.class.srv_service, self.class.server, self.class.port) do |request|
+ do_request(request) do |request|
deserialize http_put(request, indirection2uri(request), request.instance.render, headers.merge({ "Content-Type" => request.instance.mime }))
end
end
+ # Encapsulate call to request.do_request with the arguments from this class
+ # Then yield to the code block that was called in
+ # We certainly could have retained the full request.do_request(...) { |r| ... }
+ # but this makes the code much cleaner and we only then actually make the call
+ # to request.do_request from here, thus if we change what we pass or how we
+ # get it, we only need to change it here.
+ def do_request(request)
+ request.do_request(self.class.srv_service, self.class.server, self.class.port) { |request| yield(request) }
+ end
+
private
def environment
-- You received this message because you are subscribed to the Google Groups "Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected].
For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en.
