summaryrefslogtreecommitdiffstats
path: root/lib/puppet/rails/param_name.rb
blob: 91cf45628823c48e8c8dca166cb1fe46926ed4c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
require 'puppet/util/rails/collection_merger'
require 'puppet/rails/param_value'
require 'puppet/util/rails/cache_accumulator'

class Puppet::Rails::ParamName < ActiveRecord::Base
  include Puppet::Util::CollectionMerger
  has_many :param_values, :dependent => :destroy

  include Puppet::Util::CacheAccumulator
  accumulates :name

  def to_resourceparam(resource, source)
    hash = {}
    hash[:name] = self.name.to_sym
    hash[:source] = source
    hash[:value] = resource.param_values.find(:all, :conditions => [ "param_name_id = ?", self.id]).collect { |v| v.value }
    if hash[:value].length == 1
      hash[:value] = hash[:value].shift
    elsif hash[:value].empty?
      hash[:value] = nil
    end
    Puppet::Parser::Resource::Param.new hash
  end
end