Sha256: f8f838fceb029b17d9c2171f8533be1f6222c2f70d755bc1de16c9fe4e4011c3

Contents?: true

Size: 807 Bytes

Versions: 9

Compression:

Stored size: 807 Bytes

Contents

module ForemanPuppet
  module Extensions
    module TemplateCombination
      extend ActiveSupport::Concern

      included do
        if ForemanPuppet.extracted_from_core?
          belongs_to :environment, class_name: 'ForemanPuppet::Environment'

          validates :environment_id, uniqueness: { scope: %i[hostgroup_id provisioning_template_id] }

          callback = __callbacks[:validate].detect do |v|
            v.filter.is_a?(ActiveRecord::Validations::UniquenessValidator) && v.filter.attributes.include?(:hostgroup_id)
          end
          callback.filter.options[:scope] << :environment_id
        else
          env_assoc = reflect_on_association(:environment)
          env_assoc&.instance_variable_set(:@class_name, 'ForemanPuppet::Environment')
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
foreman_puppet-1.0.5 app/models/concerns/foreman_puppet/extensions/template_combination.rb
foreman_puppet-1.0.4 app/models/concerns/foreman_puppet/extensions/template_combination.rb
foreman_puppet-1.0.3 app/models/concerns/foreman_puppet/extensions/template_combination.rb
foreman_puppet-1.0.2 app/models/concerns/foreman_puppet/extensions/template_combination.rb
foreman_puppet-1.0.1 app/models/concerns/foreman_puppet/extensions/template_combination.rb
foreman_puppet-1.0.0 app/models/concerns/foreman_puppet/extensions/template_combination.rb
foreman_puppet-1.0.0.rc.2 app/models/concerns/foreman_puppet/extensions/template_combination.rb
foreman_puppet-1.0.0.rc.1 app/models/concerns/foreman_puppet/extensions/template_combination.rb
foreman_puppet-0.1.0 app/models/concerns/foreman_puppet/extensions/template_combination.rb