Sha256: 6e03b443a72d48a854f67d787af6864b56e6f3190146cf13ba7e10eeeb273500

Contents?: true

Size: 1.06 KB

Versions: 5

Compression:

Stored size: 1.06 KB

Contents

module Puppet::Util::Variables
    def inithooks
        @instance_init_hooks.dup
    end

    def initvars
        return unless defined? @class_init_hooks
        self.inithooks.each do |var, value|
            if value.is_a?(Class)
                instance_variable_set("@" + var.to_s, value.new)
            else
                instance_variable_set("@" + var.to_s, value)
            end
        end
    end

    def instancevar(hash)
        @instance_init_hooks ||= {}

        unless method_defined?(:initvars)
            define_method(:initvars) do
                self.class.inithooks.each do |var, value|
                    if value.is_a?(Class)
                        instance_variable_set("@" + var.to_s, value.new)
                    else
                        instance_variable_set("@" + var.to_s, value)
                    end
                end
            end
        end
        hash.each do |var, value|
            raise("Already initializing %s" % var) if @instance_init_hooks[var]

            @instance_init_hooks[var] = value
        end
    end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
puppet-0.24.0 lib/puppet/util/variables.rb
puppet-0.24.1 lib/puppet/util/variables.rb
puppet-0.24.3 lib/puppet/util/variables.rb
puppet-0.24.2 lib/puppet/util/variables.rb
puppet-0.24.4 lib/puppet/util/variables.rb