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

#config_pathsObject

This should replace config_path pretty soon



51
52
53
54
55
# File 'lib/picsolve_docker_builder/base.rb', line 51

def config_paths
  [config_path] + Dir.glob(
    config_path[0, config_path.length - 3] + '*.yml'
  )
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



57
58
59
# File 'lib/picsolve_docker_builder/base.rb', line 57

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



65
66
67
68
69
70
71
72
73
74
75
# File 'lib/picsolve_docker_builder/base.rb', line 65

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



61
62
63
# File 'lib/picsolve_docker_builder/base.rb', line 61

def validate_config(c)
  c
end