class ElasticDot::Command::Auth

Public Class Methods

authenticate!() click to toggle source
# File lib/elasticdot/command/auth.rb, line 34
def self.authenticate!
  return true if authenticated?
  login
end
credentials() click to toggle source
# File lib/elasticdot/command/auth.rb, line 39
def self.credentials
  netrc['j.elasticops.com']
end
login() click to toggle source
# File lib/elasticdot/command/auth.rb, line 4
def self.login
  puts "Enter your ElasticDot credentials."

  print "email: "
  email = ask

  print "password: "

  echo_off
  pass = ask_for_password
  echo_on

  api = ElasticDot::API.new(email: email, password: pass)
  key = api.login

  netrc.delete 'j.elasticops.com'

  netrc['j.elasticops.com'] = email, key
  netrc.save

  true
end
logout() click to toggle source
# File lib/elasticdot/command/auth.rb, line 27
def self.logout
  netrc.delete 'j.elasticops.com'
  netrc.save

  true
end

Private Class Methods

ask_for_password() click to toggle source
# File lib/elasticdot/command/auth.rb, line 55
def self.ask_for_password
  echo_off
  password = ask
  puts
  echo_on

  password
end
authenticated?() click to toggle source
# File lib/elasticdot/command/auth.rb, line 64
def self.authenticated?
  netrc['j.elasticops.com'] ? true : false
end
netrc() click to toggle source
# File lib/elasticdot/command/auth.rb, line 44
def self.netrc
  @netrc ||= Netrc.read netrc_path
end
netrc_path() click to toggle source
# File lib/elasticdot/command/auth.rb, line 48
def self.netrc_path
  default   = Netrc.default_path
  encrypted = default + ".gpg"

  File.exists?(encrypted) ? encrypted : default
end