class Dpl::Providers::Engineyard
Public Instance Methods
Source
# File lib/dpl/providers/engineyard.rb, line 43 def login api_key? ? write_rc : authenticate info :authenticated, name: whoami end
Source
# File lib/dpl/providers/engineyard.rb, line 48 def validate error :invalid_migrate if invalid_migrate? env end
Private Instance Methods
Source
# File lib/dpl/providers/engineyard.rb, line 59 def authenticate shell :login, echo: false, capture: true end
Source
# File lib/dpl/providers/engineyard.rb, line 76 def deploy_opts opts = [%(--ref="#{git_sha}" --environment="#{env}")] opts << opts_for(%i[app account]) opts << migrate_opt opts.join(' ') end
Source
# File lib/dpl/providers/engineyard.rb, line 91 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
Source
# File lib/dpl/providers/engineyard.rb, line 87 def env @env ||= super || detect_env(envs) end
Calls superclass method
Source
# File lib/dpl/providers/engineyard.rb, line 99 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
Source
# File lib/dpl/providers/engineyard.rb, line 72 def invalid_migrate? migrate.is_a?(TrueClass) || migrate == 'true' end
Source
# File lib/dpl/providers/engineyard.rb, line 83 def migrate_opt migrate? ? opts_for(%i[migrate]) : '--no-migrate' end
Source
# File lib/dpl/providers/engineyard.rb, line 107 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
Source
# File lib/dpl/providers/engineyard.rb, line 63 def whoami shell(:whoami, echo: false, capture: true) =~ /email\s*:\s*"(.+)"/ && ::Regexp.last_match(1) end
Source
# File lib/dpl/providers/engineyard.rb, line 67 def write_rc info :write_rc write_file '~/.ey-core', "https://api.engineyard.com/: #{api_key}" end