181: def to_resource
182: result = Puppet::Resource.new(type, title)
183:
184: to_hash.each do |p, v|
185: if v.is_a?(Puppet::Resource)
186: v = Puppet::Resource.new(v.type, v.title)
187: elsif v.is_a?(Array)
188:
189: v = v.flatten if v.flatten.find { |av| av.is_a?(Puppet::Resource) }
190: v = v.collect do |av|
191: av = Puppet::Resource.new(av.type, av.title) if av.is_a?(Puppet::Resource)
192: av
193: end
194: end
195:
196:
197:
198:
199:
200: result[p] = if v.is_a?(Array) and v.length == 1
201: v[0]
202: else
203: v
204: end
205: end
206:
207: result.file = self.file
208: result.line = self.line
209: result.exported = self.exported
210: result.virtual = self.virtual
211: result.tag(*self.tags)
212:
213: result
214: end