Class: Shiplane::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/shiplane/configuration.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(project_folder: nil, stage: stage) ⇒ Configuration

Returns a new instance of Configuration.



5
6
7
8
# File 'lib/shiplane/configuration.rb', line 5

def initialize(project_folder: nil, stage: stage)
  @project_folder = project_folder || Dir.pwd
  @stage = stage
end

Instance Attribute Details

#project_folderObject

Returns the value of attribute project_folder.



3
4
5
# File 'lib/shiplane/configuration.rb', line 3

def project_folder
  @project_folder
end

#stageObject

Returns the value of attribute stage.



3
4
5
# File 'lib/shiplane/configuration.rb', line 3

def stage
  @stage
end

Class Method Details

.config(project_folder = nil) ⇒ Object



43
44
45
# File 'lib/shiplane/configuration.rb', line 43

def self.config(project_folder = nil)
  new(project_folder).config
end

Instance Method Details

#bootstrap_configObject



22
23
24
# File 'lib/shiplane/configuration.rb', line 22

def bootstrap_config
  @bootstrap_config ||= config.fetch('bootstrap', {})
end

#build_configObject



18
19
20
# File 'lib/shiplane/configuration.rb', line 18

def build_config
  @build_config ||= config.fetch('build', {})
end

#build_environment_filepathObject



34
35
36
37
38
39
40
41
# File 'lib/shiplane/configuration.rb', line 34

def build_environment_filepath
  return @build_environment_filepath if defined? @build_environment_filepath

  @build_environment_filepath = build_config.fetch('environment_file', '.env')
  @build_environment_filepath = File.join(project_folder, "#{@build_environment_filepath}.#{stage}") if File.exist?(File.join(project_folder, "#{@build_environment_filepath}.#{stage}"))

  @build_environment_filepath
end

#configObject



14
15
16
# File 'lib/shiplane/configuration.rb', line 14

def config
  @config ||= YAML.load_file(shiplane_config_file)
end

#deploy_configObject



26
27
28
# File 'lib/shiplane/configuration.rb', line 26

def deploy_config
  @deploy_config ||= config.fetch('deploy', {})
end

#project_configObject



30
31
32
# File 'lib/shiplane/configuration.rb', line 30

def project_config
  @project_config ||= config.fetch('project', {})
end

#shiplane_config_fileObject



10
11
12
# File 'lib/shiplane/configuration.rb', line 10

def shiplane_config_file
  @shiplane_config_file ||= File.join(project_folder, Shiplane::SHIPLANE_CONFIG_FILENAME)
end