Sha256: cacb64404ce922e16e779c86724a00b3fb92e2de4de7656743c780a7a83bed7f

Contents?: true

Size: 1.98 KB

Versions: 38

Compression:

Stored size: 1.98 KB

Contents

module Terraspace::Compiler
  class Select
    include Terraspace::App::CallableOption::Concern
    include Terraspace::Util::Logging

    def initialize(stack_name)
      @stack_name = stack_name
    end

    def selected?
      ignore_stacks_deprecation_warning
      if include_stacks.nil? && exclude_stacks.nil?
        true
      elsif include_stacks.nil?
        !exclude_stacks.include?(@stack_name)
      elsif exclude_stacks.nil?
        include_stacks.include?(@stack_name)
      else
        stacks = include_stacks - exclude_stacks
        stacks.include?(@stack_name)
      end
    end

    def include_stacks
      if config.all.include_stacks
        config_name = "config.all.include_stacks"
        config_value = config.dig(:all, :include_stacks)
      elsif config.all.consider_allow_deny_stacks
        config_name = "config.allow.stacks"
        config_value = config.dig(:allow, :stacks)
      else
        return
      end
      callable_option(
        config_name: config_name,
        config_value: config_value,
        passed_args: [@stack_name],
      )
    end

    def exclude_stacks
      if config.all.exclude_stacks
        config_name = "config.all.exclude_stacks"
        config_value = config.dig(:all, :exclude_stacks)
      elsif config.all.consider_allow_deny_stacks
        config_name = "config.deny.stacks"
        config_value = config.dig(:deny, :stacks)
      else
        return
      end
      callable_option(
        config_name: config_name,
        config_value: config_value,
        passed_args: [@stack_name],
      )
    end

  private
    def config
      Terraspace.config
    end

    @@ignore_stacks_deprecation_warning = nil
    def ignore_stacks_deprecation_warning
      return unless config.all.ignore_stacks
      return if @@ignore_stacks_deprecation_warning
      puts <<~EOL.color(:yellow)
        DEPRECATED:  config.all.ignore_stacks
        Instead use: config.all.exclude_stacks
      EOL
      @@ignore_stacks_deprecation_warning = true
    end
  end
end

Version data entries

38 entries across 38 versions & 1 rubygems

Version Path
terraspace-2.2.17 lib/terraspace/compiler/select.rb
terraspace-2.2.16 lib/terraspace/compiler/select.rb
terraspace-2.2.15 lib/terraspace/compiler/select.rb
terraspace-2.2.14 lib/terraspace/compiler/select.rb
terraspace-2.2.13 lib/terraspace/compiler/select.rb
terraspace-2.2.12 lib/terraspace/compiler/select.rb
terraspace-2.2.11 lib/terraspace/compiler/select.rb
terraspace-2.2.10 lib/terraspace/compiler/select.rb
terraspace-2.2.9 lib/terraspace/compiler/select.rb
terraspace-2.2.8 lib/terraspace/compiler/select.rb
terraspace-2.2.7 lib/terraspace/compiler/select.rb
terraspace-2.2.6 lib/terraspace/compiler/select.rb
terraspace-2.2.5 lib/terraspace/compiler/select.rb
terraspace-2.2.4 lib/terraspace/compiler/select.rb
terraspace-2.2.3 lib/terraspace/compiler/select.rb
terraspace-2.2.2 lib/terraspace/compiler/select.rb
terraspace-2.2.1 lib/terraspace/compiler/select.rb
terraspace-2.2.0 lib/terraspace/compiler/select.rb
terraspace-2.1.7 lib/terraspace/compiler/select.rb
terraspace-2.1.6 lib/terraspace/compiler/select.rb