lib/puppet/resource_api/glue.rb in puppet-resource_api-0.2.2 vs lib/puppet/resource_api/glue.rb in puppet-resource_api-0.3.0

- old
+ new

@@ -1,34 +1,36 @@ module Puppet::ResourceApi # A trivial class to provide the functionality required to push data through the existing type/provider parts of puppet class TypeShim - attr_reader :values + attr_reader :values, :typename - def initialize(title, resource_hash) + def initialize(title, resource_hash, typename) # internalize and protect - needs to go deeper @values = resource_hash.dup # "name" is a privileged key @values[:name] = title + @typename = typename @values.freeze end def to_resource - ResourceShim.new(@values) + ResourceShim.new(@values, @typename) end def name values[:name] end end # A trivial class to provide the functionality required to push data through the existing type/provider parts of puppet class ResourceShim - attr_reader :values + attr_reader :values, :typename - def initialize(resource_hash) + def initialize(resource_hash, typename) @values = resource_hash.dup.freeze # whatevs + @typename = typename end def title values[:name] end @@ -37,10 +39,14 @@ # puts "not pruning #{args.inspect}" if args.length > 0 self end def to_manifest - # TODO: get the correct typename here - (["SOMETYPE { #{values[:name].inspect}: "] + values.keys.reject { |k| k == :name }.map { |k| " #{k} => #{values[k].inspect}," } + ['}']).join("\n") + (["#{@typename} { #{values[:name].inspect}: "] + values.keys.reject { |k| k == :name }.map { |k| " #{k} => #{values[k].inspect}," } + ['}']).join("\n") + end + + # Convert our resource to yaml for Hiera purposes. + def to_hierayaml + ([" #{values[:name]}: "] + values.keys.reject { |k| k == :name }.map { |k| " #{k}: #{Puppet::Parameter.format_value_for_display(values[k])}" }).join("\n") + "\n" end end end