class Dpl::Providers::Engineyard

Public Instance Methods

deploy() click to toggle source
# File lib/dpl/providers/engineyard.rb, line 54
def deploy
  shell :deploy
end
login() click to toggle source
# File lib/dpl/providers/engineyard.rb, line 44
def login
  api_key? ? write_rc : authenticate
  info :authenticated, name: whoami
end
validate() click to toggle source
# File lib/dpl/providers/engineyard.rb, line 49
def validate
  error :invalid_migrate if invalid_migrate?
  env
end

Private Instance Methods

authenticate() click to toggle source
# File lib/dpl/providers/engineyard.rb, line 60
def authenticate
  shell :login, echo: false, capture: true
end
deploy_opts() click to toggle source
# File lib/dpl/providers/engineyard.rb, line 77
def deploy_opts
  opts = [%(--ref="#{git_sha}" --environment="#{env}")]
  opts << opts_for(%i[app account])
  opts << migrate_opt
  opts.join(' ')
end
detect_env(envs) click to toggle source
# File lib/dpl/providers/engineyard.rb, line 92
def detect_env(envs)
  case envs.size
  when 1 then envs.first[:name]
  when 0 then error :no_env
  else too_many_envs(envs)
  end
end
env() click to toggle source
Calls superclass method
# File lib/dpl/providers/engineyard.rb, line 88
def env
  @env ||= super || detect_env(envs)
end
envs() click to toggle source
# File lib/dpl/providers/engineyard.rb, line 100
def envs
  lines = shell(:envs, echo: false, capture: true).split("\n")[2..] || []
  envs = lines.map { |line| line.split('|')[1..].map(&:strip) }
  envs = envs.map { |pair| %i[name account].zip(pair).to_h }
  envs.select { |env| env[:name] == opts[:env] } if env?
  envs
end
invalid_migrate?() click to toggle source
# File lib/dpl/providers/engineyard.rb, line 73
def invalid_migrate?
  migrate.is_a?(TrueClass) || migrate == 'true'
end
migrate_opt() click to toggle source
# File lib/dpl/providers/engineyard.rb, line 84
def migrate_opt
  migrate? ? opts_for(%i[migrate]) : '--no-migrate'
end
too_many_envs(envs) click to toggle source
# File lib/dpl/providers/engineyard.rb, line 108
def too_many_envs(envs)
  envs = envs.map { |env| msg(:env_entry) % env.values_at(:name, :account) }
  error msg(:too_many_envs) % envs.join(', ')
end
whoami() click to toggle source
# File lib/dpl/providers/engineyard.rb, line 64
def whoami
  shell(:whoami, echo: false, capture: true) =~ /email\s*:\s*"(.+)"/ && ::Regexp.last_match(1)
end
write_rc() click to toggle source
# File lib/dpl/providers/engineyard.rb, line 68
def write_rc
  info :write_rc
  write_file '~/.ey-core', "https://api.engineyard.com/: #{api_key}"
end