diff --git a/lib/puppet/rails/param_name.rb b/lib/puppet/rails/param_name.rb index 818a90e35..b4eb1df05 100644 --- a/lib/puppet/rails/param_name.rb +++ b/lib/puppet/rails/param_name.rb @@ -1,31 +1,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 - def self.accumulate_by_name(name) - @name_cache ||= {} - if instance = @name_cache[name] - return instance - end - instance = find_or_create_by_name(name) - @name_cache[name] = instance - instance - end + 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 diff --git a/lib/puppet/rails/puppet_tag.rb b/lib/puppet/rails/puppet_tag.rb index 53c39c5fd..2cc2c135f 100644 --- a/lib/puppet/rails/puppet_tag.rb +++ b/lib/puppet/rails/puppet_tag.rb @@ -1,15 +1,10 @@ require 'puppet/rails/resource_tag' +require 'puppet/util/rails/cache_accumulator' + class Puppet::Rails::PuppetTag < ActiveRecord::Base has_many :resource_tags, :dependent => :destroy has_many :resources, :through => :resource_tags - def self.accumulate_by_name(name) - @name_cache ||= {} - if instance = @name_cache[name] - return instance - end - instance = find_or_create_by_name(name) - @name_cache[name] = instance - instance - end + include Puppet::Util::CacheAccumulator + accumulates :name end