Module: Puppet::Util::CacheAccumulator::ClassMethods

Defined in:
lib/vendor/puppet/util/rails/cache_accumulator.rb

Instance Method Summary collapse

Instance Method Details

#accumulates(*attributes) ⇒ Object



48
49
50
# File 'lib/vendor/puppet/util/rails/cache_accumulator.rb', line 48

def accumulates(*attributes)
  attributes.each {|attrib| install_accumulator(attrib)}
end

#accumulatorsObject



52
53
54
# File 'lib/vendor/puppet/util/rails/cache_accumulator.rb', line 52

def accumulators
  @accumulators ||= {}
end

#install_accumulator(attribute) ⇒ Object



56
57
58
59
60
61
62
63
# File 'lib/vendor/puppet/util/rails/cache_accumulator.rb', line 56

def install_accumulator(attribute)
  self.accumulators[attribute] = Base.new(self, attribute)
  module_eval %{
    def self.accumulate_by_#{attribute.to_s}(*keys)
      accumulators[:#{attribute.to_s}].find(*keys)
    end
  }
end