Sha256: 0d89cceed301746c564eda7e1351592ac6ffbfe2ac1b17d379fbbe1b5f8beec7

Contents?: true

Size: 1013 Bytes

Versions: 26

Compression:

Stored size: 1013 Bytes

Contents

class Terraspace::Cloud::Api
  module Concern
    extend Memoist
    include Errors
    include Validate

    def api
      validate("stack", cloud_stack_name)
      @options = @options.merge(
        app: Terraspace.app,
        role: Terraspace.role,
        env: Terraspace.env,
        extra: Terraspace.extra,
        region: region,
        name: cloud_stack_name,
      )
      @options.reject! { |k,v| v.nil? }
      Terraspace::Cloud::Api.new(@options) # @options are CLI options
    end

    def cloud_stack_name
      pattern = Terraspace.config.cloud.stack
      expanded = expander.expansion(pattern) # pattern is a String that contains placeholders for substitutions
      expanded.gsub(%r{-+},'-') # remove double dashes are more. IE: -- -> -
              .sub(/^-+/,'').sub(/-+$/,'') # remove leading and trailing -
    end

    def region
      expander.expansion(":REGION")
    end

    def expander
      Terraspace::Compiler::Expander.autodetect(@mod)
    end
    memoize :expander
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

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