class Object

Public Instance Methods

add_target(env, name, app, port, app_user, is_web_server) click to toggle source
# File lib/ndr_dev_support/capistrano/ndr_model.rb, line 158
def add_target(env, name, app, port, app_user, is_web_server)
  desc "Deploy to #{env} service #{app_user || 'you'}@#{app}:#{port}"
  task(name) do
    set :name, name

    set :application_user, app_user

    role :app, app
    set :port, port

    set :webapp_deployment, is_web_server
    set :daemon_deployment, !is_web_server

    set :branch, release_config_for(env).fetch('branch')
    if exists?(:repository_branches)
      set :repository, fetch(:repository_branches) + fetch(:branch)
    end

    # Extract Ruby configuration if available:
    ruby_version = target_ruby_version_for(env)
    set :ruby, ruby_version if ruby_version
  end
  after name, 'ndr_dev_support:prepare'
end
release_config_for(env) click to toggle source
# File lib/ndr_dev_support/capistrano/ndr_model.rb, line 146
def release_config_for(env)
  branches = YAML.load_file('config/deployments.yml')
  branches.fetch(env.to_s) { raise 'Unknown release branch!' }
end
target_ruby_version_for(env) click to toggle source
# File lib/ndr_dev_support/capistrano/ndr_model.rb, line 151
def target_ruby_version_for(env)
  raw   = release_config_for(env).fetch('ruby')
  match = raw.match(/\A(?<version>\d+\.\d+\.\d+)\z/)

  match ? match[:version] : raise('Unrecognized Ruby version!')
end