From 768315bd6e8ecd064ab473187c10b4633f09523c Mon Sep 17 00:00:00 2001 From: Luke Kanies Date: Tue, 8 Apr 2008 11:39:29 -0500 Subject: Adding the ability for indirection requests to be created with instances instead of just keys. --- lib/puppet/indirector/request.rb | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'lib/puppet/indirector/request.rb') diff --git a/lib/puppet/indirector/request.rb b/lib/puppet/indirector/request.rb index a5495641d..708862b28 100644 --- a/lib/puppet/indirector/request.rb +++ b/lib/puppet/indirector/request.rb @@ -3,10 +3,17 @@ require 'puppet/indirector' # Provide any attributes or functionality needed for indirected # instances. class Puppet::Indirector::Request - attr_accessor :indirection_name, :key, :method, :options + attr_accessor :indirection_name, :key, :method, :options, :instance def initialize(indirection_name, key, method, options = {}) - @indirection_name, @key, @method, @options = indirection_name, key, method, (options || {}) + @indirection_name, @method, @options = indirection_name, method, (options || {}) + + if key.is_a?(String) or key.is_a?(Symbol) + @key = key + else + @instance = key + @key = @instance.name + end raise ArgumentError, "Request options must be a hash, not %s" % @options.class unless @options.is_a?(Hash) end -- cgit