summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
authorLuke Kanies <luke@madstop.com>2009-02-25 17:36:03 -0800
committerJames Turnbull <james@lovedthanlost.net>2009-03-20 18:27:07 +1100
commita064ed1a6035c44f123e092b2429895fb45bdbd2 (patch)
tree0e1a6ce96ef73de7579ff1754c2ffccb9561bb2d /lib/puppet
parentff9c3ca4059a63523b07d89f1b967f6bf1c4bba4 (diff)
downloadpuppet-a064ed1a6035c44f123e092b2429895fb45bdbd2.tar.gz
puppet-a064ed1a6035c44f123e092b2429895fb45bdbd2.tar.xz
puppet-a064ed1a6035c44f123e092b2429895fb45bdbd2.zip
Moving the query_string method to Request
It required a request instance and didn't use the REST class it was in, so it makes more sense in the Request class. Signed-off-by: Luke Kanies <luke@madstop.com>
Diffstat (limited to 'lib/puppet')
-rw-r--r--lib/puppet/indirector/request.rb19
-rw-r--r--lib/puppet/indirector/rest.rb25
2 files changed, 22 insertions, 22 deletions
diff --git a/lib/puppet/indirector/request.rb b/lib/puppet/indirector/request.rb
index 539cd0e62..7fe029597 100644
--- a/lib/puppet/indirector/request.rb
+++ b/lib/puppet/indirector/request.rb
@@ -83,6 +83,25 @@ class Puppet::Indirector::Request
method == :search
end
+ # Create the query string, if options are present.
+ def query_string
+ return "" unless options and ! options.empty?
+ "?" + options.collect do |key, value|
+ case value
+ when nil; next
+ when true, false; value = value.to_s
+ when Fixnum, Bignum, Float; value = value # nothing
+ when String; value = URI.escape(value)
+ when Symbol; value = URI.escape(value.to_s)
+ when Array; value = URI.escape(YAML.dump(value))
+ else
+ raise ArgumentError, "HTTP REST queries cannot handle values of type '%s'" % value.class
+ end
+
+ "%s=%s" % [key, value]
+ end.join("&")
+ end
+
def to_s
return uri if uri
return "/%s/%s" % [indirection_name, key]
diff --git a/lib/puppet/indirector/rest.rb b/lib/puppet/indirector/rest.rb
index 23ed56dee..e5efb3aa3 100644
--- a/lib/puppet/indirector/rest.rb
+++ b/lib/puppet/indirector/rest.rb
@@ -62,14 +62,14 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
end
def find(request)
- deserialize network(request).get("/#{indirection.name}/#{request.escaped_key}#{query_string(request)}", headers)
+ deserialize network(request).get("/#{indirection.name}/#{request.escaped_key}#{request.query_string}", headers)
end
def search(request)
if request.key
- path = "/#{indirection.name}s/#{request.escaped_key}#{query_string(request)}"
+ path = "/#{indirection.name}s/#{request.escaped_key}#{request.query_string}"
else
- path = "/#{indirection.name}s#{query_string(request)}"
+ path = "/#{indirection.name}s#{request.query_string}"
end
unless result = deserialize(network(request).get(path, headers), true)
return []
@@ -86,23 +86,4 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
raise ArgumentError, "PUT does not accept options" unless request.options.empty?
deserialize network(request).put("/#{indirection.name}/", request.instance.render, headers)
end
-
- # Create the query string, if options are present.
- def query_string(request)
- return "" unless request.options and ! request.options.empty?
- "?" + request.options.collect do |key, value|
- case value
- when nil; next
- when true, false; value = value.to_s
- when Fixnum, Bignum, Float; value = value # nothing
- when String; value = URI.escape(value)
- when Symbol; value = URI.escape(value.to_s)
- when Array; value = URI.escape(YAML.dump(value))
- else
- raise ArgumentError, "HTTP REST queries cannot handle values of type '%s'" % value.class
- end
-
- "%s=%s" % [key, value]
- end.join("&")
- end
end