Sha256: 154538adc23f67b1c1affcc1fb4546c4228f80ba939bbabe7ec4194809054368

Contents?: true

Size: 875 Bytes

Versions: 71

Compression:

Stored size: 875 Bytes

Contents

class Terraspace::Terraform::Api
  class Vars
    extend Memoist
    include Http::Concern

    # workspace: details from the api response
    def initialize(mod, workspace)
      @mod, @workspace = mod, workspace
    end

    def run
      return unless exist?

      vars = vars_class.new(@mod, vars_path).vars
      vars.each do |attrs|
        Var.new(@workspace, attrs).sync
      end
    end

    # Return value examples:
    #
    #     Terraspace::Terraform::Api::Vars::Json
    #     Terraspace::Terraform::Api::Vars::Rb
    #
    def vars_class
      ext = File.extname(vars_path).sub('.','')
      "Terraspace::Terraform::Api::Vars::#{ext.camelize}".constantize
    end

    def exist?
      !!vars_path
    end

    def vars_path
      # .rb takes higher precedence
      Dir.glob("#{Terraspace.root}/config/terraform/tfc/vars.{rb,json}").first
    end
  end
end

Version data entries

71 entries across 71 versions & 1 rubygems

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