Class: TerraformDevKit::Environment

Inherits:
Object
  • Object
show all
Defined in:
lib/TerraformDevKit/environment.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Environment

Returns a new instance of Environment.



7
8
9
10
# File 'lib/TerraformDevKit/environment.rb', line 7

def initialize(name)
  /^[0-9a-zA-Z]+$/ =~ name || (raise "Invalid environment name: #{name}")
  @name = name.downcase
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



5
6
7
# File 'lib/TerraformDevKit/environment.rb', line 5

def name
  @name
end

Class Method Details

.running_on_jenkins?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/TerraformDevKit/environment.rb', line 44

def self.running_on_jenkins?
  ENV.key?('JENKINS_URL') && ENV.key?('BUILD_ID')
end

.temp_nameObject



37
38
39
40
41
42
# File 'lib/TerraformDevKit/environment.rb', line 37

def self.temp_name
  hostname = Socket.gethostname
  date = Time.now.strftime('%y%m%d%H%M')
  env = "#{hostname}#{date}"
  env.gsub(/[^0-9a-zA-Z]/, '')
end

Instance Method Details

#configObject



12
13
14
15
16
17
18
19
20
21
# File 'lib/TerraformDevKit/environment.rb', line 12

def config
  case @name
  when 'prod'
    'prod'
  when 'test'
    'test'
  else
    'dev'
  end
end

#local_backend?Boolean

Returns:

  • (Boolean)


23
24
25
26
27
28
29
30
# File 'lib/TerraformDevKit/environment.rb', line 23

def local_backend?
  case @name
  when 'prod', 'test'
    false
  else
    true
  end
end

#working_dirObject



32
33
34
35
# File 'lib/TerraformDevKit/environment.rb', line 32

def working_dir
  # TODO: get rid of ROOT_PATH
  File.join(ROOT_PATH, 'envs', @name)
end