Module: Foreplay::Engine::Defaults

Includes:
Foreplay
Included in:
Foreplay::Engine
Defined in:
lib/foreplay/engine/defaults.rb

Constant Summary collapse

DEFAULT_CONFIG_FILE =
"#{Dir.getwd}/config/foreplay.yml"
DEFAULTS_KEY =
'defaults'

Constants included from Foreplay

DEFAULT_PORT, PORT_GAP, VERSION

Instance Method Summary collapse

Methods included from Foreplay

#log, #terminate

Instance Method Details

#config_fileObject



55
56
57
# File 'lib/foreplay/engine/defaults.rb', line 55

def config_file
  @config_file ||= (filters['config_file'] || DEFAULT_CONFIG_FILE)
end

#defaultsObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/foreplay/engine/defaults.rb', line 9

def defaults
  return @defaults if @defaults

  # Establish defaults
  # First the default defaults
  @defaults = {
    'name'            =>  File.basename(Dir.getwd),
    'environment'     =>  environment,
    'port'            =>  DEFAULT_PORT
  }

  @defaults['env'] = secrets
  @defaults['application'] = secrets
  @defaults = @defaults.supermerge(roles_all[DEFAULTS_KEY]) if roles_all.key? DEFAULTS_KEY
  @defaults = @defaults.supermerge(roles[DEFAULTS_KEY])     if roles.key? DEFAULTS_KEY
  @defaults
end

#rolesObject



32
33
34
# File 'lib/foreplay/engine/defaults.rb', line 32

def roles
  @roles ||= roles_all[environment]
end

#roles_allObject



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/foreplay/engine/defaults.rb', line 36

def roles_all
  return @roles_all if @roles_all

  @roles_all = YAML.load(File.read(config_file))

  # This environment
  unless @roles_all.key? environment
    terminate("No deployment configuration defined for #{environment} environment.\nCheck #{config_file}")
  end

  @roles_all
rescue Errno::ENOENT
  terminate "Can't find configuration file #{config_file}.\n"\
    'Please run foreplay setup or create the file manually.'
rescue Psych::SyntaxError
  terminate "I don't understand the configuration file #{config_file}.\n"\
    'Please run foreplay setup or edit the file manually.'
end

#secretsObject

Secret environment variables



28
29
30
# File 'lib/foreplay/engine/defaults.rb', line 28

def secrets
  @secrets ||= (Foreplay::Engine::Secrets.new(environment, roles_all['secrets']).fetch || {})
end