Sha256: 0b06e28eedbe0271d203adab4df5e6559db66d8f2b031f08c81d81a3843ae95e

Contents?: true

Size: 877 Bytes

Versions: 25

Compression:

Stored size: 877 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/cloud/vars.{rb,json}").first
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
terraspace-0.5.12 lib/terraspace/terraform/api/vars.rb
terraspace-0.5.11 lib/terraspace/terraform/api/vars.rb
terraspace-0.5.10 lib/terraspace/terraform/api/vars.rb
terraspace-0.5.9 lib/terraspace/terraform/api/vars.rb
terraspace-0.5.8 lib/terraspace/terraform/api/vars.rb
terraspace-0.5.7 lib/terraspace/terraform/api/vars.rb
terraspace-0.5.6 lib/terraspace/terraform/api/vars.rb
terraspace-0.5.5 lib/terraspace/terraform/api/vars.rb
terraspace-0.5.4 lib/terraspace/terraform/api/vars.rb
terraspace-0.5.3 lib/terraspace/terraform/api/vars.rb
terraspace-0.5.2 lib/terraspace/terraform/api/vars.rb
terraspace-0.5.1 lib/terraspace/terraform/api/vars.rb
terraspace-0.5.0 lib/terraspace/terraform/api/vars.rb
terraspace-0.4.4 lib/terraspace/terraform/api/vars.rb
terraspace-0.4.3 lib/terraspace/terraform/api/vars.rb
terraspace-0.4.2 lib/terraspace/terraform/api/vars.rb
terraspace-0.4.1 lib/terraspace/terraform/api/vars.rb
terraspace-0.4.0 lib/terraspace/terraform/api/vars.rb
terraspace-0.3.6 lib/terraspace/terraform/api/vars.rb
terraspace-0.3.5 lib/terraspace/terraform/api/vars.rb