Module: PicsolveDockerBuilder::Base

Overview

Base class for everything

* logging
* accessing config

Instance Method Summary collapse

Instance Method Details

#base_dirObject



38
39
40
# File 'lib/picsolve_docker_builder/base.rb', line 38

def base_dir
  Dir.pwd
end

#configObject



34
35
36
# File 'lib/picsolve_docker_builder/base.rb', line 34

def config
  @config ||= read_config
end

#config_fileObject



42
43
44
# File 'lib/picsolve_docker_builder/base.rb', line 42

def config_file
  ENV['DOCKER_BUILDER_FILE'] || '.docker-builder.yml'
end

#config_pathObject



46
47
48
# File 'lib/picsolve_docker_builder/base.rb', line 46

def config_path
  File.join(base_dir, config_file)
end

#create_loggerObject



24
25
26
27
28
# File 'lib/picsolve_docker_builder/base.rb', line 24

def create_logger
  log = Logger.new(STDOUT)
  log.level = Logger::DEBUG
  log
end

#default_configObject



50
51
52
# File 'lib/picsolve_docker_builder/base.rb', line 50

def default_config
  {}
end

#logObject



30
31
32
# File 'lib/picsolve_docker_builder/base.rb', line 30

def log
  @logger ||= create_logger
end

#read_configObject



58
59
60
61
62
63
64
65
66
67
68
# File 'lib/picsolve_docker_builder/base.rb', line 58

def read_config
  c = default_config
  path = config_path
  begin
    yaml = Psych.load_file path
    c = c.deep_merge(yaml)
  rescue Errno::ENOENT
    log.debug "can not find config at '#{path}'"
  end
  validate_config(c)
end

#validate_config(c) ⇒ Object



54
55
56
# File 'lib/picsolve_docker_builder/base.rb', line 54

def validate_config(c)
  c
end