Sha256: 50dd441997aefaa7d4df04f19ff584510d464db62e1fa406ee7440814a026516

Contents?: true

Size: 1013 Bytes

Versions: 2

Compression:

Stored size: 1013 Bytes

Contents

require 'r10k/errors'
require 'r10k/settings/collection'

module R10K
  module Settings
    module Helpers
      def self.included(klass)
        klass.send(:include, InstanceMethods)
        klass.send(:extend, ClassMethods)
      end

      module InstanceMethods
        # Assign a parent collection to this setting. Parent may only be
        # assigned once.
        #
        # @param new_parent [R10K::Settings::Collection] Parent collection
        def parent=(new_parent)
          unless @parent.nil?
            raise R10K::Error.new("#{self.class} instances cannot be reassigned to a new parent.")
          end

          unless new_parent.is_a?(R10K::Settings::Collection) || new_parent.is_a?(R10K::Settings::List)
            raise R10K::Error.new("#{self.class} instances may only belong to a settings collection or list.")
          end

          @parent = new_parent
        end

        def parent
          @parent
        end
      end

      module ClassMethods
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
r10k-2.3.1 lib/r10k/settings/helpers.rb
r10k-2.3.0 lib/r10k/settings/helpers.rb