class AppRb::Config

Constants

Node

Public Class Methods

new(yml) click to toggle source
# File lib/app-rb/config.rb, line 2
def initialize(yml)
  @body = yml
end

Public Instance Methods

app() click to toggle source
# File lib/app-rb/config.rb, line 7
def app; @body["app"]; end
consul() click to toggle source
# File lib/app-rb/config.rb, line 8
def consul; @body["consul"]; end
cron() click to toggle source
# File lib/app-rb/config.rb, line 15
def cron; @body["cron"] || {}; end
deploy() click to toggle source
# File lib/app-rb/config.rb, line 14
def deploy; @body["deploy"] || {}; end
env() click to toggle source
# File lib/app-rb/config.rb, line 12
def env; @body["env"] || {}; end
image() click to toggle source
# File lib/app-rb/config.rb, line 11
def image; @body["image"]; end
nodes(constraint = nil) click to toggle source
# File lib/app-rb/config.rb, line 21
def nodes(constraint = nil)
  constraint ||= {}
  out = __nodes
  if constraint["name"]
    out = out.select { |n| Array(constraint["name"]).index(n.name) }
  end
  out.shuffle
end
pre_deploy() click to toggle source
# File lib/app-rb/config.rb, line 13
def pre_deploy; @body["pre_deploy"] || []; end
registry() click to toggle source
# File lib/app-rb/config.rb, line 9
def registry; @body["registry"]; end
run() click to toggle source
# File lib/app-rb/config.rb, line 16
def run; @body["run"] || {}; end
slack?() click to toggle source
# File lib/app-rb/config.rb, line 19
def slack?; slack_url && slack_channel; end
slack_channel() click to toggle source
# File lib/app-rb/config.rb, line 18
def slack_channel; @body["slack_channel"]; end
slack_url() click to toggle source
# File lib/app-rb/config.rb, line 17
def slack_url; @body["slack_url"]; end
tool_version() click to toggle source
# File lib/app-rb/config.rb, line 6
def tool_version; @body["tool_version"]; end
user() click to toggle source
# File lib/app-rb/config.rb, line 10
def user; @body["user"]; end

Private Instance Methods

__nodes() click to toggle source
# File lib/app-rb/config.rb, line 33
def __nodes
  @__nodes ||= JSON.load(AppRb::Util.just_cmd("curl -s #{@body["consul"]}/v1/catalog/nodes")).sort_by { |n| 
    n["Node"]
  }.map { |n|
    Node.new(n["Node"], n["Address"])
  }
end