class Bolts::Settings

Public Class Methods

new(project_root='.') click to toggle source
# File lib/bolts/settings.rb, line 5
def initialize(project_root='.')
  @project_root = project_root
end

Public Instance Methods

data() click to toggle source
# File lib/bolts/settings.rb, line 9
def data
  return @data if @data

  @data = defaults
  if File.exist?(settings_path)
    custom_data = YAML.load_file(settings_path)
    @data.merge!(custom_data)
    ensure_default_cluster(@data)
  end
  @data
end
defaults() click to toggle source
# File lib/bolts/settings.rb, line 21
def defaults
  {
    "user" => "ec2-user",
    "service_cluster" => {"default" => "default"}
  }
end
ensure_default_cluster(data) click to toggle source

When user's .bolts/settings.yml lack the default cluster, we add it on. Otherwise the user get confusing and scary aws-sdk-core/param_validator errors: Example: gist.github.com/bolts/67b9a68a77363b908d1c36047bc2709a

# File lib/bolts/settings.rb, line 31
def ensure_default_cluster(data)
  unless @data["service_cluster"]["default"]
    @data["service_cluster"]["default"] = "default"
  end
end
settings_path() click to toggle source
# File lib/bolts/settings.rb, line 37
def settings_path
  "#{ENV['HOME']}/.bolts/settings.yml"
end